@swovohq/fuel 0.2.2-alpha.86 → 0.2.2-alpha.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/fuel.js +10 -31
- package/dist/bin/fuel.js.map +1 -1
- package/dist/commands/config-verify.d.ts.map +1 -1
- package/dist/commands/config-verify.js +14 -6
- package/dist/commands/config-verify.js.map +1 -1
- package/dist/commands/create-app.d.ts.map +1 -1
- package/dist/commands/create-app.js +1 -0
- package/dist/commands/create-app.js.map +1 -1
- package/dist/commands/infra-deploy.d.ts +4 -0
- package/dist/commands/infra-deploy.d.ts.map +1 -1
- package/dist/commands/infra-deploy.js +72 -43
- package/dist/commands/infra-deploy.js.map +1 -1
- package/dist/commands/infra-destroy.js +3 -3
- package/dist/commands/infra-destroy.js.map +1 -1
- package/dist/commands/infra-init.d.ts +91 -0
- package/dist/commands/infra-init.d.ts.map +1 -1
- package/dist/commands/infra-init.js +451 -78
- package/dist/commands/infra-init.js.map +1 -1
- package/dist/commands/infra-pull.d.ts.map +1 -1
- package/dist/commands/infra-pull.js +6 -5
- package/dist/commands/infra-pull.js.map +1 -1
- package/dist/infra/azure-defaults.d.ts +49 -0
- package/dist/infra/azure-defaults.d.ts.map +1 -0
- package/dist/infra/azure-defaults.js +52 -0
- package/dist/infra/azure-defaults.js.map +1 -0
- package/dist/infra/azure-keyvault-client.d.ts +4 -0
- package/dist/infra/azure-keyvault-client.d.ts.map +1 -0
- package/dist/infra/azure-keyvault-client.js +57 -0
- package/dist/infra/azure-keyvault-client.js.map +1 -0
- package/dist/infra/azure-rbac.d.ts +11 -0
- package/dist/infra/azure-rbac.d.ts.map +1 -0
- package/dist/infra/azure-rbac.js +47 -0
- package/dist/infra/azure-rbac.js.map +1 -0
- package/dist/infra/azure-state-storage.d.ts +20 -0
- package/dist/infra/azure-state-storage.d.ts.map +1 -0
- package/dist/infra/azure-state-storage.js +229 -0
- package/dist/infra/azure-state-storage.js.map +1 -0
- package/dist/infra/credentials.d.ts +2 -2
- package/dist/infra/credentials.d.ts.map +1 -1
- package/dist/infra/credentials.js +3 -2
- package/dist/infra/credentials.js.map +1 -1
- package/dist/infra/deployment-detect.d.ts +9 -0
- package/dist/infra/deployment-detect.d.ts.map +1 -0
- package/dist/infra/deployment-detect.js +53 -0
- package/dist/infra/deployment-detect.js.map +1 -0
- package/dist/infra/github-client.d.ts.map +1 -1
- package/dist/infra/github-client.js +1 -4
- package/dist/infra/github-client.js.map +1 -1
- package/dist/infra/orchestrator.d.ts.map +1 -1
- package/dist/infra/orchestrator.js +193 -65
- package/dist/infra/orchestrator.js.map +1 -1
- package/dist/infra/preflight.js +11 -11
- package/dist/infra/preflight.js.map +1 -1
- package/dist/infra/remote-secret.d.ts +14 -0
- package/dist/infra/remote-secret.d.ts.map +1 -0
- package/dist/infra/remote-secret.js +42 -0
- package/dist/infra/remote-secret.js.map +1 -0
- package/dist/infra/template-engine.d.ts +13 -0
- package/dist/infra/template-engine.d.ts.map +1 -1
- package/dist/infra/template-engine.js +106 -38
- package/dist/infra/template-engine.js.map +1 -1
- package/dist/infra/tofu-runner.d.ts +4 -3
- package/dist/infra/tofu-runner.d.ts.map +1 -1
- package/dist/infra/tofu-runner.js +36 -27
- package/dist/infra/tofu-runner.js.map +1 -1
- package/dist/infra/types.d.ts +239 -16
- package/dist/infra/types.d.ts.map +1 -1
- package/dist/infra/types.js +153 -17
- package/dist/infra/types.js.map +1 -1
- package/package.json +10 -2
- package/schema/fuel.schema.json +528 -83
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.STATE_CONTAINER_NAME = exports.deriveSuffix = void 0;
|
|
40
|
+
exports.buildResourceGroupName = buildResourceGroupName;
|
|
41
|
+
exports.buildStateStorageAccountName = buildStateStorageAccountName;
|
|
42
|
+
exports.buildKeyVaultName = buildKeyVaultName;
|
|
43
|
+
exports.waitForDns = waitForDns;
|
|
44
|
+
exports.ensureResourceGroup = ensureResourceGroup;
|
|
45
|
+
exports.ensureStateStorage = ensureStateStorage;
|
|
46
|
+
exports.ensureBootstrapKeyVault = ensureBootstrapKeyVault;
|
|
47
|
+
const https = __importStar(require("https"));
|
|
48
|
+
const dns = __importStar(require("dns"));
|
|
49
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
50
|
+
const identity_1 = require("@azure/identity");
|
|
51
|
+
const arm_resources_1 = require("@azure/arm-resources");
|
|
52
|
+
const arm_storage_1 = require("@azure/arm-storage");
|
|
53
|
+
const arm_keyvault_1 = require("@azure/arm-keyvault");
|
|
54
|
+
const storage_blob_1 = require("@azure/storage-blob");
|
|
55
|
+
const s3_state_bucket_1 = require("./s3-state-bucket");
|
|
56
|
+
Object.defineProperty(exports, "deriveSuffix", { enumerable: true, get: function () { return s3_state_bucket_1.deriveSuffix; } });
|
|
57
|
+
function slugify(name) {
|
|
58
|
+
return name.replace(/[^a-z0-9]/gi, '').toLowerCase();
|
|
59
|
+
}
|
|
60
|
+
function buildResourceGroupName(projectName) {
|
|
61
|
+
return `${projectName}-rg`.replace(/[^a-zA-Z0-9-_.()]/g, '-');
|
|
62
|
+
}
|
|
63
|
+
function buildStateStorageAccountName(projectName, suffix) {
|
|
64
|
+
const safeSuffix = slugify(suffix).slice(-8);
|
|
65
|
+
const base = slugify(projectName).slice(0, 24 - 2 - safeSuffix.length) || 'app';
|
|
66
|
+
return `st${base}${safeSuffix}`;
|
|
67
|
+
}
|
|
68
|
+
function buildKeyVaultName(projectName, suffix) {
|
|
69
|
+
const safeSuffix = slugify(suffix).slice(-8);
|
|
70
|
+
const base = slugify(projectName).slice(0, 24 - 3 - 1 - safeSuffix.length) || 'app';
|
|
71
|
+
return `kv-${base}-${safeSuffix}`;
|
|
72
|
+
}
|
|
73
|
+
exports.STATE_CONTAINER_NAME = 'tfstate';
|
|
74
|
+
function credential(credentials) {
|
|
75
|
+
return new identity_1.ClientSecretCredential(credentials.AZURE_TENANT_ID, credentials.AZURE_CLIENT_ID, credentials.AZURE_CLIENT_SECRET);
|
|
76
|
+
}
|
|
77
|
+
function isNotFound(err) {
|
|
78
|
+
return err?.statusCode === 404 || err?.code === 'ResourceNotFound';
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Polls DNS until `hostname` resolves. A freshly-created Azure PaaS resource (Key Vault,
|
|
82
|
+
* Storage Account, ...) is reported "Succeeded" by the ARM control plane before its public
|
|
83
|
+
* DNS record has actually propagated — an immediate follow-up call can fail with ENOTFOUND
|
|
84
|
+
* even though the resource exists. Only needed right after creating a new resource.
|
|
85
|
+
*/
|
|
86
|
+
async function waitForDns(hostname, timeoutMs = 60_000, intervalMs = 3_000) {
|
|
87
|
+
const deadline = Date.now() + timeoutMs;
|
|
88
|
+
for (;;) {
|
|
89
|
+
try {
|
|
90
|
+
await dns.promises.lookup(hostname);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
if (Date.now() >= deadline)
|
|
95
|
+
return; // give up silently — the caller's own request will surface the real error
|
|
96
|
+
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/** Looks up the AAD object ID for the service principal identified by AZURE_CLIENT_ID, via Microsoft Graph. */
|
|
101
|
+
async function getServicePrincipalObjectId(cred, clientId) {
|
|
102
|
+
const token = await cred.getToken('https://graph.microsoft.com/.default');
|
|
103
|
+
const url = `https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '${clientId}'`;
|
|
104
|
+
const body = await new Promise((resolve, reject) => {
|
|
105
|
+
const req = https.get(url, { headers: { Authorization: `Bearer ${token.token}` } }, (res) => {
|
|
106
|
+
let data = '';
|
|
107
|
+
res.on('data', (chunk) => (data += chunk));
|
|
108
|
+
res.on('end', () => resolve(data));
|
|
109
|
+
});
|
|
110
|
+
req.on('error', reject);
|
|
111
|
+
});
|
|
112
|
+
const parsed = JSON.parse(body);
|
|
113
|
+
if (!parsed.value || parsed.value.length === 0) {
|
|
114
|
+
throw new Error(`Could not resolve service principal object ID for AZURE_CLIENT_ID=${clientId}: ${parsed.error?.message ?? 'not found'}`);
|
|
115
|
+
}
|
|
116
|
+
return parsed.value[0].id;
|
|
117
|
+
}
|
|
118
|
+
async function ensureResourceGroup(credentials, resourceGroupName, location) {
|
|
119
|
+
const client = new arm_resources_1.ResourceManagementClient(credential(credentials), credentials.AZURE_SUBSCRIPTION_ID);
|
|
120
|
+
// checkExistence resolves to { body: boolean }, not a plain boolean — the object itself is always truthy.
|
|
121
|
+
const { body: exists } = await client.resourceGroups.checkExistence(resourceGroupName);
|
|
122
|
+
if (exists) {
|
|
123
|
+
console.log(chalk_1.default.green(` ✓ Resource group already exists: ${resourceGroupName}`));
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
console.log(chalk_1.default.cyan(` Creating resource group: ${resourceGroupName}`));
|
|
127
|
+
await client.resourceGroups.createOrUpdate(resourceGroupName, { location });
|
|
128
|
+
console.log(chalk_1.default.green(' ✓ Resource group created'));
|
|
129
|
+
}
|
|
130
|
+
/** Ensures the storage account + blob container backing the `azurerm` Tofu state backend exist. */
|
|
131
|
+
async function ensureStateStorage(credentials, resourceGroupName, storageAccountName, location, containerName = exports.STATE_CONTAINER_NAME) {
|
|
132
|
+
const cred = credential(credentials);
|
|
133
|
+
const storageClient = new arm_storage_1.StorageManagementClient(cred, credentials.AZURE_SUBSCRIPTION_ID);
|
|
134
|
+
let exists = true;
|
|
135
|
+
try {
|
|
136
|
+
await storageClient.storageAccounts.getProperties(resourceGroupName, storageAccountName);
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
if (!isNotFound(err)) {
|
|
140
|
+
throw new Error(`Failed to check state storage account "${storageAccountName}": ${err.message || err}`);
|
|
141
|
+
}
|
|
142
|
+
exists = false;
|
|
143
|
+
}
|
|
144
|
+
if (!exists) {
|
|
145
|
+
console.log(chalk_1.default.cyan(` Creating state storage account: ${storageAccountName}`));
|
|
146
|
+
const poller = await storageClient.storageAccounts.beginCreate(resourceGroupName, storageAccountName, {
|
|
147
|
+
location,
|
|
148
|
+
sku: { name: 'Standard_LRS' },
|
|
149
|
+
kind: 'StorageV2',
|
|
150
|
+
allowBlobPublicAccess: false,
|
|
151
|
+
minimumTlsVersion: 'TLS1_2',
|
|
152
|
+
});
|
|
153
|
+
await poller.pollUntilDone();
|
|
154
|
+
await waitForDns(`${storageAccountName}.blob.core.windows.net`);
|
|
155
|
+
console.log(chalk_1.default.green(' ✓ State storage account created'));
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
console.log(chalk_1.default.green(` ✓ State storage account already exists: ${storageAccountName}`));
|
|
159
|
+
}
|
|
160
|
+
const keys = await storageClient.storageAccounts.listKeys(resourceGroupName, storageAccountName);
|
|
161
|
+
const key = keys.keys?.[0]?.value;
|
|
162
|
+
if (!key) {
|
|
163
|
+
throw new Error(`Could not retrieve an access key for storage account "${storageAccountName}"`);
|
|
164
|
+
}
|
|
165
|
+
const blobServiceClient = new storage_blob_1.BlobServiceClient(`https://${storageAccountName}.blob.core.windows.net`, new storage_blob_1.StorageSharedKeyCredential(storageAccountName, key));
|
|
166
|
+
const containerClient = blobServiceClient.getContainerClient(containerName);
|
|
167
|
+
if (await containerClient.exists()) {
|
|
168
|
+
console.log(chalk_1.default.green(` ✓ State container already exists: ${containerName}`));
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
console.log(chalk_1.default.cyan(` Creating state container: ${containerName}`));
|
|
172
|
+
await containerClient.create();
|
|
173
|
+
console.log(chalk_1.default.green(' ✓ State container created'));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/** Ensures the Key Vault that stores the fuel.yml infrastructure secret exists and grants the CLI's SP access to it. */
|
|
177
|
+
async function ensureBootstrapKeyVault(credentials, resourceGroupName, keyVaultName, location) {
|
|
178
|
+
const cred = credential(credentials);
|
|
179
|
+
const client = new arm_keyvault_1.KeyVaultManagementClient(cred, credentials.AZURE_SUBSCRIPTION_ID);
|
|
180
|
+
let exists = true;
|
|
181
|
+
try {
|
|
182
|
+
await client.vaults.get(resourceGroupName, keyVaultName);
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
if (!isNotFound(err)) {
|
|
186
|
+
throw new Error(`Failed to check Key Vault "${keyVaultName}": ${err.message || err}`);
|
|
187
|
+
}
|
|
188
|
+
exists = false;
|
|
189
|
+
}
|
|
190
|
+
const objectId = await getServicePrincipalObjectId(cred, credentials.AZURE_CLIENT_ID);
|
|
191
|
+
if (exists) {
|
|
192
|
+
// A vault created outside this flow (or before this SP existed) may not grant it
|
|
193
|
+
// secret access yet. "add" merges/replaces just this principal's policy, leaving
|
|
194
|
+
// every other access policy on the vault untouched.
|
|
195
|
+
await client.vaults.updateAccessPolicy(resourceGroupName, keyVaultName, 'add', {
|
|
196
|
+
properties: {
|
|
197
|
+
accessPolicies: [
|
|
198
|
+
{
|
|
199
|
+
tenantId: credentials.AZURE_TENANT_ID,
|
|
200
|
+
objectId,
|
|
201
|
+
permissions: { secrets: ['Get', 'List', 'Set', 'Delete'] },
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
console.log(chalk_1.default.green(` ✓ Key Vault already exists: ${keyVaultName}`));
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
console.log(chalk_1.default.cyan(` Creating Key Vault: ${keyVaultName}`));
|
|
210
|
+
const poller = await client.vaults.beginCreateOrUpdate(resourceGroupName, keyVaultName, {
|
|
211
|
+
location,
|
|
212
|
+
properties: {
|
|
213
|
+
tenantId: credentials.AZURE_TENANT_ID,
|
|
214
|
+
sku: { family: 'A', name: 'standard' },
|
|
215
|
+
enableRbacAuthorization: false,
|
|
216
|
+
accessPolicies: [
|
|
217
|
+
{
|
|
218
|
+
tenantId: credentials.AZURE_TENANT_ID,
|
|
219
|
+
objectId,
|
|
220
|
+
permissions: { secrets: ['Get', 'List', 'Set', 'Delete'] },
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
await poller.pollUntilDone();
|
|
226
|
+
await waitForDns(`${keyVaultName}.vault.azure.net`);
|
|
227
|
+
console.log(chalk_1.default.green(' ✓ Key Vault created'));
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=azure-state-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-state-storage.js","sourceRoot":"","sources":["../../src/infra/azure-state-storage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,wDAEC;AAED,oEAIC;AAED,8CAIC;AAsBD,gCAWC;AAuBD,kDAeC;AAGD,gDAsDC;AAGD,0DA2DC;AA7ND,6CAA8B;AAC9B,yCAA0B;AAC1B,kDAAyB;AACzB,8CAAyE;AACzE,wDAA+D;AAC/D,oDAA4D;AAC5D,sDAA8D;AAC9D,sDAAmF;AAEnF,uDAAgD;AAEvC,6FAFA,8BAAY,OAEA;AAErB,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AACtD,CAAC;AAED,SAAgB,sBAAsB,CAAC,WAAmB;IACxD,OAAO,GAAG,WAAW,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;AAC/D,CAAC;AAED,SAAgB,4BAA4B,CAAC,WAAmB,EAAE,MAAc;IAC9E,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAA;IAC/E,OAAO,KAAK,IAAI,GAAG,UAAU,EAAE,CAAA;AACjC,CAAC;AAED,SAAgB,iBAAiB,CAAC,WAAmB,EAAE,MAAc;IACnE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAA;IACnF,OAAO,MAAM,IAAI,IAAI,UAAU,EAAE,CAAA;AACnC,CAAC;AAEY,QAAA,oBAAoB,GAAG,SAAS,CAAA;AAE7C,SAAS,UAAU,CAAC,WAAwB;IAC1C,OAAO,IAAI,iCAAsB,CAC/B,WAAW,CAAC,eAAe,EAC3B,WAAW,CAAC,eAAe,EAC3B,WAAW,CAAC,mBAAmB,CAChC,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAQ;IAC1B,OAAO,GAAG,EAAE,UAAU,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB,CAAA;AACpE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,SAAS,GAAG,MAAM,EAAE,UAAU,GAAG,KAAK;IACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;IACvC,SAAS,CAAC;QACR,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACnC,OAAM;QACR,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,OAAM,CAAC,0EAA0E;YAC7G,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;AACH,CAAC;AAED,+GAA+G;AAC/G,KAAK,UAAU,2BAA2B,CAAC,IAAqB,EAAE,QAAgB;IAChF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAA;IACzE,MAAM,GAAG,GAAG,wEAAwE,QAAQ,GAAG,CAAA;IAC/F,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YAC3F,IAAI,IAAI,GAAG,EAAE,CAAA;YACb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAA;YAC1C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmE,CAAA;IACjG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,qEAAqE,QAAQ,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,CACzH,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC3B,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,WAAwB,EACxB,iBAAyB,EACzB,QAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,wCAAwB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAA;IACvG,0GAA0G;IAC1G,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;IACtF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,iBAAiB,EAAE,CAAC,CAAC,CAAA;QACnF,OAAM;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,mGAAmG;AAC5F,KAAK,UAAU,kBAAkB,CACtC,WAAwB,EACxB,iBAAyB,EACzB,kBAA0B,EAC1B,QAAgB,EAChB,gBAAwB,4BAAoB;IAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACpC,MAAM,aAAa,GAAG,IAAI,qCAAuB,CAAC,IAAI,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAA;IAE1F,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAA;IAC1F,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,kBAAkB,MAAM,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAA;QACzG,CAAC;QACD,MAAM,GAAG,KAAK,CAAA;IAChB,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,kBAAkB,EAAE,CAAC,CAAC,CAAA;QAClF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,iBAAiB,EAAE,kBAAkB,EAAE;YACpG,QAAQ;YACR,GAAG,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;YAC7B,IAAI,EAAE,WAAW;YACjB,qBAAqB,EAAE,KAAK;YAC5B,iBAAiB,EAAE,QAAQ;SAC5B,CAAC,CAAA;QACF,MAAM,MAAM,CAAC,aAAa,EAAE,CAAA;QAC5B,MAAM,UAAU,CAAC,GAAG,kBAAkB,wBAAwB,CAAC,CAAA;QAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAA;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6CAA6C,kBAAkB,EAAE,CAAC,CAAC,CAAA;IAC7F,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAA;IAChG,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAA;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,yDAAyD,kBAAkB,GAAG,CAAC,CAAA;IACjG,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,gCAAiB,CAC7C,WAAW,kBAAkB,wBAAwB,EACrD,IAAI,yCAA0B,CAAC,kBAAkB,EAAE,GAAG,CAAC,CACxD,CAAA;IACD,MAAM,eAAe,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;IAC3E,IAAI,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,aAAa,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+BAA+B,aAAa,EAAE,CAAC,CAAC,CAAA;QACvE,MAAM,eAAe,CAAC,MAAM,EAAE,CAAA;QAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;IACzD,CAAC;AACH,CAAC;AAED,wHAAwH;AACjH,KAAK,UAAU,uBAAuB,CAC3C,WAAwB,EACxB,iBAAyB,EACzB,YAAoB,EACpB,QAAgB;IAEhB,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACpC,MAAM,MAAM,GAAG,IAAI,uCAAwB,CAAC,IAAI,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAA;IAEpF,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA;IAC1D,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,MAAM,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAA;QACvF,CAAC;QACD,MAAM,GAAG,KAAK,CAAA;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;IAErF,IAAI,MAAM,EAAE,CAAC;QACX,iFAAiF;QACjF,iFAAiF;QACjF,oDAAoD;QACpD,MAAM,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE;YAC7E,UAAU,EAAE;gBACV,cAAc,EAAE;oBACd;wBACE,QAAQ,EAAE,WAAW,CAAC,eAAe;wBACrC,QAAQ;wBACR,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE;qBAC3D;iBACF;aACF;SACF,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC,CAAA;QACzE,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC,CAAA;IAChE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,EAAE;QACtF,QAAQ;QACR,UAAU,EAAE;YACV,QAAQ,EAAE,WAAW,CAAC,eAAe;YACrC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE;YACtC,uBAAuB,EAAE,KAAK;YAC9B,cAAc,EAAE;gBACd;oBACE,QAAQ,EAAE,WAAW,CAAC,eAAe;oBACrC,QAAQ;oBACR,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE;iBAC3D;aACF;SACF;KACF,CAAC,CAAA;IACF,MAAM,MAAM,CAAC,aAAa,EAAE,CAAA;IAC5B,MAAM,UAAU,CAAC,GAAG,YAAY,kBAAkB,CAAC,CAAA;IACnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAA;AACnD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Credentials, CredentialKey } from './types';
|
|
1
|
+
import { Credentials, CredentialKey, Deployment } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Resolve credentials by merging sources in priority order:
|
|
4
4
|
* 1. CLI flag overrides (highest)
|
|
@@ -7,5 +7,5 @@ import { Credentials, CredentialKey } from './types';
|
|
|
7
7
|
*
|
|
8
8
|
* Sources are merged per-key — e.g., AWS keys from env + GITHUB_TOKEN from file = valid.
|
|
9
9
|
*/
|
|
10
|
-
export declare function resolveCredentials(searchDir?: string, overrides?: Partial<Record<CredentialKey, string
|
|
10
|
+
export declare function resolveCredentials(searchDir?: string, overrides?: Partial<Record<CredentialKey, string>>, deployment?: Deployment): Promise<Credentials>;
|
|
11
11
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/infra/credentials.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA4B,aAAa,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/infra/credentials.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA4B,aAAa,EAAE,UAAU,EAA6B,MAAM,SAAS,CAAA;AAgBrH;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,EAClD,UAAU,GAAE,UAAkB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAoCtB"}
|
|
@@ -61,7 +61,8 @@ async function tryReadCredentialsFile(credPath) {
|
|
|
61
61
|
*
|
|
62
62
|
* Sources are merged per-key — e.g., AWS keys from env + GITHUB_TOKEN from file = valid.
|
|
63
63
|
*/
|
|
64
|
-
async function resolveCredentials(searchDir, overrides) {
|
|
64
|
+
async function resolveCredentials(searchDir, overrides, deployment = 'ecs') {
|
|
65
|
+
const requiredKeys = (0, types_1.requiredCredentialKeysFor)(deployment);
|
|
65
66
|
// Collect file values from searchDir and CWD
|
|
66
67
|
const credPath = searchDir
|
|
67
68
|
? path.join(searchDir, '.fuel-credentials')
|
|
@@ -83,7 +84,7 @@ async function resolveCredentials(searchDir, overrides) {
|
|
|
83
84
|
process.env[key] ||
|
|
84
85
|
undefined;
|
|
85
86
|
}
|
|
86
|
-
const missing =
|
|
87
|
+
const missing = requiredKeys.filter((k) => !resolved[k]);
|
|
87
88
|
if (missing.length > 0) {
|
|
88
89
|
throw new Error(`Missing credentials: ${missing.join(', ')}\n` +
|
|
89
90
|
`Provide them via CLI flags, .fuel-credentials file, or environment variables.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/infra/credentials.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/infra/credentials.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,gDAwCC;AAlED,2CAA4B;AAC5B,6CAA8B;AAC9B,mCAAqH;AAErH,KAAK,UAAU,sBAAsB,CAAC,QAAgB;IACpD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAA2B,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAChE,MAAM,MAAM,GAA2C,EAAE,CAAA;QACzD,KAAK,MAAM,GAAG,IAAI,gCAAwB,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,kBAAkB,CACtC,SAAkB,EAClB,SAAkD,EAClD,aAAyB,KAAK;IAE9B,MAAM,YAAY,GAAG,IAAA,iCAAyB,EAAC,UAAU,CAAC,CAAA;IAE1D,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACrC,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAEzD,wDAAwD;IACxD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,IAAI,SAAS,GAA2C,EAAE,CAAA;IAC1D,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;QACjD,SAAS,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAC7E,CAAC;IAED,iEAAiE;IACjE,MAAM,QAAQ,GAA2C,EAAE,CAAA;IAC3D,KAAK,MAAM,GAAG,IAAI,gCAAwB,EAAE,CAAC;QAC3C,QAAQ,CAAC,GAAG,CAAC;YACX,SAAS,EAAE,CAAC,GAAG,CAAC;gBAChB,UAAU,CAAC,GAAG,CAAC;gBACf,SAAS,CAAC,GAAG,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAChB,SAAS,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC5C,+EAA+E,CAClF,CAAA;IACH,CAAC;IAED,OAAO,QAAuB,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Deployment } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Infers the deployment provider from an already-generated /infra folder,
|
|
4
|
+
* for flows that need it before fuel.yml/the remote secret has been read
|
|
5
|
+
* (e.g. `--tofu-only`, `infra:pull`). Based on which provider block
|
|
6
|
+
* providers.tf declares.
|
|
7
|
+
*/
|
|
8
|
+
export declare function detectDeploymentFromInfraDir(infraDir: string): Promise<Deployment>;
|
|
9
|
+
//# sourceMappingURL=deployment-detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-detect.d.ts","sourceRoot":"","sources":["../../src/infra/deployment-detect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAOxF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.detectDeploymentFromInfraDir = detectDeploymentFromInfraDir;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const fs = __importStar(require("fs-extra"));
|
|
39
|
+
/**
|
|
40
|
+
* Infers the deployment provider from an already-generated /infra folder,
|
|
41
|
+
* for flows that need it before fuel.yml/the remote secret has been read
|
|
42
|
+
* (e.g. `--tofu-only`, `infra:pull`). Based on which provider block
|
|
43
|
+
* providers.tf declares.
|
|
44
|
+
*/
|
|
45
|
+
async function detectDeploymentFromInfraDir(infraDir) {
|
|
46
|
+
const providersPath = path.join(infraDir, 'providers.tf');
|
|
47
|
+
if (!(await fs.pathExists(providersPath))) {
|
|
48
|
+
return 'ecs';
|
|
49
|
+
}
|
|
50
|
+
const content = await fs.readFile(providersPath, 'utf-8');
|
|
51
|
+
return content.includes('azurerm') ? 'azure' : 'ecs';
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=deployment-detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-detect.js","sourceRoot":"","sources":["../../src/infra/deployment-detect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,oEAOC;AAjBD,2CAA4B;AAC5B,6CAA8B;AAG9B;;;;;GAKG;AACI,KAAK,UAAU,4BAA4B,CAAC,QAAgB;IACjE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IACzD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACzD,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;AACtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-client.d.ts","sourceRoot":"","sources":["../../src/infra/github-client.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAY5C;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"github-client.d.ts","sourceRoot":"","sources":["../../src/infra/github-client.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAY5C;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
|
@@ -38,10 +38,7 @@ async function setBranchProtection(token, owner, repo, branch) {
|
|
|
38
38
|
required_approving_review_count: 1,
|
|
39
39
|
dismiss_stale_reviews: true,
|
|
40
40
|
},
|
|
41
|
-
required_status_checks:
|
|
42
|
-
strict: true,
|
|
43
|
-
contexts: ['Title matches Jira Issue'],
|
|
44
|
-
},
|
|
41
|
+
required_status_checks: null,
|
|
45
42
|
restrictions: null,
|
|
46
43
|
allow_deletions: false,
|
|
47
44
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-client.js","sourceRoot":"","sources":["../../src/infra/github-client.ts"],"names":[],"mappings":";;AAEA,gCAaC;AAED,4CAgBC;AAED,
|
|
1
|
+
{"version":3,"file":"github-client.js","sourceRoot":"","sources":["../../src/infra/github-client.ts"],"names":[],"mappings":";;AAEA,gCAaC;AAED,4CAgBC;AAED,kDAqBC;AAxDD,wCAAuC;AAEhC,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,GAAW,EACX,IAAY;IAEZ,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5C,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;QACrC,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,GAAW,EACX,IAAY;IAEZ,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAE5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACpD,GAAG;QACH,IAAI;QACJ,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,uCAAuC;KACrD,CAAC,CAAA;IAEF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAA;AACpD,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,KAAa,EACb,KAAa,EACb,IAAY,EACZ,MAAc;IAEd,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAE5C,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;QAC9C,KAAK;QACL,IAAI;QACJ,MAAM;QACN,cAAc,EAAE,KAAK;QACrB,6BAA6B,EAAE;YAC7B,+BAA+B,EAAE,CAAC;YAClC,qBAAqB,EAAE,IAAI;SAC5B;QACD,sBAAsB,EAAE,IAAI;QAC5B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACvB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/infra/orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/infra/orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAkFlD,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAmSD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAKf"}
|