From 03b7bc40ffe98b78118d2a237b27a0f690d76ffd Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sat, 21 Jul 2018 09:07:11 +0200
Subject: [PATCH] refactor(circleci): use docker extract

---
 lib/manager/circleci/extract.js               | 40 +++++--------------
 .../__snapshots__/extract.spec.js.snap        |  8 ++--
 2 files changed, 13 insertions(+), 35 deletions(-)

diff --git a/lib/manager/circleci/extract.js b/lib/manager/circleci/extract.js
index c57f8230b5..d9c77c2ba6 100644
--- a/lib/manager/circleci/extract.js
+++ b/lib/manager/circleci/extract.js
@@ -1,4 +1,4 @@
-const { splitImageParts, getPurl } = require('../docker/extract');
+const { getDep } = require('../docker/extract');
 
 module.exports = {
   extractDependencies,
@@ -12,39 +12,17 @@ function extractDependencies(content) {
     const match = line.match(/^\s*- image:\s*'?"?([^\s'"]+)'?"?\s*$/);
     if (match) {
       const currentFrom = match[1];
-      const {
-        dockerRegistry,
-        depName,
-        currentTag,
-        currentDigest,
-        currentDepTagDigest,
-        currentDepTag,
-        currentValue,
-        tagSuffix,
-      } = splitImageParts(currentFrom);
+      const dep = getDep(currentFrom);
       logger.info(
-        { dockerRegistry, depName, currentTag, currentDigest },
+        {
+          dockerRegistry: dep.dockerRegistry,
+          depName: dep.depName,
+          currentTag: dep.currentTag,
+          currentDigest: dep.currentDigest,
+        },
         'CircleCI docker image'
       );
-      const purl = getPurl(dockerRegistry, depName, tagSuffix);
-      const dep = {
-        lineNumber,
-        currentFrom,
-        fromVersion: currentFrom,
-        currentDepTagDigest,
-        dockerRegistry,
-        currentDepTag,
-        currentDigest,
-        depName,
-        currentTag,
-        currentValue,
-        tagSuffix,
-        purl,
-        versionScheme: 'docker',
-      };
-      if (depName === 'node' || depName.endsWith('/node')) {
-        dep.commitMessageTopic = 'Node.js';
-      }
+      dep.lineNumber = lineNumber;
       deps.push(dep);
     }
     lineNumber += 1;
diff --git a/test/manager/circleci/__snapshots__/extract.spec.js.snap b/test/manager/circleci/__snapshots__/extract.spec.js.snap
index ff66f0033f..98589cb2de 100644
--- a/test/manager/circleci/__snapshots__/extract.spec.js.snap
+++ b/test/manager/circleci/__snapshots__/extract.spec.js.snap
@@ -12,7 +12,7 @@ Array [
     "currentValue": undefined,
     "depName": "node",
     "dockerRegistry": undefined,
-    "fromVersion": "node",
+    "language": "docker",
     "lineNumber": 12,
     "purl": "pkg:docker/node",
     "tagSuffix": undefined,
@@ -28,7 +28,7 @@ Array [
     "currentValue": "4",
     "depName": "node",
     "dockerRegistry": undefined,
-    "fromVersion": "node:4",
+    "language": "docker",
     "lineNumber": 57,
     "purl": "pkg:docker/node",
     "tagSuffix": undefined,
@@ -44,7 +44,7 @@ Array [
     "currentValue": "6",
     "depName": "node",
     "dockerRegistry": undefined,
-    "fromVersion": "node:6",
+    "language": "docker",
     "lineNumber": 61,
     "purl": "pkg:docker/node",
     "tagSuffix": undefined,
@@ -60,7 +60,7 @@ Array [
     "currentValue": "8.9.0",
     "depName": "node",
     "dockerRegistry": undefined,
-    "fromVersion": "node:8.9.0",
+    "language": "docker",
     "lineNumber": 65,
     "purl": "pkg:docker/node",
     "tagSuffix": undefined,
-- 
GitLab