Skip to content
Snippets Groups Projects
Select Git revision
  • c529ef644c3e32c16a69df7abe6297275832de0b
  • master default protected
  • rav/deflake_playwright
  • rav/deflake_matrixchat_test
  • actions/playwright-image-updates
  • renovate/npm-linkifyjs-vulnerability
  • develop
  • langleyd/memberlist_to_virtuoso
  • staging
  • t3chguy/module-api-1.3.0
  • renovate/css
  • robin/deprecated-url-params
  • renovate/major-eslint
  • renovate/vector-im
  • actions/localazy-download
  • midhun/mvvm/architecture-2
  • midhun/mvvm/architecture-1
  • florianduros/audio-components
  • midhun/mvvm/state-management-1
  • renovate/browserslist
  • renovate/eslint
  • v1.11.107
  • v1.11.107-rc.0
  • v1.11.106
  • v1.11.106-rc.0
  • v1.11.105
  • v1.11.105-rc.0
  • v1.11.104
  • v1.11.104-rc.0
  • v1.11.103
  • v1.11.102
  • v1.11.102-rc.0
  • v1.11.101
  • v1.11.101-rc.0
  • v1.11.100
  • v1.11.100-rc.0
  • v1.11.99
  • v1.11.98
  • v1.11.98-rc.0
  • v1.11.97
  • v1.11.97-rc.0
41 results

webpack.config.js

Blame
  • extract.ts 1.66 KiB
    import is from '@sindresorhus/is';
    import yaml from 'js-yaml';
    import * as datasourceGitlabTags from '../../datasource/gitlab-tags';
    import { logger } from '../../logger';
    import { SkipReason } from '../../types';
    import type { ExtractConfig, PackageDependency, PackageFile } from '../types';
    
    function extractDepFromIncludeFile(includeObj: {
      file: any;
      project: string;
      ref: string;
    }): PackageDependency {
      const dep: PackageDependency = {
        datasource: datasourceGitlabTags.id,
        depName: includeObj.project,
        depType: 'repository',
      };
      if (!includeObj.ref) {
        dep.skipReason = SkipReason.UnknownVersion;
        return dep;
      }
      dep.currentValue = includeObj.ref;
      return dep;
    }
    
    export function extractPackageFile(
      content: string,
      _packageFile: string,
      config: ExtractConfig
    ): PackageFile | null {
      const deps: PackageDependency[] = [];
      try {
        // TODO: fix me (#9610)
        const doc = yaml.safeLoad(content, { json: true }) as any;
        if (doc?.include && is.array(doc.include)) {
          for (const includeObj of doc.include) {
            if (includeObj.file && includeObj.project) {
              const dep = extractDepFromIncludeFile(includeObj);
              if (config.endpoint) {
                dep.registryUrls = [config.endpoint.replace(/\/api\/v4\/?/, '')];
              }
              deps.push(dep);
            }
          }
        }
      } catch (err) /* istanbul ignore next */ {
        if (err.stack?.startsWith('YAMLException:')) {
          logger.debug({ err });
          logger.debug('YAML exception extracting GitLab CI includes');
        } else {
          logger.warn({ err }, 'Error extracting GitLab CI includes');
        }
      }
      if (!deps.length) {
        return null;
      }
      return { deps };
    }