@catladder/cli 0.0.0-next-78d43d4a → 0.0.0-next-dbb75f51
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/CONTRIBUTING.md +1 -1
- package/README.md +2 -2
- package/dist/apps/cli/src/catci.js +2 -2
- package/dist/apps/cli/src/catci.js.map +1 -1
- package/dist/apps/cli/src/commands/project/commandGitlabCi.js +2 -1
- package/dist/apps/cli/src/commands/project/commandGitlabCi.js.map +1 -1
- package/dist/apps/cli/src/commands/security/commandSecurityAuditCiJob.js +2 -2
- package/dist/apps/cli/src/commands/security/commandSecurityAuditCiJob.js.map +1 -1
- package/dist/apps/cli/src/commands/security/commandSecurityAuditCreate.js +2 -2
- package/dist/apps/cli/src/commands/security/commandSecurityAuditCreate.js.map +1 -1
- package/dist/apps/cli/src/publish/npmPublishJob.js +22 -5
- package/dist/apps/cli/src/publish/npmPublishJob.js.map +1 -1
- package/dist/apps/cli/src/security/topics.json +15 -15
- package/dist/apps/cli/src/utils/gitlabHost.d.ts +14 -0
- package/dist/apps/cli/src/utils/gitlabHost.js +27 -0
- package/dist/apps/cli/src/utils/gitlabHost.js.map +1 -0
- package/dist/bundles/catci/index.js +10 -4
- package/dist/bundles/catenv/index.js +137 -36
- package/dist/bundles/cli/index.js +178 -42
- package/dist/bundles/runner-images/kubernetes/helm-charts/the-panter-chart/README.md +2 -2
- package/dist/bundles/runner-images/kubernetes/helm-charts/the-panter-chart/templates/_helpers.tpl +0 -10
- package/dist/bundles/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.ingress.yaml +0 -5
- package/dist/bundles/runner-images/kubernetes/helm-charts/the-panter-chart/values.yaml +0 -1
- package/dist/bundles/runner-images/npm-publish/Dockerfile +12 -0
- package/dist/bundles/runner-images/semantic-release/scripts/semanticRelease +4 -3
- package/dist/bundles/skills/catladder-config/SKILL.md +1 -1
- package/dist/bundles/skills/catladder-deploys/references/deploy-types.md +3 -2
- package/dist/packages/pipeline/src/backends/github/createGithubJobs.js +70 -24
- package/dist/packages/pipeline/src/backends/github/createGithubJobs.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js +11 -1
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabJobs.js +5 -1
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabJobs.js.map +1 -1
- package/dist/packages/pipeline/src/backends/index.d.ts +6 -0
- package/dist/packages/pipeline/src/backends/index.js +9 -2
- package/dist/packages/pipeline/src/backends/index.js.map +1 -1
- package/dist/packages/pipeline/src/context/getEnvironmentVariables.d.ts +1 -1
- package/dist/packages/pipeline/src/customImages/shippedImages.js +1 -0
- package/dist/packages/pipeline/src/customImages/shippedImages.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/base/deploy.js +1 -0
- package/dist/packages/pipeline/src/deploy/base/deploy.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/npmPackage/deployJob.js +6 -1
- package/dist/packages/pipeline/src/deploy/npmPackage/deployJob.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/pages/deployJob.js +16 -5
- package/dist/packages/pipeline/src/deploy/pages/deployJob.js.map +1 -1
- package/dist/packages/pipeline/src/pipeline/generatePipelineFiles.js +10 -0
- package/dist/packages/pipeline/src/pipeline/generatePipelineFiles.js.map +1 -1
- package/dist/packages/pipeline/src/runner/index.d.ts +1 -1
- package/dist/packages/pipeline/src/runner/index.js.map +1 -1
- package/dist/packages/pipeline/src/types/config.d.ts +4 -4
- package/dist/packages/pipeline/src/types/hooks.d.ts +1 -1
- package/dist/packages/pipeline/src/types/jobDefinition.d.ts +1 -1
- package/dist/packages/pipeline/src/types/jobs.d.ts +9 -0
- package/dist/packages/pipeline/src/types/jobs.js.map +1 -1
- package/dist/packages/pipeline/src/utils/writeFiles.d.ts +6 -0
- package/dist/packages/pipeline/src/utils/writeFiles.js +8 -2
- package/dist/packages/pipeline/src/utils/writeFiles.js.map +1 -1
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/README.md +2 -2
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/_helpers.tpl +0 -10
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.ingress.yaml +0 -5
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/values.yaml +0 -1
- package/dist/runner-images/npm-publish/Dockerfile +12 -0
- package/dist/runner-images/semantic-release/scripts/semanticRelease +4 -3
- package/dist/skills/catladder-config/SKILL.md +1 -1
- package/dist/skills/catladder-deploys/references/deploy-types.md +3 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/includes/envrc +1 -1
- package/package.json +5 -5
- package/src/catci.ts +2 -3
- package/src/commands/project/commandGitlabCi.ts +2 -1
- package/src/commands/security/commandSecurityAuditCiJob.ts +2 -3
- package/src/commands/security/commandSecurityAuditCreate.ts +2 -3
- package/src/publish/npmPublishJob.ts +32 -6
- package/src/security/topics.json +15 -15
- package/src/utils/gitlabHost.ts +23 -0
package/CONTRIBUTING.md
CHANGED
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
[See the documentation][docs-getting-started].
|
|
8
8
|
|
|
9
|
-
[docs-getting-started]: https://
|
|
9
|
+
[docs-getting-started]: https://panter.github.io/catladder/docs/getting_started "Getting started"
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
@@ -33,4 +33,4 @@ catladder -y project delete dev:web
|
|
|
33
33
|
|
|
34
34
|
[See contribution guide][docs-contribute].
|
|
35
35
|
|
|
36
|
-
[docs-contribute]: https://
|
|
36
|
+
[docs-contribute]: https://panter.github.io/catladder/docs/contribute "Contribution guide"
|
|
@@ -19,7 +19,7 @@ const changesetsReleaseJob_1 = require("./release/changesetsReleaseJob");
|
|
|
19
19
|
const changesetCheckJob_1 = require("./release/changesetCheckJob");
|
|
20
20
|
const githubQueuedRelease_1 = require("./release/githubQueuedRelease");
|
|
21
21
|
const npmPublishJob_1 = require("./publish/npmPublishJob");
|
|
22
|
-
const
|
|
22
|
+
const gitlabHost_1 = require("./utils/gitlabHost");
|
|
23
23
|
const USAGE = `catci — catladder CI companion
|
|
24
24
|
|
|
25
25
|
usage:
|
|
@@ -102,7 +102,7 @@ const securityAuditCiJob = async (path, token, mainBranch, projectId, userId) =>
|
|
|
102
102
|
}
|
|
103
103
|
console.log("could not evaluate security audit document");
|
|
104
104
|
console.log("creating new merge request with security audit template...");
|
|
105
|
-
const api = new rest_1.Gitlab({ host:
|
|
105
|
+
const api = new rest_1.Gitlab({ host: await (0, gitlabHost_1.getGitlabHostUrl)(), token });
|
|
106
106
|
const mr = await (0, createSecurityAuditMergeRequest_1.createSecurityAuditMergeRequest)({
|
|
107
107
|
api,
|
|
108
108
|
mainBranch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catci.js","sourceRoot":"","sources":["../../../../src/catci.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;GAWG;AACH,0CAAyC;AACzC,4EAG0C;AAC1C,gGAGoD;AACpD,yEAGwC;AACxC,mEAAgE;AAChE,uEAGuC;AACvC,2DAA6E;
|
|
1
|
+
{"version":3,"file":"catci.js","sourceRoot":"","sources":["../../../../src/catci.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ const child_process_promise_1 = require("child-process-promise");
|
|
|
8
8
|
const lodash_es_1 = require("lodash-es");
|
|
9
9
|
const open_1 = __importDefault(require("open"));
|
|
10
10
|
const defineCommand_1 = require("../../core/defineCommand");
|
|
11
|
+
const gitlabHost_1 = require("../../utils/gitlabHost");
|
|
11
12
|
const gitlab_1 = require("../../utils/gitlab");
|
|
12
13
|
const statusEmojiMap = {
|
|
13
14
|
failed: "🙀",
|
|
@@ -82,7 +83,7 @@ exports.commandCiJobLog = (0, defineCommand_1.defineCommand)({
|
|
|
82
83
|
const id = selectedJob.id;
|
|
83
84
|
let finished = false;
|
|
84
85
|
while (!finished) {
|
|
85
|
-
const trace = await (0, child_process_promise_1.exec)(`curl -s --header "PRIVATE-TOKEN: ${await (0, gitlab_1.getGitlabToken)(ctx)}" "
|
|
86
|
+
const trace = await (0, child_process_promise_1.exec)(`curl -s --header "PRIVATE-TOKEN: ${await (0, gitlab_1.getGitlabToken)(ctx)}" "${await (0, gitlabHost_1.getGitlabHostUrl)()}/api/v4/projects/${projectId}/jobs/${id}/trace"`);
|
|
86
87
|
const job = await (0, gitlab_1.doGitlabRequest)(ctx, `projects/${projectId}/jobs/${id}`);
|
|
87
88
|
if (trace.stdout) {
|
|
88
89
|
ctx.log(trace.stdout);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandGitlabCi.js","sourceRoot":"","sources":["../../../../../../src/commands/project/commandGitlabCi.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"commandGitlabCi.js","sourceRoot":"","sources":["../../../../../../src/commands/project/commandGitlabCi.ts"],"names":[],"mappings":";;;;;;AAAA,iEAA6C;AAC7C,yCAAiC;AACjC,gDAAwB;AACxB,4DAAyD;AACzD,uDAA0D;AAC1D,+CAI4B;AAE5B,MAAM,cAAc,GAAQ;IAC1B,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,MAAW,EAAE,EAAE,CAChC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAE1E,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IAClC,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAI,EAAC,oBAAoB,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,KAAK,EAAE,EAAO,EAAE,EAAE,CAC9B,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpD,MAAM,aAAa,GAAG,KAAK,EAAE,EAAO,EAAE,EAAE;IACtC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,uBAAc,EAAC,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAe,EAAC,EAAE,EAAE,YAAY,SAAS,OAAO,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE1C,MAAM,UAAU,GAAG,CAAC,EAAS,EAAE,EAAE,CAC/B,EAAE,CAAC,GAAG,CACJ,CAAC,CAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE,CACxE,CAAC;IAEJ,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC;QAC7B,CAAC,CAAC;YACE,GAAG,UAAU,CAAC,aAAa,CAAC;YAC5B,0DAA0D;YAC1D,GAAG,UAAU,CAAC,QAAQ,CAAC;SACxB;QACH,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EAAE,EAAO,EAAE,OAAe,EAAE,EAAE;IACrD,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,uBAAc,EAAC,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAe,EAAC,EAAE,EAAE,YAAY,SAAS,OAAO,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;AACnE,CAAC,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,6BAAa,EAAC;IAC5C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,YAAY;IACzB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;SAC3C;KACF;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,IAAA,cAAI,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,IAAA,6BAAa,EAAC;IAC3C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,kBAAkB;IAC/B,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;SAC3C;KACF;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxE,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;QAE1B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAI,EACtB,oCAAoC,MAAM,IAAA,uBAAc,EACtD,GAAG,CACJ,MAAM,MAAM,IAAA,6BAAgB,GAAE,oBAAoB,SAAS,SAAS,EAAE,SAAS,CACjF,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,IAAA,wBAAe,EAC/B,GAAG,EACH,YAAY,SAAS,SAAS,EAAE,EAAE,CACnC,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YAC1D,CAAC;YAED,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;YAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -5,7 +5,7 @@ const defineCommand_1 = require("../../core/defineCommand");
|
|
|
5
5
|
const rest_1 = require("@gitbeaker/rest");
|
|
6
6
|
const evaluateSecurityAudit_1 = require("../../security/evaluateSecurityAudit");
|
|
7
7
|
const createSecurityAuditMergeRequest_1 = require("../../security/createSecurityAuditMergeRequest");
|
|
8
|
-
const
|
|
8
|
+
const gitlabHost_1 = require("../../utils/gitlabHost");
|
|
9
9
|
exports.commandSecurityAuditCiJob = (0, defineCommand_1.defineCommand)({
|
|
10
10
|
name: "security audit ci-job",
|
|
11
11
|
description: "Evaluates security audit document. Creates MR with template if missing.",
|
|
@@ -43,7 +43,7 @@ exports.commandSecurityAuditCiJob = (0, defineCommand_1.defineCommand)({
|
|
|
43
43
|
const mainBranch = await ctx.get("mainBranch");
|
|
44
44
|
const projectId = await ctx.get("projectId");
|
|
45
45
|
const userId = await ctx.get("userId");
|
|
46
|
-
const api = new rest_1.Gitlab({ host:
|
|
46
|
+
const api = new rest_1.Gitlab({ host: await (0, gitlabHost_1.getGitlabHostUrl)(), token });
|
|
47
47
|
const mr = await (0, createSecurityAuditMergeRequest_1.createSecurityAuditMergeRequest)({
|
|
48
48
|
api,
|
|
49
49
|
mainBranch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandSecurityAuditCiJob.js","sourceRoot":"","sources":["../../../../../../src/commands/security/commandSecurityAuditCiJob.ts"],"names":[],"mappings":";;;AAAA,4DAAyD;AACzD,0CAAyC;AACzC,gFAG8C;AAC9C,oGAGwD;
|
|
1
|
+
{"version":3,"file":"commandSecurityAuditCiJob.js","sourceRoot":"","sources":["../../../../../../src/commands/security/commandSecurityAuditCiJob.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ exports.commandSecurityAuditCreate = void 0;
|
|
|
4
4
|
const defineCommand_1 = require("../../core/defineCommand");
|
|
5
5
|
const rest_1 = require("@gitbeaker/rest");
|
|
6
6
|
const createSecurityAuditMergeRequest_1 = require("../../security/createSecurityAuditMergeRequest");
|
|
7
|
-
const
|
|
7
|
+
const gitlabHost_1 = require("../../utils/gitlabHost");
|
|
8
8
|
exports.commandSecurityAuditCreate = (0, defineCommand_1.defineCommand)({
|
|
9
9
|
name: "security audit create",
|
|
10
10
|
description: "Creates a MR with the latest security audit template document",
|
|
@@ -36,7 +36,7 @@ exports.commandSecurityAuditCreate = (0, defineCommand_1.defineCommand)({
|
|
|
36
36
|
const mainBranch = await ctx.get("mainBranch");
|
|
37
37
|
const projectId = await ctx.get("projectId");
|
|
38
38
|
const userId = await ctx.get("userId");
|
|
39
|
-
const api = new rest_1.Gitlab({ host:
|
|
39
|
+
const api = new rest_1.Gitlab({ host: await (0, gitlabHost_1.getGitlabHostUrl)(), token });
|
|
40
40
|
const result = await (0, createSecurityAuditMergeRequest_1.createSecurityAuditMergeRequest)({
|
|
41
41
|
api,
|
|
42
42
|
mainBranch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandSecurityAuditCreate.js","sourceRoot":"","sources":["../../../../../../src/commands/security/commandSecurityAuditCreate.ts"],"names":[],"mappings":";;;AAAA,4DAAyD;AACzD,0CAAyC;AACzC,oGAAiG;
|
|
1
|
+
{"version":3,"file":"commandSecurityAuditCreate.js","sourceRoot":"","sources":["../../../../../../src/commands/security/commandSecurityAuditCreate.ts"],"names":[],"mappings":";;;AAAA,4DAAyD;AACzD,0CAAyC;AACzC,oGAAiG;AACjG,uDAA0D;AAE7C,QAAA,0BAA0B,GAAG,IAAA,6BAAa,EAAC;IACtD,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,+DAA+D;IAC5E,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE;QACN,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,0BAA0B;YACnC,UAAU,EAAE,IAAI;SACjB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,kBAAkB;YAC3B,UAAU,EAAE,IAAI;SACjB;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,IAAI;SACjB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,2BAA2B;YACpC,UAAU,EAAE,IAAI;SACjB;KACF;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEvC,MAAM,GAAG,GAAG,IAAI,aAAM,CAAC,EAAE,IAAI,EAAE,MAAM,IAAA,6BAAgB,GAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAA,iEAA+B,EAAC;YACnD,GAAG;YACH,UAAU;YACV,SAAS;YACT,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,kDAAkD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YAC7D,GAAG,CAAC,GAAG,CACL,0DAA0D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -55,11 +55,22 @@ const writeNpmrc = async (dir, registry) => {
|
|
|
55
55
|
await (0, promises_1.writeFile)(npmrcPath, `${registryHost}:_authToken=\${NPM_TOKEN}\n`);
|
|
56
56
|
return npmrcPath;
|
|
57
57
|
};
|
|
58
|
+
/**
|
|
59
|
+
* whether the CI job can mint an OIDC token for npm trusted publishing.
|
|
60
|
+
* github actions exposes these two only when the job declares
|
|
61
|
+
* `permissions: id-token: write` (catladder sets it via the job's
|
|
62
|
+
* `idToken` flag).
|
|
63
|
+
*/
|
|
64
|
+
const hasOidcCredentials = () => !!process.env.ACTIONS_ID_TOKEN_REQUEST_URL &&
|
|
65
|
+
!!process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;
|
|
58
66
|
const npmPublish = (dir, npmrcPath, args) => new Promise((resolvePromise, reject) => {
|
|
59
67
|
const child = (0, child_process_1.spawn)("npm", ["publish", ...args], {
|
|
60
68
|
cwd: dir,
|
|
61
69
|
stdio: "inherit",
|
|
62
|
-
env: {
|
|
70
|
+
env: {
|
|
71
|
+
...process.env,
|
|
72
|
+
...(npmrcPath ? { NPM_CONFIG_USERCONFIG: npmrcPath } : {}),
|
|
73
|
+
},
|
|
63
74
|
});
|
|
64
75
|
child.on("error", reject);
|
|
65
76
|
child.on("exit", (code) => code === 0
|
|
@@ -68,8 +79,9 @@ const npmPublish = (dir, npmrcPath, args) => new Promise((resolvePromise, reject
|
|
|
68
79
|
});
|
|
69
80
|
const npmPublishJob = async (options) => {
|
|
70
81
|
var _a, _b;
|
|
71
|
-
|
|
72
|
-
|
|
82
|
+
const oidc = hasOidcCredentials();
|
|
83
|
+
if (!oidc && !process.env.NPM_TOKEN) {
|
|
84
|
+
throw new Error("NPM_TOKEN is not set — configure it as a catladder secret for this component, or publish from a workflow registered as a trusted publisher on npm");
|
|
73
85
|
}
|
|
74
86
|
const registry = (_a = options.registry) !== null && _a !== void 0 ? _a : exports.DEFAULT_NPM_REGISTRY;
|
|
75
87
|
const plan = (0, npmPublishPlan_1.computeNpmPublishPlan)({
|
|
@@ -78,8 +90,13 @@ const npmPublishJob = async (options) => {
|
|
|
78
90
|
...readCiContext(options),
|
|
79
91
|
});
|
|
80
92
|
const name = await setPackageVersion(options.dir, plan.version);
|
|
81
|
-
|
|
82
|
-
|
|
93
|
+
// with OIDC available npm mints its own short-lived credentials, and
|
|
94
|
+
// an .npmrc referencing an unset ${NPM_TOKEN} would only get in the
|
|
95
|
+
// way. A token, when present, still wins as the fallback.
|
|
96
|
+
const npmrcPath = oidc && !process.env.NPM_TOKEN
|
|
97
|
+
? undefined
|
|
98
|
+
: await writeNpmrc(options.dir, registry);
|
|
99
|
+
console.log(`publishing ${name}@${plan.version} (dist-tag ${plan.distTag}) to ${registry}${npmrcPath ? "" : " via trusted publishing (OIDC)"}`);
|
|
83
100
|
await npmPublish(options.dir, npmrcPath, [
|
|
84
101
|
"--tag",
|
|
85
102
|
plan.distTag,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npmPublishJob.js","sourceRoot":"","sources":["../../../../../src/publish/npmPublishJob.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,iDAAsC;AACtC,0CAAkD;AAClD,+BAAqC;AAErC,qDAAqE;AAExD,QAAA,oBAAoB,GAAG,6BAA6B,CAAC;AAUlE;;;GAGG;AACH,MAAM,aAAa,GAAG,CACpB,OAA6B,EAC2B,EAAE;;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;YAChC,OAAO,EAAE,MAAA,GAAG,CAAC,kBAAkB,mCAAI,EAAE;YACrC,QAAQ,EAAE,MAAA,GAAG,CAAC,mBAAmB,mCAAI,EAAE;SACxC,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EACH,GAAG,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,eAAe,mCAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACtE,8DAA8D;YAC9D,OAAO,EAAE,IAAA,2BAAU,EAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;YACrE,QAAQ,EAAE,CAAC,MAAA,GAAG,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SAC7C,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,CAAC,GAAG,mEAAmE,CACnG,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,OAAe,EAAE,EAAE;IAC/D,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,MAAM,IAAA,oBAAS,EAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC,IAAc,CAAC;AAC5B,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAAE,QAAgB,EAAE,EAAE;IACzD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAA,oBAAS,EACb,SAAS,EAET,GAAG,YAAY,6BAA6B,CAC7C,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"npmPublishJob.js","sourceRoot":"","sources":["../../../../../src/publish/npmPublishJob.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,iDAAsC;AACtC,0CAAkD;AAClD,+BAAqC;AAErC,qDAAqE;AAExD,QAAA,oBAAoB,GAAG,6BAA6B,CAAC;AAUlE;;;GAGG;AACH,MAAM,aAAa,GAAG,CACpB,OAA6B,EAC2B,EAAE;;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;YAChC,OAAO,EAAE,MAAA,GAAG,CAAC,kBAAkB,mCAAI,EAAE;YACrC,QAAQ,EAAE,MAAA,GAAG,CAAC,mBAAmB,mCAAI,EAAE;SACxC,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EACH,GAAG,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,eAAe,mCAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACtE,8DAA8D;YAC9D,OAAO,EAAE,IAAA,2BAAU,EAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;YACrE,QAAQ,EAAE,CAAC,MAAA,GAAG,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SAC7C,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,CAAC,GAAG,mEAAmE,CACnG,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,OAAe,EAAE,EAAE;IAC/D,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,MAAM,IAAA,oBAAS,EAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC,IAAc,CAAC;AAC5B,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAAE,QAAgB,EAAE,EAAE;IACzD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAA,oBAAS,EACb,SAAS,EAET,GAAG,YAAY,6BAA6B,CAC7C,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAC9B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B;IAC1C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;AAE/C,MAAM,UAAU,GAAG,CACjB,GAAW,EACX,SAA6B,EAC7B,IAAc,EACd,EAAE,CACF,IAAI,OAAO,CAAO,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;IAC3C,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE;QAC/C,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D;KACF,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,IAAI,KAAK,CAAC;QACR,CAAC,CAAC,cAAc,EAAE;QAClB,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,CACzD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEE,MAAM,aAAa,GAAG,KAAK,EAAE,OAA6B,EAAE,EAAE;;IACnE,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;IAClC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,mJAAmJ,CACpJ,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,4BAAoB,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAA,sCAAqB,EAAC;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,eAAe,EAAE,OAAO,CAAC,OAAO;QAChC,GAAG,aAAa,CAAC,OAAO,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAChE,qEAAqE;IACrE,oEAAoE;IACpE,0DAA0D;IAC1D,MAAM,SAAS,GACb,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS;QAC5B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CACT,cAAc,IAAI,IAAI,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,OAAO,QAAQ,QAAQ,GAC1E,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gCACnB,EAAE,CACH,CAAC;IACF,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE;QACvC,OAAO;QACP,IAAI,CAAC,OAAO;QACZ,UAAU;QACV,MAAA,OAAO,CAAC,MAAM,mCAAI,QAAQ;QAC1B,YAAY;QACZ,QAAQ;QACR,8DAA8D;QAC9D,0CAA0C;QAC1C,oBAAoB;KACrB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC;AAxCW,QAAA,aAAa,iBAwCxB;AAEF,oEAAoE;AAC7D,MAAM,mBAAmB,GAAG,CACjC,IAAc,EACe,EAAE;IAC/B,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAC,IAAI,CAAC,CAAA,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC,CAAC;AAfW,QAAA,mBAAmB,uBAe9B"}
|
|
@@ -17,67 +17,67 @@
|
|
|
17
17
|
{
|
|
18
18
|
"description": "No sensitive information (passwords, keys, user data, ...) is logged or traced",
|
|
19
19
|
"responsibles": 1,
|
|
20
|
-
"more": "
|
|
20
|
+
"more": ""
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"description": "Passwords are stored hashed with salt and salt is not stored in the repository",
|
|
24
24
|
"responsibles": 1,
|
|
25
|
-
"more": "
|
|
25
|
+
"more": ""
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
"description": "Input that ends up in DOM is properly sanitized",
|
|
29
29
|
"responsibles": 1,
|
|
30
|
-
"more": "
|
|
30
|
+
"more": ""
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"description": "All user inputs have reasonable validations",
|
|
34
34
|
"responsibles": 1,
|
|
35
|
-
"more": "
|
|
35
|
+
"more": ""
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
"description": "The app is not using cookies",
|
|
39
39
|
"responsibles": 1,
|
|
40
|
-
"more": "
|
|
40
|
+
"more": ""
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"description": "The app is using cookies and cookies are properly configured",
|
|
44
44
|
"responsibles": 1,
|
|
45
|
-
"more": "
|
|
45
|
+
"more": ""
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"description": "The app uses JWT with a secret and the secret is not stored in the repository",
|
|
49
49
|
"responsibles": 1,
|
|
50
|
-
"more": "
|
|
50
|
+
"more": ""
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"description": "Authorization and user roles (RBAC) were reviewed thoroughly",
|
|
54
54
|
"responsibles": 2,
|
|
55
|
-
"more": "
|
|
55
|
+
"more": ""
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"description": "CORS headers do not use `*`",
|
|
59
59
|
"responsibles": 1,
|
|
60
|
-
"more": "
|
|
60
|
+
"more": ""
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"description": "CSP headers are properly configured (no `unsafe-inline` or `unsafe-eval`)",
|
|
64
64
|
"responsibles": 1,
|
|
65
|
-
"more": "
|
|
65
|
+
"more": ""
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
"description": "DoS defense mechanism is implemented",
|
|
69
69
|
"responsibles": 1,
|
|
70
|
-
"more": "
|
|
70
|
+
"more": ""
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"description": "YAML/XML parsing is not used or used YAML/XML parsers have disabled DTD",
|
|
74
74
|
"responsibles": 1,
|
|
75
|
-
"more": "
|
|
75
|
+
"more": ""
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"description": "The app implements CSRF prevention",
|
|
79
79
|
"responsibles": 1,
|
|
80
|
-
"more": "
|
|
80
|
+
"more": ""
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
83
|
"description": "The app has a rate limitter",
|
|
@@ -87,12 +87,12 @@
|
|
|
87
87
|
{
|
|
88
88
|
"description": "The app has disabled GraphQL introspection and schema registry",
|
|
89
89
|
"responsibles": 1,
|
|
90
|
-
"more": "
|
|
90
|
+
"more": ""
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"description": "The app has set GraphQL complexity query limits",
|
|
94
94
|
"responsibles": 1,
|
|
95
|
-
"more": "
|
|
95
|
+
"more": ""
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"description": "`sitemap.xml` does not leak any routes with sensitive data",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* the base url of the gitlab instance this project lives on.
|
|
3
|
+
*
|
|
4
|
+
* Never hardcode an instance: catladder is used outside panter, and the
|
|
5
|
+
* host was baked in as https://git.panter.ch in several places, which
|
|
6
|
+
* silently broke every consumer on another gitlab.
|
|
7
|
+
*
|
|
8
|
+
* - in a gitlab CI job, `CI_SERVER_URL` is the authoritative value
|
|
9
|
+
* (predefined, already includes the scheme)
|
|
10
|
+
* - locally, derive it from the git remote
|
|
11
|
+
*
|
|
12
|
+
* @param remoteName the remote to derive from outside CI (default origin)
|
|
13
|
+
*/
|
|
14
|
+
export declare const getGitlabHostUrl: (remoteName?: string) => Promise<string>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getGitlabHostUrl = void 0;
|
|
4
|
+
const gitProjectInformation_1 = require("../git/gitProjectInformation");
|
|
5
|
+
/**
|
|
6
|
+
* the base url of the gitlab instance this project lives on.
|
|
7
|
+
*
|
|
8
|
+
* Never hardcode an instance: catladder is used outside panter, and the
|
|
9
|
+
* host was baked in as https://git.panter.ch in several places, which
|
|
10
|
+
* silently broke every consumer on another gitlab.
|
|
11
|
+
*
|
|
12
|
+
* - in a gitlab CI job, `CI_SERVER_URL` is the authoritative value
|
|
13
|
+
* (predefined, already includes the scheme)
|
|
14
|
+
* - locally, derive it from the git remote
|
|
15
|
+
*
|
|
16
|
+
* @param remoteName the remote to derive from outside CI (default origin)
|
|
17
|
+
*/
|
|
18
|
+
const getGitlabHostUrl = async (remoteName = "origin") => {
|
|
19
|
+
const fromCi = process.env.CI_SERVER_URL;
|
|
20
|
+
if (fromCi) {
|
|
21
|
+
return fromCi.replace(/\/+$/, "");
|
|
22
|
+
}
|
|
23
|
+
const { gitRemoteHost } = await (0, gitProjectInformation_1.getGitRemoteHostAndPath)(remoteName);
|
|
24
|
+
return `https://${gitRemoteHost}`;
|
|
25
|
+
};
|
|
26
|
+
exports.getGitlabHostUrl = getGitlabHostUrl;
|
|
27
|
+
//# sourceMappingURL=gitlabHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlabHost.js","sourceRoot":"","sources":["../../../../../src/utils/gitlabHost.ts"],"names":[],"mappings":";;;AAAA,wEAAuE;AAEvE;;;;;;;;;;;;GAYG;AACI,MAAM,gBAAgB,GAAG,KAAK,EAAE,UAAU,GAAG,QAAQ,EAAE,EAAE;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,+CAAuB,EAAC,UAAU,CAAC,CAAC;IACpE,OAAO,WAAW,aAAa,EAAE,CAAC;AACpC,CAAC,CAAC;AAPW,QAAA,gBAAgB,oBAO3B"}
|