@catladder/cli 0.0.0-refactor-untangle-gitlab-api-requests-from-vorpal-c65e5318 → 0.0.0-refactor-untangle-gitlab-api-requests-from-vorpal-57cf3cf2
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/bundles/catenv/index.js +30 -21
- package/dist/bundles/cli/index.js +49 -40
- package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.d.ts +3 -1
- package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.js +7 -7
- package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.js.map +1 -1
- package/dist/cli/src/apps/cli/commands/project/setup/setupAccessTokens.d.ts +3 -1
- package/dist/cli/src/apps/cli/commands/project/setup/setupAccessTokens.js +6 -6
- package/dist/cli/src/apps/cli/commands/project/setup/setupAccessTokens.js.map +1 -1
- package/dist/cli/src/apps/cli/commands/project/setup/setupKubernetes.d.ts +3 -1
- package/dist/cli/src/apps/cli/commands/project/setup/setupKubernetes.js +6 -6
- package/dist/cli/src/apps/cli/commands/project/setup/setupKubernetes.js.map +1 -1
- package/dist/cli/src/utils/gitlab-without-vorpal/gitLabProjectByGitPath.d.ts +1 -0
- package/dist/cli/src/utils/gitlab-without-vorpal/gitLabProjectByGitPath.js +16 -1
- package/dist/cli/src/utils/gitlab-without-vorpal/gitLabProjectByGitPath.js.map +1 -1
- package/dist/cli/src/utils/gitlab-without-vorpal/gitLabVariables.js +2 -6
- package/dist/cli/src/utils/gitlab-without-vorpal/gitLabVariables.js.map +1 -1
- package/dist/cli/src/utils/gitlab.d.ts +6 -3
- package/dist/cli/src/utils/gitlab.js +9 -14
- package/dist/cli/src/utils/gitlab.js.map +1 -1
- package/dist/cli/src/utils/preferences/CatladderPreferences.d.ts +4 -0
- package/dist/cli/src/utils/preferences/CatladderPreferences.js +3 -0
- package/dist/cli/src/utils/preferences/CatladderPreferences.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/apps/cli/commands/project/commandGitlabCi.ts +16 -12
- package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +12 -7
- package/src/apps/cli/commands/project/setup/setupKubernetes.ts +14 -9
- package/src/utils/gitlab-without-vorpal/gitLabProjectByGitPath.ts +18 -0
- package/src/utils/gitlab-without-vorpal/gitLabVariables.ts +5 -7
- package/src/utils/gitlab.ts +19 -22
- package/src/utils/preferences/CatladderPreferences.ts +4 -0
|
@@ -719,7 +719,8 @@ exports.getGitLabHostPathToken = getGitLabHostPathToken;
|
|
|
719
719
|
"use strict";
|
|
720
720
|
|
|
721
721
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
722
|
-
exports.gitLabProjectByGitPath = void 0;
|
|
722
|
+
exports.getGitLabProjectId = exports.gitLabProjectByGitPath = void 0;
|
|
723
|
+
const preferences_1 = __nccwpck_require__(62636);
|
|
723
724
|
const fetchGitLabApi_1 = __nccwpck_require__(48585);
|
|
724
725
|
const getGitlabHostPathToken_1 = __nccwpck_require__(82250);
|
|
725
726
|
const gitLabProjectByGitPath = async (existing = {}, logger = console) => {
|
|
@@ -731,6 +732,20 @@ const gitLabProjectByGitPath = async (existing = {}, logger = console) => {
|
|
|
731
732
|
}, logger);
|
|
732
733
|
};
|
|
733
734
|
exports.gitLabProjectByGitPath = gitLabProjectByGitPath;
|
|
735
|
+
const getGitLabProjectId = async (existing = {}, logger = console) => {
|
|
736
|
+
const [preferences, { host, path, token }] = await Promise.all([
|
|
737
|
+
(0, preferences_1.getPreferences)(logger),
|
|
738
|
+
(0, getGitlabHostPathToken_1.getGitLabHostPathToken)(existing, logger),
|
|
739
|
+
]);
|
|
740
|
+
const hostPathKey = `${host}/${path}`;
|
|
741
|
+
if (preferences.gitLabProjectIds[hostPathKey]) {
|
|
742
|
+
return preferences.gitLabProjectIds[hostPathKey];
|
|
743
|
+
}
|
|
744
|
+
const project = await (0, exports.gitLabProjectByGitPath)({ token, host, path }, logger);
|
|
745
|
+
await (0, preferences_1.upsertPreferences)({ gitLabProjectIds: { [hostPathKey]: project.id } });
|
|
746
|
+
return project.id;
|
|
747
|
+
};
|
|
748
|
+
exports.getGitLabProjectId = getGitLabProjectId;
|
|
734
749
|
//# sourceMappingURL=gitLabProjectByGitPath.js.map
|
|
735
750
|
|
|
736
751
|
/***/ }),
|
|
@@ -802,9 +817,7 @@ const getAllVariables = (0, memoizee_1.default)(async ({ logger = console, paral
|
|
|
802
817
|
if (!(token === null || token === void 0 ? void 0 : token.length)) {
|
|
803
818
|
throw new GitLabTokenMissingError_1.GitLabTokenMissingError();
|
|
804
819
|
}
|
|
805
|
-
const {
|
|
806
|
-
? { id: projectId }
|
|
807
|
-
: await (0, gitLabProjectByGitPath_1.gitLabProjectByGitPath)({ host, path, token }, logger);
|
|
820
|
+
const id = projectId || (await (0, gitLabProjectByGitPath_1.getGitLabProjectId)({ host, path, token }, logger));
|
|
808
821
|
let all = [];
|
|
809
822
|
let result = [];
|
|
810
823
|
let page = 1;
|
|
@@ -824,9 +837,7 @@ const getAllCatladderEnvVars = async ({ logger = console, projectId, ...existing
|
|
|
824
837
|
if (!(token === null || token === void 0 ? void 0 : token.length)) {
|
|
825
838
|
throw new GitLabTokenMissingError_1.GitLabTokenMissingError();
|
|
826
839
|
}
|
|
827
|
-
const {
|
|
828
|
-
? { id: projectId }
|
|
829
|
-
: await (0, gitLabProjectByGitPath_1.gitLabProjectByGitPath)({ host, path, token }, logger);
|
|
840
|
+
const id = projectId || (await (0, gitLabProjectByGitPath_1.getGitLabProjectId)({ host, path, token }, logger));
|
|
830
841
|
const fetchResults = await exports.gitLabVariable.getAll({
|
|
831
842
|
projectId: id,
|
|
832
843
|
host,
|
|
@@ -1041,7 +1052,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
1041
1052
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
1042
1053
|
};
|
|
1043
1054
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1044
|
-
exports.upsertAllVariables = exports.clearBackups = exports.getVariableValueByRawName = exports.
|
|
1055
|
+
exports.upsertAllVariables = exports.clearBackups = exports.getVariableValueByRawName = exports.doGitlabRequest = exports.getGitlabToken = exports.setupGitlabToken = void 0;
|
|
1045
1056
|
const lodash_1 = __nccwpck_require__(23255);
|
|
1046
1057
|
const open_1 = __importDefault(__nccwpck_require__(14247));
|
|
1047
1058
|
const pipeline_1 = __nccwpck_require__(10603);
|
|
@@ -1099,23 +1110,17 @@ const getGitlabToken = async (vorpal, host) => {
|
|
|
1099
1110
|
exports.getGitlabToken = getGitlabToken;
|
|
1100
1111
|
const doGitlabRequest = async (vorpal, { path: resourcePath, ...args }) => (0, gitlab_without_vorpal_1.fetchGitLabApi)({ resourcePath, ...args }, vorpal);
|
|
1101
1112
|
exports.doGitlabRequest = doGitlabRequest;
|
|
1102
|
-
const
|
|
1103
|
-
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
1104
|
-
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
1105
|
-
return (0, gitlab_without_vorpal_1.gitLabProjectByGitPath)({ host, path, token }, vorpal);
|
|
1106
|
-
};
|
|
1107
|
-
exports.getProjectInfo = getProjectInfo;
|
|
1108
|
-
const getVariableValueByRawName = async (vorpal, rawName, existing = {}) => {
|
|
1113
|
+
const getVariableValueByRawName = async (vorpal, rawName, { projectId, ...existing } = {}) => {
|
|
1109
1114
|
var _a;
|
|
1110
1115
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
1111
1116
|
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
1112
|
-
const
|
|
1117
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
1113
1118
|
const allVariables = await gitlab_without_vorpal_1.gitLabVariable.getAll({
|
|
1114
1119
|
logger: vorpal,
|
|
1115
1120
|
host,
|
|
1116
1121
|
path,
|
|
1117
1122
|
token,
|
|
1118
|
-
projectId,
|
|
1123
|
+
projectId: id,
|
|
1119
1124
|
});
|
|
1120
1125
|
return (_a = allVariables.find((v) => v.key === rawName)) === null || _a === void 0 ? void 0 : _a.value;
|
|
1121
1126
|
};
|
|
@@ -1123,19 +1128,20 @@ exports.getVariableValueByRawName = getVariableValueByRawName;
|
|
|
1123
1128
|
const getAllCatladderEnvVarsInGitlab = async (vorpal, { projectId, ...existing } = {}) => {
|
|
1124
1129
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
1125
1130
|
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
1131
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
1126
1132
|
return gitlab_without_vorpal_1.gitLabVariable.getAllCatladder({
|
|
1127
1133
|
logger: vorpal,
|
|
1128
1134
|
host,
|
|
1129
1135
|
path,
|
|
1130
1136
|
token,
|
|
1131
|
-
projectId,
|
|
1137
|
+
projectId: id,
|
|
1132
1138
|
});
|
|
1133
1139
|
};
|
|
1134
1140
|
const getBackupKey = (fullKey, timestamp) => `${fullKey}_backup_${timestamp}`;
|
|
1135
1141
|
const clearBackups = async (vorpal, keep, existing = {}) => {
|
|
1136
1142
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
1137
1143
|
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
1138
|
-
const
|
|
1144
|
+
const id = await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal);
|
|
1139
1145
|
const existingVariables = await getAllCatladderEnvVarsInGitlab(vorpal, {
|
|
1140
1146
|
projectId: id,
|
|
1141
1147
|
host,
|
|
@@ -1153,11 +1159,11 @@ const clearBackups = async (vorpal, keep, existing = {}) => {
|
|
|
1153
1159
|
};
|
|
1154
1160
|
exports.clearBackups = clearBackups;
|
|
1155
1161
|
const upsertAllVariables = async (vorpal, variables, env, componentName, backup = true, masked = true, // FIXME: would be better to have this per variable
|
|
1156
|
-
existing = {}) => {
|
|
1162
|
+
{ projectId, ...existing } = {}) => {
|
|
1157
1163
|
var _a;
|
|
1158
1164
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
1159
1165
|
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
1160
|
-
const
|
|
1166
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
1161
1167
|
// we list all existing variables. We also gather backup versions, but its currently unused
|
|
1162
1168
|
const existingVariables = await getAllCatladderEnvVarsInGitlab(vorpal, {
|
|
1163
1169
|
projectId: id,
|
|
@@ -1322,15 +1328,18 @@ exports.mergeWithFallback = void 0;
|
|
|
1322
1328
|
const gitlabPersonalAccessToken = "gitlab-personal-access-token";
|
|
1323
1329
|
const googleAuthUserNumber = "googleAuthUserNumber";
|
|
1324
1330
|
const gitlabTokens = "gitlabTokens";
|
|
1331
|
+
const gitLabProjectIds = "gitLabProjectIds";
|
|
1325
1332
|
const preferenceKeys = [
|
|
1326
1333
|
gitlabPersonalAccessToken,
|
|
1327
1334
|
googleAuthUserNumber,
|
|
1328
1335
|
gitlabTokens,
|
|
1336
|
+
gitLabProjectIds,
|
|
1329
1337
|
];
|
|
1330
1338
|
const perfFallback = {
|
|
1331
1339
|
[gitlabPersonalAccessToken]: undefined,
|
|
1332
1340
|
[googleAuthUserNumber]: undefined,
|
|
1333
1341
|
[gitlabTokens]: {},
|
|
1342
|
+
[gitLabProjectIds]: {},
|
|
1334
1343
|
};
|
|
1335
1344
|
/**
|
|
1336
1345
|
* Merges a partial configuration object with a fallback configuration object.
|
|
@@ -1499,12 +1499,12 @@ const promptJob = async (vorpal, projectId, ctx, existing = {}) => {
|
|
|
1499
1499
|
const jobId = Number((0, lodash_1.last)(jobName.split("-")));
|
|
1500
1500
|
return jobs.find((j) => j.id === jobId);
|
|
1501
1501
|
};
|
|
1502
|
-
const commandGitlabCi = async (vorpal, existing = {}) => {
|
|
1502
|
+
const commandGitlabCi = async (vorpal, { projectId, ...existing } = {}) => {
|
|
1503
1503
|
vorpal.command("project-ci-job-open", "Open a Job").action(async function () {
|
|
1504
1504
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
1505
1505
|
const token = inputToken || (await (0, gitlab_1.getGitlabToken)(this, host));
|
|
1506
|
-
const
|
|
1507
|
-
const job = await promptJob(this,
|
|
1506
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
1507
|
+
const job = await promptJob(this, id, this, { host, path, token });
|
|
1508
1508
|
(0, open_1.default)(job.web_url);
|
|
1509
1509
|
});
|
|
1510
1510
|
vorpal
|
|
@@ -1513,13 +1513,13 @@ const commandGitlabCi = async (vorpal, existing = {}) => {
|
|
|
1513
1513
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
1514
1514
|
const token = inputToken || (await (0, gitlab_1.getGitlabToken)(this, host));
|
|
1515
1515
|
const apiData = { host, path, token };
|
|
1516
|
-
const
|
|
1517
|
-
const { id } = await promptJob(this,
|
|
1516
|
+
const pId = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
1517
|
+
const { id } = await promptJob(this, pId, this, apiData);
|
|
1518
1518
|
let finished = false;
|
|
1519
1519
|
while (!finished) {
|
|
1520
|
-
const trace = await (0, child_process_promise_1.exec)(`curl -s --header "PRIVATE-TOKEN: ${token}" "https://git.panter.ch/api/v4/projects/${
|
|
1520
|
+
const trace = await (0, child_process_promise_1.exec)(`curl -s --header "PRIVATE-TOKEN: ${token}" "https://git.panter.ch/api/v4/projects/${pId}/jobs/${id}/trace"`);
|
|
1521
1521
|
const job = await (0, gitlab_1.doGitlabRequest)(this, {
|
|
1522
|
-
path: `projects/${
|
|
1522
|
+
path: `projects/${pId}/jobs/${id}`,
|
|
1523
1523
|
host,
|
|
1524
1524
|
token,
|
|
1525
1525
|
});
|
|
@@ -2051,23 +2051,23 @@ const date_fns_1 = __nccwpck_require__(44438);
|
|
|
2051
2051
|
const gitlab_without_vorpal_1 = __nccwpck_require__(84346);
|
|
2052
2052
|
const gitlab_1 = __nccwpck_require__(12927);
|
|
2053
2053
|
const TOKEN_NAME = "semantic-release";
|
|
2054
|
-
const setupAccessTokens = async (vorpal, existing = {}) => {
|
|
2054
|
+
const setupAccessTokens = async (vorpal, { projectId, ...existing } = {}) => {
|
|
2055
2055
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
2056
2056
|
const token = inputToken || (await (0, gitlab_1.getGitlabToken)(vorpal, host));
|
|
2057
|
-
const
|
|
2058
|
-
const projectTokens = await gitlab_without_vorpal_1.gitLabProjectAccessToken.getList({ projectId, token, host }, vorpal);
|
|
2057
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
2058
|
+
const projectTokens = await gitlab_without_vorpal_1.gitLabProjectAccessToken.getList({ projectId: id, token, host }, vorpal);
|
|
2059
2059
|
const accessToken = projectTokens.find((t) => t.name === TOKEN_NAME && t.active === true);
|
|
2060
2060
|
const expires_at = (0, date_fns_1.add)(new Date(), { years: 1, days: -1 });
|
|
2061
2061
|
const newToken = accessToken
|
|
2062
2062
|
? await gitlab_without_vorpal_1.gitLabProjectAccessToken.rotate({
|
|
2063
|
-
projectId,
|
|
2063
|
+
projectId: id,
|
|
2064
2064
|
tokenId: accessToken.id,
|
|
2065
2065
|
token,
|
|
2066
2066
|
host,
|
|
2067
2067
|
data: { expires_at },
|
|
2068
2068
|
}, vorpal)
|
|
2069
2069
|
: await gitlab_without_vorpal_1.gitLabProjectAccessToken.create({
|
|
2070
|
-
projectId,
|
|
2070
|
+
projectId: id,
|
|
2071
2071
|
token,
|
|
2072
2072
|
host,
|
|
2073
2073
|
data: {
|
|
@@ -2077,7 +2077,7 @@ const setupAccessTokens = async (vorpal, existing = {}) => {
|
|
|
2077
2077
|
access_level: 40, // Maintainer
|
|
2078
2078
|
},
|
|
2079
2079
|
}, vorpal);
|
|
2080
|
-
const fetchCommon = { key: "GL_TOKEN", projectId, host, token };
|
|
2080
|
+
const fetchCommon = { key: "GL_TOKEN", projectId: id, host, token };
|
|
2081
2081
|
try {
|
|
2082
2082
|
await gitlab_without_vorpal_1.gitLabVariable.get(fetchCommon, vorpal);
|
|
2083
2083
|
await gitlab_without_vorpal_1.gitLabVariable.update({ ...fetchCommon, value: newToken.token }, vorpal);
|
|
@@ -2209,7 +2209,7 @@ const ensureNamespace_1 = __importDefault(__nccwpck_require__(81349));
|
|
|
2209
2209
|
const gitlab_without_vorpal_1 = __nccwpck_require__(84346);
|
|
2210
2210
|
const gitlab_1 = __nccwpck_require__(12927);
|
|
2211
2211
|
const cluster_1 = __nccwpck_require__(62774);
|
|
2212
|
-
const setupKubernetes = async (vorpal, context, existing = {}) => {
|
|
2212
|
+
const setupKubernetes = async (vorpal, context, { projectId, ...existing } = {}) => {
|
|
2213
2213
|
var _a;
|
|
2214
2214
|
const deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
|
|
2215
2215
|
if (!(0, pipeline_1.isOfDeployType)(deployConfig, "kubernetes")) {
|
|
@@ -2217,19 +2217,19 @@ const setupKubernetes = async (vorpal, context, existing = {}) => {
|
|
|
2217
2217
|
}
|
|
2218
2218
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
2219
2219
|
const token = inputToken || (await (0, gitlab_1.getGitlabToken)(vorpal, host));
|
|
2220
|
-
const
|
|
2221
|
-
const
|
|
2220
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
2221
|
+
const requestInfo = { host, path, token, projectId: id };
|
|
2222
2222
|
const deploy_tokens = await (0, gitlab_1.doGitlabRequest)(vorpal, {
|
|
2223
|
-
path: `projects/${
|
|
2223
|
+
path: `projects/${id}/deploy_tokens`,
|
|
2224
2224
|
host,
|
|
2225
2225
|
token,
|
|
2226
2226
|
});
|
|
2227
2227
|
if (!deploy_tokens.find((v) => v.name === "gitlab-deploy-token")) {
|
|
2228
2228
|
vorpal.log("I will setup the 'GitLab Deploy Token', so Kubernetes can pull images from this project.");
|
|
2229
2229
|
await (0, gitlab_1.doGitlabRequest)(vorpal, {
|
|
2230
|
-
path: `projects/${
|
|
2230
|
+
path: `projects/${id}/deploy_tokens`,
|
|
2231
2231
|
data: {
|
|
2232
|
-
id
|
|
2232
|
+
id,
|
|
2233
2233
|
name: "gitlab-deploy-token",
|
|
2234
2234
|
scopes: ["read_registry"],
|
|
2235
2235
|
},
|
|
@@ -3629,7 +3629,8 @@ exports.getGitLabHostPathToken = getGitLabHostPathToken;
|
|
|
3629
3629
|
"use strict";
|
|
3630
3630
|
|
|
3631
3631
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
3632
|
-
exports.gitLabProjectByGitPath = void 0;
|
|
3632
|
+
exports.getGitLabProjectId = exports.gitLabProjectByGitPath = void 0;
|
|
3633
|
+
const preferences_1 = __nccwpck_require__(62636);
|
|
3633
3634
|
const fetchGitLabApi_1 = __nccwpck_require__(48585);
|
|
3634
3635
|
const getGitlabHostPathToken_1 = __nccwpck_require__(82250);
|
|
3635
3636
|
const gitLabProjectByGitPath = async (existing = {}, logger = console) => {
|
|
@@ -3641,6 +3642,20 @@ const gitLabProjectByGitPath = async (existing = {}, logger = console) => {
|
|
|
3641
3642
|
}, logger);
|
|
3642
3643
|
};
|
|
3643
3644
|
exports.gitLabProjectByGitPath = gitLabProjectByGitPath;
|
|
3645
|
+
const getGitLabProjectId = async (existing = {}, logger = console) => {
|
|
3646
|
+
const [preferences, { host, path, token }] = await Promise.all([
|
|
3647
|
+
(0, preferences_1.getPreferences)(logger),
|
|
3648
|
+
(0, getGitlabHostPathToken_1.getGitLabHostPathToken)(existing, logger),
|
|
3649
|
+
]);
|
|
3650
|
+
const hostPathKey = `${host}/${path}`;
|
|
3651
|
+
if (preferences.gitLabProjectIds[hostPathKey]) {
|
|
3652
|
+
return preferences.gitLabProjectIds[hostPathKey];
|
|
3653
|
+
}
|
|
3654
|
+
const project = await (0, exports.gitLabProjectByGitPath)({ token, host, path }, logger);
|
|
3655
|
+
await (0, preferences_1.upsertPreferences)({ gitLabProjectIds: { [hostPathKey]: project.id } });
|
|
3656
|
+
return project.id;
|
|
3657
|
+
};
|
|
3658
|
+
exports.getGitLabProjectId = getGitLabProjectId;
|
|
3644
3659
|
//# sourceMappingURL=gitLabProjectByGitPath.js.map
|
|
3645
3660
|
|
|
3646
3661
|
/***/ }),
|
|
@@ -3712,9 +3727,7 @@ const getAllVariables = (0, memoizee_1.default)(async ({ logger = console, paral
|
|
|
3712
3727
|
if (!(token === null || token === void 0 ? void 0 : token.length)) {
|
|
3713
3728
|
throw new GitLabTokenMissingError_1.GitLabTokenMissingError();
|
|
3714
3729
|
}
|
|
3715
|
-
const {
|
|
3716
|
-
? { id: projectId }
|
|
3717
|
-
: await (0, gitLabProjectByGitPath_1.gitLabProjectByGitPath)({ host, path, token }, logger);
|
|
3730
|
+
const id = projectId || (await (0, gitLabProjectByGitPath_1.getGitLabProjectId)({ host, path, token }, logger));
|
|
3718
3731
|
let all = [];
|
|
3719
3732
|
let result = [];
|
|
3720
3733
|
let page = 1;
|
|
@@ -3734,9 +3747,7 @@ const getAllCatladderEnvVars = async ({ logger = console, projectId, ...existing
|
|
|
3734
3747
|
if (!(token === null || token === void 0 ? void 0 : token.length)) {
|
|
3735
3748
|
throw new GitLabTokenMissingError_1.GitLabTokenMissingError();
|
|
3736
3749
|
}
|
|
3737
|
-
const {
|
|
3738
|
-
? { id: projectId }
|
|
3739
|
-
: await (0, gitLabProjectByGitPath_1.gitLabProjectByGitPath)({ host, path, token }, logger);
|
|
3750
|
+
const id = projectId || (await (0, gitLabProjectByGitPath_1.getGitLabProjectId)({ host, path, token }, logger));
|
|
3740
3751
|
const fetchResults = await exports.gitLabVariable.getAll({
|
|
3741
3752
|
projectId: id,
|
|
3742
3753
|
host,
|
|
@@ -3951,7 +3962,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3951
3962
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3952
3963
|
};
|
|
3953
3964
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
3954
|
-
exports.upsertAllVariables = exports.clearBackups = exports.getVariableValueByRawName = exports.
|
|
3965
|
+
exports.upsertAllVariables = exports.clearBackups = exports.getVariableValueByRawName = exports.doGitlabRequest = exports.getGitlabToken = exports.setupGitlabToken = void 0;
|
|
3955
3966
|
const lodash_1 = __nccwpck_require__(23255);
|
|
3956
3967
|
const open_1 = __importDefault(__nccwpck_require__(14247));
|
|
3957
3968
|
const pipeline_1 = __nccwpck_require__(10603);
|
|
@@ -4009,23 +4020,17 @@ const getGitlabToken = async (vorpal, host) => {
|
|
|
4009
4020
|
exports.getGitlabToken = getGitlabToken;
|
|
4010
4021
|
const doGitlabRequest = async (vorpal, { path: resourcePath, ...args }) => (0, gitlab_without_vorpal_1.fetchGitLabApi)({ resourcePath, ...args }, vorpal);
|
|
4011
4022
|
exports.doGitlabRequest = doGitlabRequest;
|
|
4012
|
-
const
|
|
4013
|
-
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
4014
|
-
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
4015
|
-
return (0, gitlab_without_vorpal_1.gitLabProjectByGitPath)({ host, path, token }, vorpal);
|
|
4016
|
-
};
|
|
4017
|
-
exports.getProjectInfo = getProjectInfo;
|
|
4018
|
-
const getVariableValueByRawName = async (vorpal, rawName, existing = {}) => {
|
|
4023
|
+
const getVariableValueByRawName = async (vorpal, rawName, { projectId, ...existing } = {}) => {
|
|
4019
4024
|
var _a;
|
|
4020
4025
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
4021
4026
|
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
4022
|
-
const
|
|
4027
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
4023
4028
|
const allVariables = await gitlab_without_vorpal_1.gitLabVariable.getAll({
|
|
4024
4029
|
logger: vorpal,
|
|
4025
4030
|
host,
|
|
4026
4031
|
path,
|
|
4027
4032
|
token,
|
|
4028
|
-
projectId,
|
|
4033
|
+
projectId: id,
|
|
4029
4034
|
});
|
|
4030
4035
|
return (_a = allVariables.find((v) => v.key === rawName)) === null || _a === void 0 ? void 0 : _a.value;
|
|
4031
4036
|
};
|
|
@@ -4033,19 +4038,20 @@ exports.getVariableValueByRawName = getVariableValueByRawName;
|
|
|
4033
4038
|
const getAllCatladderEnvVarsInGitlab = async (vorpal, { projectId, ...existing } = {}) => {
|
|
4034
4039
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
4035
4040
|
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
4041
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
4036
4042
|
return gitlab_without_vorpal_1.gitLabVariable.getAllCatladder({
|
|
4037
4043
|
logger: vorpal,
|
|
4038
4044
|
host,
|
|
4039
4045
|
path,
|
|
4040
4046
|
token,
|
|
4041
|
-
projectId,
|
|
4047
|
+
projectId: id,
|
|
4042
4048
|
});
|
|
4043
4049
|
};
|
|
4044
4050
|
const getBackupKey = (fullKey, timestamp) => `${fullKey}_backup_${timestamp}`;
|
|
4045
4051
|
const clearBackups = async (vorpal, keep, existing = {}) => {
|
|
4046
4052
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
4047
4053
|
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
4048
|
-
const
|
|
4054
|
+
const id = await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal);
|
|
4049
4055
|
const existingVariables = await getAllCatladderEnvVarsInGitlab(vorpal, {
|
|
4050
4056
|
projectId: id,
|
|
4051
4057
|
host,
|
|
@@ -4063,11 +4069,11 @@ const clearBackups = async (vorpal, keep, existing = {}) => {
|
|
|
4063
4069
|
};
|
|
4064
4070
|
exports.clearBackups = clearBackups;
|
|
4065
4071
|
const upsertAllVariables = async (vorpal, variables, env, componentName, backup = true, masked = true, // FIXME: would be better to have this per variable
|
|
4066
|
-
existing = {}) => {
|
|
4072
|
+
{ projectId, ...existing } = {}) => {
|
|
4067
4073
|
var _a;
|
|
4068
4074
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
4069
4075
|
const token = inputToken || (await (0, exports.getGitlabToken)(vorpal, host));
|
|
4070
|
-
const
|
|
4076
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
4071
4077
|
// we list all existing variables. We also gather backup versions, but its currently unused
|
|
4072
4078
|
const existingVariables = await getAllCatladderEnvVarsInGitlab(vorpal, {
|
|
4073
4079
|
projectId: id,
|
|
@@ -4287,15 +4293,18 @@ exports.mergeWithFallback = void 0;
|
|
|
4287
4293
|
const gitlabPersonalAccessToken = "gitlab-personal-access-token";
|
|
4288
4294
|
const googleAuthUserNumber = "googleAuthUserNumber";
|
|
4289
4295
|
const gitlabTokens = "gitlabTokens";
|
|
4296
|
+
const gitLabProjectIds = "gitLabProjectIds";
|
|
4290
4297
|
const preferenceKeys = [
|
|
4291
4298
|
gitlabPersonalAccessToken,
|
|
4292
4299
|
googleAuthUserNumber,
|
|
4293
4300
|
gitlabTokens,
|
|
4301
|
+
gitLabProjectIds,
|
|
4294
4302
|
];
|
|
4295
4303
|
const perfFallback = {
|
|
4296
4304
|
[gitlabPersonalAccessToken]: undefined,
|
|
4297
4305
|
[googleAuthUserNumber]: undefined,
|
|
4298
4306
|
[gitlabTokens]: {},
|
|
4307
|
+
[gitLabProjectIds]: {},
|
|
4299
4308
|
};
|
|
4300
4309
|
/**
|
|
4301
4310
|
* Merges a partial configuration object with a fallback configuration object.
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type Vorpal from "vorpal";
|
|
2
2
|
import type { GitLabApiDataOptional } from "../../../../utils/gitlab-without-vorpal";
|
|
3
|
-
declare const commandGitlabCi: (vorpal: Vorpal, existing?: GitLabApiDataOptional
|
|
3
|
+
declare const commandGitlabCi: (vorpal: Vorpal, { projectId, ...existing }?: GitLabApiDataOptional & {
|
|
4
|
+
projectId?: number | string;
|
|
5
|
+
}) => Promise<void>;
|
|
4
6
|
export default commandGitlabCi;
|
|
@@ -54,12 +54,12 @@ const promptJob = async (vorpal, projectId, ctx, existing = {}) => {
|
|
|
54
54
|
const jobId = Number((0, lodash_1.last)(jobName.split("-")));
|
|
55
55
|
return jobs.find((j) => j.id === jobId);
|
|
56
56
|
};
|
|
57
|
-
const commandGitlabCi = async (vorpal, existing = {}) => {
|
|
57
|
+
const commandGitlabCi = async (vorpal, { projectId, ...existing } = {}) => {
|
|
58
58
|
vorpal.command("project-ci-job-open", "Open a Job").action(async function () {
|
|
59
59
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
60
60
|
const token = inputToken || (await (0, gitlab_1.getGitlabToken)(this, host));
|
|
61
|
-
const
|
|
62
|
-
const job = await promptJob(this,
|
|
61
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
62
|
+
const job = await promptJob(this, id, this, { host, path, token });
|
|
63
63
|
(0, open_1.default)(job.web_url);
|
|
64
64
|
});
|
|
65
65
|
vorpal
|
|
@@ -68,13 +68,13 @@ const commandGitlabCi = async (vorpal, existing = {}) => {
|
|
|
68
68
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
69
69
|
const token = inputToken || (await (0, gitlab_1.getGitlabToken)(this, host));
|
|
70
70
|
const apiData = { host, path, token };
|
|
71
|
-
const
|
|
72
|
-
const { id } = await promptJob(this,
|
|
71
|
+
const pId = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
72
|
+
const { id } = await promptJob(this, pId, this, apiData);
|
|
73
73
|
let finished = false;
|
|
74
74
|
while (!finished) {
|
|
75
|
-
const trace = await (0, child_process_promise_1.exec)(`curl -s --header "PRIVATE-TOKEN: ${token}" "https://git.panter.ch/api/v4/projects/${
|
|
75
|
+
const trace = await (0, child_process_promise_1.exec)(`curl -s --header "PRIVATE-TOKEN: ${token}" "https://git.panter.ch/api/v4/projects/${pId}/jobs/${id}/trace"`);
|
|
76
76
|
const job = await (0, gitlab_1.doGitlabRequest)(this, {
|
|
77
|
-
path: `projects/${
|
|
77
|
+
path: `projects/${pId}/jobs/${id}`,
|
|
78
78
|
host,
|
|
79
79
|
token,
|
|
80
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandGitlabCi.js","sourceRoot":"","sources":["../../../../../../../src/apps/cli/commands/project/commandGitlabCi.ts"],"names":[],"mappings":";;;;;AAAA,iEAA6C;AAC7C,mCAA8B;AAC9B,gDAAwB;AAIxB,
|
|
1
|
+
{"version":3,"file":"commandGitlabCi.js","sourceRoot":"","sources":["../../../../../../../src/apps/cli/commands/project/commandGitlabCi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { CommandInstance } from "vorpal";
|
|
2
2
|
import { type GitLabApiDataOptional } from "../../../../../utils/gitlab-without-vorpal";
|
|
3
|
-
export declare const setupAccessTokens: (vorpal: CommandInstance, existing?: GitLabApiDataOptional
|
|
3
|
+
export declare const setupAccessTokens: (vorpal: CommandInstance, { projectId, ...existing }?: GitLabApiDataOptional & {
|
|
4
|
+
projectId?: number | string;
|
|
5
|
+
}) => Promise<void>;
|
|
@@ -5,23 +5,23 @@ const date_fns_1 = require("date-fns");
|
|
|
5
5
|
const gitlab_without_vorpal_1 = require("../../../../../utils/gitlab-without-vorpal");
|
|
6
6
|
const gitlab_1 = require("../../../../../utils/gitlab");
|
|
7
7
|
const TOKEN_NAME = "semantic-release";
|
|
8
|
-
const setupAccessTokens = async (vorpal, existing = {}) => {
|
|
8
|
+
const setupAccessTokens = async (vorpal, { projectId, ...existing } = {}) => {
|
|
9
9
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
10
10
|
const token = inputToken || (await (0, gitlab_1.getGitlabToken)(vorpal, host));
|
|
11
|
-
const
|
|
12
|
-
const projectTokens = await gitlab_without_vorpal_1.gitLabProjectAccessToken.getList({ projectId, token, host }, vorpal);
|
|
11
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
12
|
+
const projectTokens = await gitlab_without_vorpal_1.gitLabProjectAccessToken.getList({ projectId: id, token, host }, vorpal);
|
|
13
13
|
const accessToken = projectTokens.find((t) => t.name === TOKEN_NAME && t.active === true);
|
|
14
14
|
const expires_at = (0, date_fns_1.add)(new Date(), { years: 1, days: -1 });
|
|
15
15
|
const newToken = accessToken
|
|
16
16
|
? await gitlab_without_vorpal_1.gitLabProjectAccessToken.rotate({
|
|
17
|
-
projectId,
|
|
17
|
+
projectId: id,
|
|
18
18
|
tokenId: accessToken.id,
|
|
19
19
|
token,
|
|
20
20
|
host,
|
|
21
21
|
data: { expires_at },
|
|
22
22
|
}, vorpal)
|
|
23
23
|
: await gitlab_without_vorpal_1.gitLabProjectAccessToken.create({
|
|
24
|
-
projectId,
|
|
24
|
+
projectId: id,
|
|
25
25
|
token,
|
|
26
26
|
host,
|
|
27
27
|
data: {
|
|
@@ -31,7 +31,7 @@ const setupAccessTokens = async (vorpal, existing = {}) => {
|
|
|
31
31
|
access_level: 40, // Maintainer
|
|
32
32
|
},
|
|
33
33
|
}, vorpal);
|
|
34
|
-
const fetchCommon = { key: "GL_TOKEN", projectId, host, token };
|
|
34
|
+
const fetchCommon = { key: "GL_TOKEN", projectId: id, host, token };
|
|
35
35
|
try {
|
|
36
36
|
await gitlab_without_vorpal_1.gitLabVariable.get(fetchCommon, vorpal);
|
|
37
37
|
await gitlab_without_vorpal_1.gitLabVariable.update({ ...fetchCommon, value: newToken.token }, vorpal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupAccessTokens.js","sourceRoot":"","sources":["../../../../../../../../src/apps/cli/commands/project/setup/setupAccessTokens.ts"],"names":[],"mappings":";;;AACA,uCAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"setupAccessTokens.js","sourceRoot":"","sources":["../../../../../../../../src/apps/cli/commands/project/setup/setupAccessTokens.ts"],"names":[],"mappings":";;;AACA,uCAA+B;AAC/B,sFAOoD;AACpD,wDAA6D;AAE7D,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAE/B,MAAM,iBAAiB,GAAG,KAAK,EACpC,MAAuB,EACvB,EACE,SAAS,EACT,GAAG,QAAQ,KACgD,EAAE,EAC/D,EAAE;IACF,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EAAE,UAAU,GAClB,GAAG,MAAM,IAAA,8CAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,UAAU,IAAI,CAAC,MAAM,IAAA,uBAAc,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,EAAE,GACN,SAAS,IAAI,CAAC,MAAM,IAAA,0CAAkB,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzE,MAAM,aAAa,GAAG,MAAM,gDAAwB,CAAC,OAAO,CAC1D,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAC9B,MAAM,CACP,CAAC;IACF,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAClD,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,cAAG,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,MAAM,gDAAwB,CAAC,MAAM,CACnC;YACE,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,WAAW,CAAC,EAAE;YACvB,KAAK;YACL,IAAI;YACJ,IAAI,EAAE,EAAE,UAAU,EAAE;SACrB,EACD,MAAM,CACP;QACH,CAAC,CAAC,MAAM,gDAAwB,CAAC,MAAM,CACnC;YACE,SAAS,EAAE,EAAE;YACb,KAAK;YACL,IAAI;YACJ,IAAI,EAAE;gBACJ,UAAU;gBACV,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC;gBAClC,YAAY,EAAE,EAAE,EAAE,aAAa;aAChC;SACF,EACD,MAAM,CACP,CAAC;IAEN,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,sCAAc,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,sCAAc,CAAC,MAAM,CACzB,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EACzC,MAAM,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,CAAC,YAAY,wCAAgB,CAAC;YAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,CAAC,CAAC;QAC9B,YAAY;QACZ,MAAM,sCAAc,CAAC,MAAM,CACzB,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EACvD,MAAM,CACP,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,CACR,kEAAkE,CACnE,CAAC;AACJ,CAAC,CAAC;AAxEW,QAAA,iBAAiB,qBAwE5B"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { CommandInstance } from "vorpal";
|
|
2
2
|
import { type ComponentContext } from "../../../../../../../pipeline/src/index.js";
|
|
3
3
|
import type { GitLabApiDataOptional } from "../../../../../utils/gitlab-without-vorpal";
|
|
4
|
-
export declare const setupKubernetes: (vorpal: CommandInstance, context: ComponentContext, existing?: GitLabApiDataOptional
|
|
4
|
+
export declare const setupKubernetes: (vorpal: CommandInstance, context: ComponentContext, { projectId, ...existing }?: GitLabApiDataOptional & {
|
|
5
|
+
projectId?: number | string;
|
|
6
|
+
}) => Promise<void>;
|
|
@@ -10,7 +10,7 @@ const ensureNamespace_1 = __importDefault(require("../utils/ensureNamespace"));
|
|
|
10
10
|
const gitlab_without_vorpal_1 = require("../../../../../utils/gitlab-without-vorpal");
|
|
11
11
|
const gitlab_1 = require("../../../../../utils/gitlab");
|
|
12
12
|
const cluster_1 = require("../../../../../utils/cluster");
|
|
13
|
-
const setupKubernetes = async (vorpal, context, existing = {}) => {
|
|
13
|
+
const setupKubernetes = async (vorpal, context, { projectId, ...existing } = {}) => {
|
|
14
14
|
var _a;
|
|
15
15
|
const deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
|
|
16
16
|
if (!(0, pipeline_1.isOfDeployType)(deployConfig, "kubernetes")) {
|
|
@@ -18,19 +18,19 @@ const setupKubernetes = async (vorpal, context, existing = {}) => {
|
|
|
18
18
|
}
|
|
19
19
|
const { host, path, token: inputToken, } = await (0, gitlab_without_vorpal_1.getGitLabHostPathToken)(existing, vorpal);
|
|
20
20
|
const token = inputToken || (await (0, gitlab_1.getGitlabToken)(vorpal, host));
|
|
21
|
-
const
|
|
22
|
-
const
|
|
21
|
+
const id = projectId || (await (0, gitlab_without_vorpal_1.getGitLabProjectId)({ host, path, token }, vorpal));
|
|
22
|
+
const requestInfo = { host, path, token, projectId: id };
|
|
23
23
|
const deploy_tokens = await (0, gitlab_1.doGitlabRequest)(vorpal, {
|
|
24
|
-
path: `projects/${
|
|
24
|
+
path: `projects/${id}/deploy_tokens`,
|
|
25
25
|
host,
|
|
26
26
|
token,
|
|
27
27
|
});
|
|
28
28
|
if (!deploy_tokens.find((v) => v.name === "gitlab-deploy-token")) {
|
|
29
29
|
vorpal.log("I will setup the 'GitLab Deploy Token', so Kubernetes can pull images from this project.");
|
|
30
30
|
await (0, gitlab_1.doGitlabRequest)(vorpal, {
|
|
31
|
-
path: `projects/${
|
|
31
|
+
path: `projects/${id}/deploy_tokens`,
|
|
32
32
|
data: {
|
|
33
|
-
id
|
|
33
|
+
id,
|
|
34
34
|
name: "gitlab-deploy-token",
|
|
35
35
|
scopes: ["read_registry"],
|
|
36
36
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupKubernetes.js","sourceRoot":"","sources":["../../../../../../../../src/apps/cli/commands/project/setup/setupKubernetes.ts"],"names":[],"mappings":";;;;;;AAAA,iEAA6C;AAG7C,kDAI6B;AAC7B,+EAAuD;AAEvD,
|
|
1
|
+
{"version":3,"file":"setupKubernetes.js","sourceRoot":"","sources":["../../../../../../../../src/apps/cli/commands/project/setup/setupKubernetes.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,3 +20,4 @@ export type GitLabProject = {
|
|
|
20
20
|
topics: string[];
|
|
21
21
|
};
|
|
22
22
|
export declare const gitLabProjectByGitPath: (existing?: GitLabApiDataOptional, logger?: LoggerCmdInstance) => Promise<GitLabProject>;
|
|
23
|
+
export declare const getGitLabProjectId: (existing?: GitLabApiDataOptional, logger?: LoggerCmdInstance) => Promise<number>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.gitLabProjectByGitPath = void 0;
|
|
3
|
+
exports.getGitLabProjectId = exports.gitLabProjectByGitPath = void 0;
|
|
4
|
+
const preferences_1 = require("../preferences");
|
|
4
5
|
const fetchGitLabApi_1 = require("./fetchGitLabApi");
|
|
5
6
|
const getGitlabHostPathToken_1 = require("./getGitlabHostPathToken");
|
|
6
7
|
const gitLabProjectByGitPath = async (existing = {}, logger = console) => {
|
|
@@ -12,4 +13,18 @@ const gitLabProjectByGitPath = async (existing = {}, logger = console) => {
|
|
|
12
13
|
}, logger);
|
|
13
14
|
};
|
|
14
15
|
exports.gitLabProjectByGitPath = gitLabProjectByGitPath;
|
|
16
|
+
const getGitLabProjectId = async (existing = {}, logger = console) => {
|
|
17
|
+
const [preferences, { host, path, token }] = await Promise.all([
|
|
18
|
+
(0, preferences_1.getPreferences)(logger),
|
|
19
|
+
(0, getGitlabHostPathToken_1.getGitLabHostPathToken)(existing, logger),
|
|
20
|
+
]);
|
|
21
|
+
const hostPathKey = `${host}/${path}`;
|
|
22
|
+
if (preferences.gitLabProjectIds[hostPathKey]) {
|
|
23
|
+
return preferences.gitLabProjectIds[hostPathKey];
|
|
24
|
+
}
|
|
25
|
+
const project = await (0, exports.gitLabProjectByGitPath)({ token, host, path }, logger);
|
|
26
|
+
await (0, preferences_1.upsertPreferences)({ gitLabProjectIds: { [hostPathKey]: project.id } });
|
|
27
|
+
return project.id;
|
|
28
|
+
};
|
|
29
|
+
exports.getGitLabProjectId = getGitLabProjectId;
|
|
15
30
|
//# sourceMappingURL=gitLabProjectByGitPath.js.map
|