From 0d5d358e53fc0d65b91311023a197d54a4315c45 Mon Sep 17 00:00:00 2001
From: sajid-khan-js <59746379+sajid-khan-js@users.noreply.github.com>
Date: Wed, 24 Feb 2021 11:55:51 +0000
Subject: [PATCH] feat(terragrunt-version): implement tgenv version file
 updates (#8816)

---
 .../__snapshots__/extract.spec.ts.snap              | 11 +++++++++++
 lib/manager/terragrunt-version/extract.spec.ts      | 11 +++++++++++
 lib/manager/terragrunt-version/extract.ts           | 13 +++++++++++++
 lib/manager/terragrunt-version/index.ts             |  9 +++++++++
 lib/manager/terragrunt-version/readme.md            |  2 ++
 5 files changed, 46 insertions(+)
 create mode 100644 lib/manager/terragrunt-version/__snapshots__/extract.spec.ts.snap
 create mode 100644 lib/manager/terragrunt-version/extract.spec.ts
 create mode 100644 lib/manager/terragrunt-version/extract.ts
 create mode 100644 lib/manager/terragrunt-version/index.ts
 create mode 100644 lib/manager/terragrunt-version/readme.md

diff --git a/lib/manager/terragrunt-version/__snapshots__/extract.spec.ts.snap b/lib/manager/terragrunt-version/__snapshots__/extract.spec.ts.snap
new file mode 100644
index 0000000000..ccbcee586c
--- /dev/null
+++ b/lib/manager/terragrunt-version/__snapshots__/extract.spec.ts.snap
@@ -0,0 +1,11 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`manager/terragrunt-version/extract extractPackageFile() returns a result 1`] = `
+Array [
+  Object {
+    "currentValue": "12.0.0",
+    "datasource": "github-releases",
+    "depName": "gruntwork-io/terragrunt",
+  },
+]
+`;
diff --git a/lib/manager/terragrunt-version/extract.spec.ts b/lib/manager/terragrunt-version/extract.spec.ts
new file mode 100644
index 0000000000..d442445018
--- /dev/null
+++ b/lib/manager/terragrunt-version/extract.spec.ts
@@ -0,0 +1,11 @@
+import { getName } from '../../../test/util';
+import { extractPackageFile } from './extract';
+
+describe(getName(__filename), () => {
+  describe('extractPackageFile()', () => {
+    it('returns a result', () => {
+      const res = extractPackageFile('12.0.0\n');
+      expect(res.deps).toMatchSnapshot();
+    });
+  });
+});
diff --git a/lib/manager/terragrunt-version/extract.ts b/lib/manager/terragrunt-version/extract.ts
new file mode 100644
index 0000000000..64762ab45c
--- /dev/null
+++ b/lib/manager/terragrunt-version/extract.ts
@@ -0,0 +1,13 @@
+import * as datasourceGitHubRelease from '../../datasource/github-releases';
+import { logger } from '../../logger';
+import { PackageDependency, PackageFile } from '../common';
+
+export function extractPackageFile(content: string): PackageFile {
+  logger.trace('terragrunt-version.extractPackageFile()');
+  const dep: PackageDependency = {
+    depName: 'gruntwork-io/terragrunt',
+    currentValue: content.trim(),
+    datasource: datasourceGitHubRelease.id,
+  };
+  return { deps: [dep] };
+}
diff --git a/lib/manager/terragrunt-version/index.ts b/lib/manager/terragrunt-version/index.ts
new file mode 100644
index 0000000000..fe24c1f17b
--- /dev/null
+++ b/lib/manager/terragrunt-version/index.ts
@@ -0,0 +1,9 @@
+import * as hashicorpVersioning from '../../versioning/hashicorp';
+
+export { extractPackageFile } from './extract';
+
+export const defaultConfig = {
+  fileMatch: ['(^|/)\\.terragrunt-version$'],
+  versioning: hashicorpVersioning.id,
+  extractVersion: '^v(?<version>.+)$',
+};
diff --git a/lib/manager/terragrunt-version/readme.md b/lib/manager/terragrunt-version/readme.md
new file mode 100644
index 0000000000..5a0beb6aa0
--- /dev/null
+++ b/lib/manager/terragrunt-version/readme.md
@@ -0,0 +1,2 @@
+This will maintain `.terragrunt-version` files.
+Available versions will be determined from `gruntwork-io/terragrunt` GitHub releases.
-- 
GitLab