From 18095d519527e53d36680ed229b0904fd6864e5e Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Fri, 28 Feb 2020 10:06:06 +0100
Subject: [PATCH] fix(ansible-galaxy): use autoReplace

---
 .../__snapshots__/extract.spec.ts.snap        | 49 -----------------
 lib/manager/ansible-galaxy/extract.ts         |  1 +
 lib/manager/ansible-galaxy/index.ts           |  7 +--
 lib/manager/ansible-galaxy/update.spec.ts     | 54 -------------------
 lib/manager/ansible-galaxy/update.ts          | 36 -------------
 5 files changed, 5 insertions(+), 142 deletions(-)
 delete mode 100644 lib/manager/ansible-galaxy/update.spec.ts
 delete mode 100644 lib/manager/ansible-galaxy/update.ts

diff --git a/lib/manager/ansible-galaxy/__snapshots__/extract.spec.ts.snap b/lib/manager/ansible-galaxy/__snapshots__/extract.spec.ts.snap
index 4eb8d550dc..f1eabf9bc6 100644
--- a/lib/manager/ansible-galaxy/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/ansible-galaxy/__snapshots__/extract.spec.ts.snap
@@ -7,26 +7,12 @@ Array [
     "datasource": "ansible-galaxy",
     "depName": "yatesr.timezone",
     "lookupName": "yatesr.timezone",
-    "managerData": Object {
-      "lineNumber": 2,
-      "name": null,
-      "scm": null,
-      "src": "yatesr.timezone",
-      "version": "0.1.0",
-    },
   },
   Object {
     "currentValue": "0.1",
     "datasource": "git-tags",
     "depName": "mygroup/ansible-base",
     "lookupName": "git@gitlab.company.com:mygroup/ansible-base.git",
-    "managerData": Object {
-      "lineNumber": 5,
-      "name": null,
-      "scm": "git",
-      "src": "git@gitlab.company.com:mygroup/ansible-base.git",
-      "version": "0.1",
-    },
   },
 ]
 `;
@@ -38,65 +24,30 @@ Array [
     "datasource": "ansible-galaxy",
     "depName": "yatesr.timezone",
     "lookupName": "yatesr.timezone",
-    "managerData": Object {
-      "lineNumber": 2,
-      "name": null,
-      "scm": null,
-      "src": "yatesr.timezone",
-      "version": "0.1.0",
-    },
   },
   Object {
     "currentValue": "master",
     "datasource": "git-tags",
     "depName": "nginx_role",
     "lookupName": "https://github.com/bennojoy/nginx",
-    "managerData": Object {
-      "lineNumber": 5,
-      "name": "nginx_role",
-      "scm": null,
-      "src": "https://github.com/bennojoy/nginx",
-      "version": "master",
-    },
   },
   Object {
     "currentValue": "v1.4",
     "datasource": "git-tags",
     "depName": "willthames/git-ansible-galaxy",
     "lookupName": "http://bitbucket.org/willthames/git-ansible-galaxy",
-    "managerData": Object {
-      "lineNumber": 11,
-      "name": null,
-      "scm": null,
-      "src": "git+http://bitbucket.org/willthames/git-ansible-galaxy",
-      "version": "v1.4",
-    },
   },
   Object {
     "currentValue": "0.1",
     "datasource": "git-tags",
     "depName": "mygroup/ansible-base",
     "lookupName": "git@gitlab.company.com:mygroup/ansible-base.git",
-    "managerData": Object {
-      "lineNumber": 16,
-      "name": null,
-      "scm": "git",
-      "src": "git@gitlab.company.com:mygroup/ansible-base.git",
-      "version": "0.1",
-    },
   },
   Object {
     "currentValue": "0.14",
     "datasource": "git-tags",
     "depName": "mygroup/ansible-base",
     "lookupName": "git@gitlab.company.com:mygroup/ansible-base.git",
-    "managerData": Object {
-      "lineNumber": 24,
-      "name": null,
-      "scm": "git",
-      "src": "git@gitlab.company.com:mygroup/ansible-base.git",
-      "version": "0.14",
-    },
   },
 ]
 `;
diff --git a/lib/manager/ansible-galaxy/extract.ts b/lib/manager/ansible-galaxy/extract.ts
index 2cca76115e..020c9d1b87 100644
--- a/lib/manager/ansible-galaxy/extract.ts
+++ b/lib/manager/ansible-galaxy/extract.ts
@@ -113,6 +113,7 @@ export default function extractPackageFile(
           if (lineMatch) lineNumber += 1;
         } while (lineMatch);
         if (finalize(dep)) {
+          delete dep.managerData;
           deps.push(dep);
         }
       }
