diff --git a/lib/manager/ansible-galaxy/__fixtures__/requirements01.yml b/lib/manager/ansible-galaxy/__fixtures__/requirements01.yml index ea0ff5a7d43e06214eec19bd8d50e8122233cf18..ad476fc79501670e25012ffab7dd5bc7cea26e11 100644 --- a/lib/manager/ansible-galaxy/__fixtures__/requirements01.yml +++ b/lib/manager/ansible-galaxy/__fixtures__/requirements01.yml @@ -2,6 +2,9 @@ - src: yatesr.timezone version: "0.1.0" +- name: 'cloudalchemy.node-exporter' + version: '0.19.0' + # GitHub repo, accessible by http(s) - version: master src: https://github.com/bennojoy/nginx diff --git a/lib/manager/ansible-galaxy/__snapshots__/extract.spec.ts.snap b/lib/manager/ansible-galaxy/__snapshots__/extract.spec.ts.snap index 929c35432d6360d2f65d3048ef9499b9c8edd466..ba9628cf6c3cb4d98d795ef89e38bba4bfe1318e 100644 --- a/lib/manager/ansible-galaxy/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/ansible-galaxy/__snapshots__/extract.spec.ts.snap @@ -25,6 +25,12 @@ Array [ "depName": "yatesr.timezone", "lookupName": "yatesr.timezone", }, + Object { + "currentValue": "0.19.0", + "datasource": "galaxy", + "depName": "cloudalchemy.node-exporter", + "lookupName": "cloudalchemy.node-exporter", + }, Object { "currentValue": "master", "datasource": "git-tags", diff --git a/lib/manager/ansible-galaxy/extract.spec.ts b/lib/manager/ansible-galaxy/extract.spec.ts index 830f13184f85af2e3df716d866c30ad12ee21bff..dd387286acc35f12b39258cd94cff2510dcd5157 100644 --- a/lib/manager/ansible-galaxy/extract.spec.ts +++ b/lib/manager/ansible-galaxy/extract.spec.ts @@ -22,7 +22,7 @@ describe('lib/manager/ansible-galaxy/extract', () => { it('extracts multiple dependencies from requirements.yml', () => { const res = extractPackageFile(yamlFile1); expect(res.deps).toMatchSnapshot(); - expect(res.deps).toHaveLength(9); + expect(res.deps).toHaveLength(10); }); it('extracts dependencies from a not beautified requirements file', () => { const res = extractPackageFile(yamlFile2); diff --git a/lib/manager/ansible-galaxy/extract.ts b/lib/manager/ansible-galaxy/extract.ts index 865131a24250f820731cf723f3c772c0c653b65f..846dae7a73169386d97af06ce0c4b77e7acdb08e 100644 --- a/lib/manager/ansible-galaxy/extract.ts +++ b/lib/manager/ansible-galaxy/extract.ts @@ -4,6 +4,8 @@ import { logger } from '../../logger'; import { SkipReason } from '../../types'; import { PackageDependency, PackageFile } from '../common'; +const galaxyRoleRegex = /.+\..+/; + function interpretLine( lineMatch: RegExpMatchArray, lineNumber: number, @@ -54,10 +56,14 @@ function finalize(dependency: PackageDependency): boolean { dep.depName = sourceMatch[4]; // remove leading `git+` from URLs like `git+https://...` dep.lookupName = source.replace(/git\+/, ''); - } else if (new RegExp(/.+\..+/).exec(source)) { + } else if (galaxyRoleRegex.exec(source)) { dep.datasource = datasourceGalaxy.id; dep.depName = dep.managerData.src; dep.lookupName = dep.managerData.src; + } else if (galaxyRoleRegex.exec(dep.managerData.name)) { + dep.datasource = datasourceGalaxy.id; + dep.depName = dep.managerData.name; + dep.lookupName = dep.managerData.name; } else { dep.skipReason = SkipReason.NoSourceMatch; return false;