diff --git a/lib/manager/ansible-galaxy/index.ts b/lib/manager/ansible-galaxy/index.ts
index 3ba1b84067..912d1c9518 100644
--- a/lib/manager/ansible-galaxy/index.ts
+++ b/lib/manager/ansible-galaxy/index.ts
@@ -1,8 +1,9 @@
 import extractPackageFile from './extract';
-import updateDependency from './update';
 
-export { extractPackageFile, updateDependency };
+export { extractPackageFile };
+
+export const autoReplace = true;
 
 export const defaultConfig = {
-  fileMatch: ['(^|/)requirements.ya?ml$'],
+  fileMatch: ['(^|/)requirements\\.ya?ml$'],
 };
diff --git a/lib/manager/ansible-galaxy/update.spec.ts b/lib/manager/ansible-galaxy/update.spec.ts
deleted file mode 100644
index 4997715152..0000000000
--- a/lib/manager/ansible-galaxy/update.spec.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { readFileSync } from 'fs';
-import updateDependency from './update';
-
-const yamlFile1 = readFileSync(
-  'lib/manager/ansible-galaxy/__fixtures__/requirements01.yml',
-  'utf8'
-);
-
-describe('manager/ansible/update', () => {
-  describe('updateDependency', () => {
-    it('updating value', () => {
-      const upgrade = {
-        managerData: { lineNumber: 2 },
-        depName: 'yatesr.timezone',
-        newValue: '1.29.3',
-      };
-      const res = updateDependency({ fileContent: yamlFile1, upgrade });
-      expect(res).not.toEqual(yamlFile1);
-      expect(res.includes(upgrade.newValue)).toBe(true);
-    });
-    it('replaces existing value from docker_service', () => {
-      const upgrade = {
-        managerData: { lineNumber: 11 },
-        depName: 'willthames/git-ansible-galaxy',
-        newValue: 'v2.0',
-      };
-      const res = updateDependency({ fileContent: yamlFile1, upgrade });
-      expect(res).not.toEqual(yamlFile1);
-      expect(res.includes(upgrade.newValue)).toBe(true);
-    });
-    it('returns same', () => {
-      const upgrade = {
-        managerData: { lineNumber: 16 },
-        depName: 'mygroup/ansible-base',
-        newValue: '0.1',
-      };
-      const res = updateDependency({ fileContent: yamlFile1, upgrade });
-      expect(res).toEqual(yamlFile1);
-    });
-    it('returns null if mismatch', () => {
-      const upgrade = {
-        managerData: { lineNumber: 19 },
-        depName: 'mygroup/ansible-base',
-        newValue: '0.1',
-      };
-      const res = updateDependency({ fileContent: yamlFile1, upgrade });
-      expect(res).toBeNull();
-    });
-    it('returns null if error', () => {
-      const res = updateDependency({ fileContent: null, upgrade: null });
-      expect(res).toBeNull();
-    });
-  });
-});
diff --git a/lib/manager/ansible-galaxy/update.ts b/lib/manager/ansible-galaxy/update.ts
deleted file mode 100644
index fe5c9a1c0f..0000000000
--- a/lib/manager/ansible-galaxy/update.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { logger } from '../../logger';
-import { UpdateDependencyConfig } from '../common';
-
-export default function updateDependency({
-  fileContent,
-  upgrade,
-}: UpdateDependencyConfig): string | null {
-  try {
-    logger.debug(`ansible-galaxy.updateDependency(): ${upgrade.newValue}`);
-    const lines = fileContent.split('\n');
-    const lineToChange = lines[upgrade.managerData.lineNumber];
-    const regexMatchNewBlock = new RegExp(
-      /^(\s?-?\s?(src|scm|version|name):\s*["']?)([^"']*)(["']?.*)$/
-    );
-    if (!regexMatchNewBlock.exec(lineToChange)) {
-      logger.debug('No version line found');
-      return null;
-    }
-    const newLine = lineToChange.replace(
-      regexMatchNewBlock,
-      `$1${upgrade.newValue}$4`
-    );
-    if (newLine === lineToChange) {
-      logger.debug('No changes necessary');
-      return fileContent;
-    }
-    lines[upgrade.managerData.lineNumber] = newLine;
-    return lines.join('\n');
-  } catch (err) {
-    logger.debug(
-      { err },
-      'Error setting new ansible-galaxy role version value'
-    );
-    return null;
-  }
-}
-- 
GitLab