@catladder/cli 0.0.0-main-e76cf00d → 0.0.0-main-bd7c0346
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/apps/cli/src/apps/cli/commands/project/doctor/checkGithub.js +31 -9
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithub.js.map +1 -1
- package/dist/apps/cli/src/apps/cli/commands/project/githubMergeGating.d.ts +70 -0
- package/dist/apps/cli/src/apps/cli/commands/project/githubMergeGating.js +71 -0
- package/dist/apps/cli/src/apps/cli/commands/project/githubMergeGating.js.map +1 -0
- package/dist/apps/cli/src/apps/cli/commands/project/setup/setupGithub.d.ts +9 -7
- package/dist/apps/cli/src/apps/cli/commands/project/setup/setupGithub.js +77 -31
- package/dist/apps/cli/src/apps/cli/commands/project/setup/setupGithub.js.map +1 -1
- package/dist/apps/cli/src/release/changesetsReleaseJob.js +19 -1
- package/dist/apps/cli/src/release/changesetsReleaseJob.js.map +1 -1
- package/dist/apps/cli/src/utils/github.d.ts +1 -1
- package/dist/apps/cli/src/utils/github.js.map +1 -1
- package/dist/bundles/catci/index.js +1 -1
- package/dist/bundles/cli/index.js +186 -40
- package/dist/bundles/skills/catladder-migrate-ci-backend/SKILL.md +11 -7
- package/dist/skills/catladder-migrate-ci-backend/SKILL.md +11 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/apps/cli/commands/project/__tests__/githubMergeGating.test.ts +112 -0
- package/src/apps/cli/commands/project/doctor/checkGithub.ts +44 -8
- package/src/apps/cli/commands/project/githubMergeGating.ts +90 -0
- package/src/apps/cli/commands/project/setup/setupGithub.ts +105 -26
- package/src/release/changesetsReleaseJob.ts +19 -1
- package/src/utils/github.ts +1 -1
|
@@ -5,6 +5,7 @@ const pipeline_1 = require("../../../../../../../../packages/pipeline/src/index.
|
|
|
5
5
|
const commandSecretsSyncGithub_1 = require("../../../../../commands/project/commandSecretsSyncGithub");
|
|
6
6
|
const concurrency_1 = require("../../../../../utils/concurrency");
|
|
7
7
|
const github_1 = require("../../../../../utils/github");
|
|
8
|
+
const githubMergeGating_1 = require("../githubMergeGating");
|
|
8
9
|
/** marker for repo-level (environment-less) targets, see collectSecretTargets */
|
|
9
10
|
const REPO_LEVEL = "";
|
|
10
11
|
/**
|
|
@@ -108,10 +109,13 @@ const checkGithub = async (report, config) => {
|
|
|
108
109
|
exports.checkGithub = checkGithub;
|
|
109
110
|
/**
|
|
110
111
|
* verifies the merge gating `project setup` configures: auto-merge
|
|
111
|
-
* enabled and the
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
112
|
+
* enabled and the `catladder merge gating` ruleset requiring the
|
|
113
|
+
* generated `catladder ✅` aggregate check on the default branch (with
|
|
114
|
+
* the bypass that lets the release job push). Without the check a PR
|
|
115
|
+
* is mergeable while its checks are still running — gitlab ships this
|
|
116
|
+
* behavior built-in, github silently does not. The check required via
|
|
117
|
+
* classic branch protection instead is flagged: that setup rejects the
|
|
118
|
+
* release job's own push (GH006).
|
|
115
119
|
*/
|
|
116
120
|
const checkGithubMergeGating = async (report, repo) => {
|
|
117
121
|
var _a, _b;
|
|
@@ -130,17 +134,35 @@ const checkGithubMergeGating = async (report, repo) => {
|
|
|
130
134
|
report.fail("auto-merge disabled — the merge-when-pipeline-succeeds button cannot appear", "run: catladder project setup");
|
|
131
135
|
}
|
|
132
136
|
const branch = repoInfo.default_branch;
|
|
137
|
+
let rulesets;
|
|
138
|
+
try {
|
|
139
|
+
rulesets = await (0, github_1.ghApiJson)("GET", `repos/${repo}/rulesets?per_page=100`);
|
|
140
|
+
}
|
|
141
|
+
catch (e) {
|
|
142
|
+
report.warn(`could not list rulesets of ${repo} (${e.message})`);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const named = rulesets.find((r) => r.name === githubMergeGating_1.MERGE_GATING_RULESET_NAME);
|
|
146
|
+
const ruleset = named
|
|
147
|
+
? await (0, github_1.ghApiJson)("GET", `repos/${repo}/rulesets/${named.id}`).catch(() => null)
|
|
148
|
+
: null;
|
|
149
|
+
if (ruleset && (0, githubMergeGating_1.rulesetProvidesMergeGating)(ruleset)) {
|
|
150
|
+
report.ok(`ruleset '${githubMergeGating_1.MERGE_GATING_RULESET_NAME}': '${pipeline_1.AGGREGATE_CHECK_JOB_NAME}' required on ${branch}, release job can push`);
|
|
151
|
+
}
|
|
152
|
+
else if (ruleset) {
|
|
153
|
+
report.fail(`ruleset '${githubMergeGating_1.MERGE_GATING_RULESET_NAME}' exists but is incomplete (inactive, check not required, or release-job bypass missing)`, "run: catladder project setup");
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
report.fail(`no '${githubMergeGating_1.MERGE_GATING_RULESET_NAME}' ruleset on ${repo} — PRs can merge while the pipeline is red or still running`, "run: catladder project setup");
|
|
157
|
+
}
|
|
133
158
|
const protection = await (0, github_1.ghApiJson)("GET", `repos/${repo}/branches/${branch}/protection`).catch(() => null);
|
|
134
159
|
const checks = (_b = (_a = protection === null || protection === void 0 ? void 0 : protection.required_status_checks) === null || _a === void 0 ? void 0 : _a.checks) !== null && _b !== void 0 ? _b : [];
|
|
135
160
|
if (checks.some((c) => c.context === pipeline_1.AGGREGATE_CHECK_JOB_NAME)) {
|
|
136
|
-
report.
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
report.fail(`'${pipeline_1.AGGREGATE_CHECK_JOB_NAME}' is not a required check on ${branch} — PRs can merge while the pipeline is red or still running`, "run: catladder project setup");
|
|
161
|
+
report.fail(`'${pipeline_1.AGGREGATE_CHECK_JOB_NAME}' is still required via classic branch protection on ${branch} — that rejects the release job's push (GH006)`, "run: catladder project setup");
|
|
140
162
|
}
|
|
141
163
|
const stale = checks.filter((c) => c.context !== pipeline_1.AGGREGATE_CHECK_JOB_NAME);
|
|
142
164
|
if (stale.length > 0) {
|
|
143
|
-
report.warn(`${branch} requires ${stale.length} additional named check(s) (${stale
|
|
165
|
+
report.warn(`${branch} requires ${stale.length} additional named check(s) via classic branch protection (${stale
|
|
144
166
|
.map((c) => c.context)
|
|
145
167
|
.join(", ")}) — job names change with components; prefer only '${pipeline_1.AGGREGATE_CHECK_JOB_NAME}'`);
|
|
146
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkGithub.js","sourceRoot":"","sources":["../../../../../../../../../src/apps/cli/commands/project/doctor/checkGithub.ts"],"names":[],"mappings":";;;AACA,kDAI6B;AAC7B,uGAGkE;AAClE,kEAAsE;AACtE,wDAMqC;
|
|
1
|
+
{"version":3,"file":"checkGithub.js","sourceRoot":"","sources":["../../../../../../../../../src/apps/cli/commands/project/doctor/checkGithub.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* github merge gating — shared between `project setup` (writes it) and
|
|
3
|
+
* `project doctor` (verifies it).
|
|
4
|
+
*
|
|
5
|
+
* The gating lives in a repository RULESET, not classic branch
|
|
6
|
+
* protection: only rulesets can carry bypass actors, and the release
|
|
7
|
+
* job needs one. It pushes the release commit and tag straight to the
|
|
8
|
+
* default branch with the workflow token — under classic protection
|
|
9
|
+
* the required `catladder ✅` check rejects that push (GH006), because
|
|
10
|
+
* the fresh release commit cannot have a passing check yet. The bypass
|
|
11
|
+
* covers the GitHub Actions app, i.e. pushes made by workflows, while
|
|
12
|
+
* PRs and humans stay gated. (Gitlab's counterpart is the
|
|
13
|
+
* maintainer-role project access token, which may push to protected
|
|
14
|
+
* branches by default — the same trade-off, made by the platform.)
|
|
15
|
+
*/
|
|
16
|
+
/** the app id of GitHub Actions — the actor workflow tokens act as */
|
|
17
|
+
export declare const GITHUB_ACTIONS_APP_ID = 15368;
|
|
18
|
+
export declare const MERGE_GATING_RULESET_NAME = "catladder merge gating";
|
|
19
|
+
export type GithubRuleset = {
|
|
20
|
+
id: number;
|
|
21
|
+
name: string;
|
|
22
|
+
enforcement: string;
|
|
23
|
+
rules?: Array<{
|
|
24
|
+
type: string;
|
|
25
|
+
parameters?: {
|
|
26
|
+
required_status_checks?: Array<{
|
|
27
|
+
context: string;
|
|
28
|
+
}>;
|
|
29
|
+
};
|
|
30
|
+
}>;
|
|
31
|
+
bypass_actors?: Array<{
|
|
32
|
+
actor_id?: number | null;
|
|
33
|
+
actor_type: string;
|
|
34
|
+
bypass_mode: string;
|
|
35
|
+
}>;
|
|
36
|
+
};
|
|
37
|
+
/** the ruleset `project setup` creates (and restores on drift) */
|
|
38
|
+
export declare const desiredMergeGatingRuleset: () => {
|
|
39
|
+
name: string;
|
|
40
|
+
target: string;
|
|
41
|
+
enforcement: string;
|
|
42
|
+
conditions: {
|
|
43
|
+
ref_name: {
|
|
44
|
+
include: string[];
|
|
45
|
+
exclude: any[];
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
rules: {
|
|
49
|
+
type: string;
|
|
50
|
+
parameters: {
|
|
51
|
+
strict_required_status_checks_policy: boolean;
|
|
52
|
+
do_not_enforce_on_create: boolean;
|
|
53
|
+
required_status_checks: {
|
|
54
|
+
context: string;
|
|
55
|
+
integration_id: number;
|
|
56
|
+
}[];
|
|
57
|
+
};
|
|
58
|
+
}[];
|
|
59
|
+
bypass_actors: {
|
|
60
|
+
actor_id: number;
|
|
61
|
+
actor_type: string;
|
|
62
|
+
bypass_mode: string;
|
|
63
|
+
}[];
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* whether a ruleset provides working merge gating: active, requires
|
|
67
|
+
* the aggregate check, and lets the release job (GitHub Actions app)
|
|
68
|
+
* bypass it. Extra rules or bypass actors someone added are fine.
|
|
69
|
+
*/
|
|
70
|
+
export declare const rulesetProvidesMergeGating: (ruleset: GithubRuleset) => boolean;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rulesetProvidesMergeGating = exports.desiredMergeGatingRuleset = exports.MERGE_GATING_RULESET_NAME = exports.GITHUB_ACTIONS_APP_ID = void 0;
|
|
4
|
+
const pipeline_1 = require("../../../../../../../packages/pipeline/src/index.js");
|
|
5
|
+
/**
|
|
6
|
+
* github merge gating — shared between `project setup` (writes it) and
|
|
7
|
+
* `project doctor` (verifies it).
|
|
8
|
+
*
|
|
9
|
+
* The gating lives in a repository RULESET, not classic branch
|
|
10
|
+
* protection: only rulesets can carry bypass actors, and the release
|
|
11
|
+
* job needs one. It pushes the release commit and tag straight to the
|
|
12
|
+
* default branch with the workflow token — under classic protection
|
|
13
|
+
* the required `catladder ✅` check rejects that push (GH006), because
|
|
14
|
+
* the fresh release commit cannot have a passing check yet. The bypass
|
|
15
|
+
* covers the GitHub Actions app, i.e. pushes made by workflows, while
|
|
16
|
+
* PRs and humans stay gated. (Gitlab's counterpart is the
|
|
17
|
+
* maintainer-role project access token, which may push to protected
|
|
18
|
+
* branches by default — the same trade-off, made by the platform.)
|
|
19
|
+
*/
|
|
20
|
+
/** the app id of GitHub Actions — the actor workflow tokens act as */
|
|
21
|
+
exports.GITHUB_ACTIONS_APP_ID = 15368;
|
|
22
|
+
exports.MERGE_GATING_RULESET_NAME = "catladder merge gating";
|
|
23
|
+
/** the ruleset `project setup` creates (and restores on drift) */
|
|
24
|
+
const desiredMergeGatingRuleset = () => ({
|
|
25
|
+
name: exports.MERGE_GATING_RULESET_NAME,
|
|
26
|
+
target: "branch",
|
|
27
|
+
enforcement: "active",
|
|
28
|
+
conditions: { ref_name: { include: ["~DEFAULT_BRANCH"], exclude: [] } },
|
|
29
|
+
rules: [
|
|
30
|
+
{
|
|
31
|
+
type: "required_status_checks",
|
|
32
|
+
parameters: {
|
|
33
|
+
strict_required_status_checks_policy: false,
|
|
34
|
+
do_not_enforce_on_create: false,
|
|
35
|
+
required_status_checks: [
|
|
36
|
+
{
|
|
37
|
+
context: pipeline_1.AGGREGATE_CHECK_JOB_NAME,
|
|
38
|
+
integration_id: exports.GITHUB_ACTIONS_APP_ID,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
bypass_actors: [
|
|
45
|
+
{
|
|
46
|
+
actor_id: exports.GITHUB_ACTIONS_APP_ID,
|
|
47
|
+
actor_type: "Integration",
|
|
48
|
+
bypass_mode: "always",
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
exports.desiredMergeGatingRuleset = desiredMergeGatingRuleset;
|
|
53
|
+
/**
|
|
54
|
+
* whether a ruleset provides working merge gating: active, requires
|
|
55
|
+
* the aggregate check, and lets the release job (GitHub Actions app)
|
|
56
|
+
* bypass it. Extra rules or bypass actors someone added are fine.
|
|
57
|
+
*/
|
|
58
|
+
const rulesetProvidesMergeGating = (ruleset) => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
return ruleset.enforcement === "active" &&
|
|
61
|
+
((_a = ruleset.rules) !== null && _a !== void 0 ? _a : []).some((rule) => {
|
|
62
|
+
var _a, _b;
|
|
63
|
+
return rule.type === "required_status_checks" &&
|
|
64
|
+
((_b = (_a = rule.parameters) === null || _a === void 0 ? void 0 : _a.required_status_checks) !== null && _b !== void 0 ? _b : []).some((check) => check.context === pipeline_1.AGGREGATE_CHECK_JOB_NAME);
|
|
65
|
+
}) &&
|
|
66
|
+
((_b = ruleset.bypass_actors) !== null && _b !== void 0 ? _b : []).some((actor) => actor.actor_type === "Integration" &&
|
|
67
|
+
actor.actor_id === exports.GITHUB_ACTIONS_APP_ID &&
|
|
68
|
+
actor.bypass_mode === "always");
|
|
69
|
+
};
|
|
70
|
+
exports.rulesetProvidesMergeGating = rulesetProvidesMergeGating;
|
|
71
|
+
//# sourceMappingURL=githubMergeGating.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"githubMergeGating.js","sourceRoot":"","sources":["../../../../../../../../src/apps/cli/commands/project/githubMergeGating.ts"],"names":[],"mappings":";;;AAAA,kDAA+D;AAE/D;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACzD,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE9B,QAAA,yBAAyB,GAAG,wBAAwB,CAAC;AAmBlE,kEAAkE;AAC3D,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAAC,CAAC;IAC9C,IAAI,EAAE,iCAAyB;IAC/B,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;IACvE,KAAK,EAAE;QACL;YACE,IAAI,EAAE,wBAAwB;YAC9B,UAAU,EAAE;gBACV,oCAAoC,EAAE,KAAK;gBAC3C,wBAAwB,EAAE,KAAK;gBAC/B,sBAAsB,EAAE;oBACtB;wBACE,OAAO,EAAE,mCAAwB;wBACjC,cAAc,EAAE,6BAAqB;qBACtC;iBACF;aACF;SACF;KACF;IACD,aAAa,EAAE;QACb;YACE,QAAQ,EAAE,6BAAqB;YAC/B,UAAU,EAAE,aAAa;YACzB,WAAW,EAAE,QAAQ;SACtB;KACF;CACF,CAAC,CAAC;AA3BU,QAAA,yBAAyB,6BA2BnC;AAEH;;;;GAIG;AACI,MAAM,0BAA0B,GAAG,CAAC,OAAsB,EAAW,EAAE;;IAC5E,OAAA,OAAO,CAAC,WAAW,KAAK,QAAQ;QAChC,CAAC,MAAA,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,IAAI,CACxB,CAAC,IAAI,EAAE,EAAE;;YACP,OAAA,IAAI,CAAC,IAAI,KAAK,wBAAwB;gBACtC,CAAC,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,sBAAsB,mCAAI,EAAE,CAAC,CAAC,IAAI,CAClD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,mCAAwB,CACtD,CAAA;SAAA,CACJ;QACD,CAAC,MAAA,OAAO,CAAC,aAAa,mCAAI,EAAE,CAAC,CAAC,IAAI,CAChC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,UAAU,KAAK,aAAa;YAClC,KAAK,CAAC,QAAQ,KAAK,6BAAqB;YACxC,KAAK,CAAC,WAAW,KAAK,QAAQ,CACjC,CAAA;CAAA,CAAC;AAdS,QAAA,0BAA0B,8BAcnC"}
|
|
@@ -7,14 +7,16 @@ import type { IO } from "../../../../../core/types";
|
|
|
7
7
|
* auto-merge button never appears.
|
|
8
8
|
*
|
|
9
9
|
* - repo settings: allow auto-merge, delete merged head branches
|
|
10
|
-
* -
|
|
10
|
+
* - a repository ruleset on the default branch requiring the generated
|
|
11
11
|
* `catladder ✅` aggregate check (the one stable context — individual
|
|
12
|
-
* job names change with every component add/rename)
|
|
12
|
+
* job names change with every component add/rename), with a bypass
|
|
13
|
+
* for the GitHub Actions app so the release job can push the release
|
|
14
|
+
* commit and tag (see githubMergeGating.ts for the full rationale)
|
|
13
15
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* Earlier versions required the check via classic branch protection,
|
|
17
|
+
* which has no bypass list — the release job's direct push to the
|
|
18
|
+
* default branch bounced off catladder's own gating (GH006). Setup
|
|
19
|
+
* migrates that away: the aggregate context is removed from an
|
|
20
|
+
* existing classic rule, everything else in it is preserved.
|
|
19
21
|
*/
|
|
20
22
|
export declare const setupGithub: (instance: IO, config: Config) => Promise<void>;
|
|
@@ -4,6 +4,7 @@ exports.setupGithub = void 0;
|
|
|
4
4
|
const pipeline_1 = require("../../../../../../../../packages/pipeline/src/index.js");
|
|
5
5
|
const commandSecretsSyncGithub_1 = require("../../../../../commands/project/commandSecretsSyncGithub");
|
|
6
6
|
const github_1 = require("../../../../../utils/github");
|
|
7
|
+
const githubMergeGating_1 = require("../githubMergeGating");
|
|
7
8
|
/**
|
|
8
9
|
* configures github merge gating — the sane default gitlab ships
|
|
9
10
|
* built-in and a fresh github repository lacks entirely: without it a
|
|
@@ -11,18 +12,19 @@ const github_1 = require("../../../../../utils/github");
|
|
|
11
12
|
* auto-merge button never appears.
|
|
12
13
|
*
|
|
13
14
|
* - repo settings: allow auto-merge, delete merged head branches
|
|
14
|
-
* -
|
|
15
|
+
* - a repository ruleset on the default branch requiring the generated
|
|
15
16
|
* `catladder ✅` aggregate check (the one stable context — individual
|
|
16
|
-
* job names change with every component add/rename)
|
|
17
|
+
* job names change with every component add/rename), with a bypass
|
|
18
|
+
* for the GitHub Actions app so the release job can push the release
|
|
19
|
+
* commit and tag (see githubMergeGating.ts for the full rationale)
|
|
17
20
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
21
|
+
* Earlier versions required the check via classic branch protection,
|
|
22
|
+
* which has no bypass list — the release job's direct push to the
|
|
23
|
+
* default branch bounced off catladder's own gating (GH006). Setup
|
|
24
|
+
* migrates that away: the aggregate context is removed from an
|
|
25
|
+
* existing classic rule, everything else in it is preserved.
|
|
23
26
|
*/
|
|
24
27
|
const setupGithub = async (instance, config) => {
|
|
25
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
26
28
|
if (!(0, pipeline_1.getEnabledPipelineTypes)(config).includes("github")) {
|
|
27
29
|
return;
|
|
28
30
|
}
|
|
@@ -47,33 +49,75 @@ const setupGithub = async (instance, config) => {
|
|
|
47
49
|
instance.log("✅ auto-merge already enabled");
|
|
48
50
|
}
|
|
49
51
|
const branch = repoInfo.default_branch;
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
53
|
-
|
|
52
|
+
const rulesets = await (0, github_1.ghApiJson)("GET", `repos/${repo}/rulesets?per_page=100`);
|
|
53
|
+
const existing = rulesets.find((r) => r.name === githubMergeGating_1.MERGE_GATING_RULESET_NAME);
|
|
54
|
+
if (!existing) {
|
|
55
|
+
await (0, github_1.ghApiJson)("POST", `repos/${repo}/rulesets`, (0, githubMergeGating_1.desiredMergeGatingRuleset)());
|
|
56
|
+
instance.log(`✅ ruleset '${githubMergeGating_1.MERGE_GATING_RULESET_NAME}': '${pipeline_1.AGGREGATE_CHECK_JOB_NAME}' required on ${branch} — merges wait for the pipeline, the release job can push`);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const detail = await (0, github_1.ghApiJson)("GET", `repos/${repo}/rulesets/${existing.id}`);
|
|
60
|
+
if ((0, githubMergeGating_1.rulesetProvidesMergeGating)(detail)) {
|
|
61
|
+
instance.log(`✅ ruleset '${githubMergeGating_1.MERGE_GATING_RULESET_NAME}' already in place on ${branch}`);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
await (0, github_1.ghApiJson)("PUT", `repos/${repo}/rulesets/${existing.id}`, (0, githubMergeGating_1.desiredMergeGatingRuleset)());
|
|
65
|
+
instance.log(`✅ ruleset '${githubMergeGating_1.MERGE_GATING_RULESET_NAME}' restored — '${pipeline_1.AGGREGATE_CHECK_JOB_NAME}' required, release-job bypass in place`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
await migrateAwayFromClassicProtection(instance, repo, branch);
|
|
69
|
+
};
|
|
70
|
+
exports.setupGithub = setupGithub;
|
|
71
|
+
/**
|
|
72
|
+
* removes the aggregate check from a classic branch protection rule
|
|
73
|
+
* set up by earlier catladder versions — with the check now required
|
|
74
|
+
* via the ruleset, the classic one would still reject the release
|
|
75
|
+
* job's push. Everything else in the rule is preserved; the whole rule
|
|
76
|
+
* is deleted when the check was all it carried.
|
|
77
|
+
*/
|
|
78
|
+
const migrateAwayFromClassicProtection = async (instance, repo, branch) => {
|
|
79
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
|
|
80
|
+
const protection = await (0, github_1.ghApiJson)("GET", `repos/${repo}/branches/${branch}/protection`).catch(() => null); // 404: branch not protected
|
|
81
|
+
const checks = (_b = (_a = protection === null || protection === void 0 ? void 0 : protection.required_status_checks) === null || _a === void 0 ? void 0 : _a.checks) !== null && _b !== void 0 ? _b : [];
|
|
82
|
+
if (!checks.some((c) => c.context === pipeline_1.AGGREGATE_CHECK_JOB_NAME)) {
|
|
54
83
|
return;
|
|
55
84
|
}
|
|
56
|
-
|
|
57
|
-
|
|
85
|
+
const remaining = checks.filter((c) => c.context !== pipeline_1.AGGREGATE_CHECK_JOB_NAME);
|
|
86
|
+
const carriesAnythingElse = remaining.length > 0 ||
|
|
87
|
+
((_c = protection === null || protection === void 0 ? void 0 : protection.enforce_admins) === null || _c === void 0 ? void 0 : _c.enabled) ||
|
|
88
|
+
(protection === null || protection === void 0 ? void 0 : protection.required_pull_request_reviews) ||
|
|
89
|
+
(protection === null || protection === void 0 ? void 0 : protection.restrictions) ||
|
|
90
|
+
((_d = protection === null || protection === void 0 ? void 0 : protection.required_linear_history) === null || _d === void 0 ? void 0 : _d.enabled) ||
|
|
91
|
+
((_e = protection === null || protection === void 0 ? void 0 : protection.required_conversation_resolution) === null || _e === void 0 ? void 0 : _e.enabled) ||
|
|
92
|
+
((_f = protection === null || protection === void 0 ? void 0 : protection.required_signatures) === null || _f === void 0 ? void 0 : _f.enabled) ||
|
|
93
|
+
((_g = protection === null || protection === void 0 ? void 0 : protection.lock_branch) === null || _g === void 0 ? void 0 : _g.enabled) ||
|
|
94
|
+
((_h = protection === null || protection === void 0 ? void 0 : protection.allow_force_pushes) === null || _h === void 0 ? void 0 : _h.enabled) ||
|
|
95
|
+
((_j = protection === null || protection === void 0 ? void 0 : protection.allow_deletions) === null || _j === void 0 ? void 0 : _j.enabled);
|
|
96
|
+
if (!carriesAnythingElse) {
|
|
97
|
+
await (0, github_1.ghApiJson)("DELETE", `repos/${repo}/branches/${branch}/protection`);
|
|
98
|
+
instance.log(`✅ classic branch protection on ${branch} removed — '${pipeline_1.AGGREGATE_CHECK_JOB_NAME}' was all it carried, and it is now required via the ruleset`);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
// PUT replaces the whole rule, so every preserved setting must be
|
|
102
|
+
// carried over explicitly
|
|
58
103
|
await (0, github_1.ghApiJson)("PUT", `repos/${repo}/branches/${branch}/protection`, {
|
|
59
|
-
required_status_checks:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
104
|
+
required_status_checks: remaining.length > 0
|
|
105
|
+
? {
|
|
106
|
+
strict: (_l = (_k = protection === null || protection === void 0 ? void 0 : protection.required_status_checks) === null || _k === void 0 ? void 0 : _k.strict) !== null && _l !== void 0 ? _l : false,
|
|
107
|
+
checks: remaining.map(({ context, app_id }) => ({
|
|
63
108
|
context,
|
|
64
109
|
...(app_id !== undefined ? { app_id } : {}),
|
|
65
110
|
})),
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
enforce_admins: (_f = (_e = protection === null || protection === void 0 ? void 0 : protection.enforce_admins) === null || _e === void 0 ? void 0 : _e.enabled) !== null && _f !== void 0 ? _f : false,
|
|
111
|
+
}
|
|
112
|
+
: null,
|
|
113
|
+
enforce_admins: (_o = (_m = protection === null || protection === void 0 ? void 0 : protection.enforce_admins) === null || _m === void 0 ? void 0 : _m.enabled) !== null && _o !== void 0 ? _o : false,
|
|
70
114
|
required_pull_request_reviews: (protection === null || protection === void 0 ? void 0 : protection.required_pull_request_reviews)
|
|
71
115
|
? {
|
|
72
|
-
required_approving_review_count: (
|
|
73
|
-
.required_approving_review_count) !== null &&
|
|
74
|
-
dismiss_stale_reviews: (
|
|
75
|
-
require_code_owner_reviews: (
|
|
76
|
-
.require_code_owner_reviews) !== null &&
|
|
116
|
+
required_approving_review_count: (_p = protection.required_pull_request_reviews
|
|
117
|
+
.required_approving_review_count) !== null && _p !== void 0 ? _p : 0,
|
|
118
|
+
dismiss_stale_reviews: (_q = protection.required_pull_request_reviews.dismiss_stale_reviews) !== null && _q !== void 0 ? _q : false,
|
|
119
|
+
require_code_owner_reviews: (_r = protection.required_pull_request_reviews
|
|
120
|
+
.require_code_owner_reviews) !== null && _r !== void 0 ? _r : false,
|
|
77
121
|
}
|
|
78
122
|
: null,
|
|
79
123
|
restrictions: (protection === null || protection === void 0 ? void 0 : protection.restrictions)
|
|
@@ -83,10 +127,12 @@ const setupGithub = async (instance, config) => {
|
|
|
83
127
|
apps: protection.restrictions.apps.map((a) => a.slug),
|
|
84
128
|
}
|
|
85
129
|
: null,
|
|
86
|
-
|
|
87
|
-
|
|
130
|
+
required_linear_history: (_t = (_s = protection === null || protection === void 0 ? void 0 : protection.required_linear_history) === null || _s === void 0 ? void 0 : _s.enabled) !== null && _t !== void 0 ? _t : false,
|
|
131
|
+
required_conversation_resolution: (_v = (_u = protection === null || protection === void 0 ? void 0 : protection.required_conversation_resolution) === null || _u === void 0 ? void 0 : _u.enabled) !== null && _v !== void 0 ? _v : false,
|
|
132
|
+
lock_branch: (_x = (_w = protection === null || protection === void 0 ? void 0 : protection.lock_branch) === null || _w === void 0 ? void 0 : _w.enabled) !== null && _x !== void 0 ? _x : false,
|
|
133
|
+
allow_force_pushes: (_z = (_y = protection === null || protection === void 0 ? void 0 : protection.allow_force_pushes) === null || _y === void 0 ? void 0 : _y.enabled) !== null && _z !== void 0 ? _z : false,
|
|
134
|
+
allow_deletions: (_1 = (_0 = protection === null || protection === void 0 ? void 0 : protection.allow_deletions) === null || _0 === void 0 ? void 0 : _0.enabled) !== null && _1 !== void 0 ? _1 : false,
|
|
88
135
|
});
|
|
89
|
-
instance.log(`✅ branch protection on ${branch}
|
|
136
|
+
instance.log(`✅ '${pipeline_1.AGGREGATE_CHECK_JOB_NAME}' removed from classic branch protection on ${branch} — now required via the ruleset; the rest of the rule is preserved`);
|
|
90
137
|
};
|
|
91
|
-
exports.setupGithub = setupGithub;
|
|
92
138
|
//# sourceMappingURL=setupGithub.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupGithub.js","sourceRoot":"","sources":["../../../../../../../../../src/apps/cli/commands/project/setup/setupGithub.ts"],"names":[],"mappings":";;;AACA,kDAI6B;AAC7B,uGAAmG;AAEnG,wDAA2E;AAE3E
|
|
1
|
+
{"version":3,"file":"setupGithub.js","sourceRoot":"","sources":["../../../../../../../../../src/apps/cli/commands/project/setup/setupGithub.ts"],"names":[],"mappings":";;;AACA,kDAI6B;AAC7B,uGAAmG;AAEnG,wDAA2E;AAE3E,4DAI8B;AAE9B;;;;;;;;;;;;;;;;;;GAkBG;AACI,MAAM,WAAW,GAAG,KAAK,EAAE,QAAY,EAAE,MAAc,EAAE,EAAE;IAChE,IAAI,CAAC,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAA,0BAAiB,GAAE,CAAC,EAAE,CAAC;QACjC,QAAQ,CAAC,GAAG,CACV,gGAAgG,CACjG,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,IAAA,kDAAuB,GAAE,CAAC;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,QAAQ,CAAC,GAAG,CACV,yCAAyC,IAAA,+BAAoB,EAAC,MAAM,EAAE,QAAQ,CAAC,+CAA+C,CAC/H,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAS,EAI7B,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IAE3B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QACnE,MAAM,IAAA,kBAAS,EAAC,OAAO,EAAE,SAAS,IAAI,EAAE,EAAE;YACxC,gBAAgB,EAAE,IAAI;YACtB,sBAAsB,EAAE,IAAI;SAC7B,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAS,EAC9B,KAAK,EACL,SAAS,IAAI,wBAAwB,CACtC,CAAC;IACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,6CAAyB,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAA,kBAAS,EACb,MAAM,EACN,SAAS,IAAI,WAAW,EACxB,IAAA,6CAAyB,GAAE,CAC5B,CAAC;QACF,QAAQ,CAAC,GAAG,CACV,cAAc,6CAAyB,OAAO,mCAAwB,iBAAiB,MAAM,2DAA2D,CACzJ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAC5B,KAAK,EACL,SAAS,IAAI,aAAa,QAAQ,CAAC,EAAE,EAAE,CACxC,CAAC;QACF,IAAI,IAAA,8CAA0B,EAAC,MAAM,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,GAAG,CACV,cAAc,6CAAyB,yBAAyB,MAAM,EAAE,CACzE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAA,kBAAS,EACb,KAAK,EACL,SAAS,IAAI,aAAa,QAAQ,CAAC,EAAE,EAAE,EACvC,IAAA,6CAAyB,GAAE,CAC5B,CAAC;YACF,QAAQ,CAAC,GAAG,CACV,cAAc,6CAAyB,iBAAiB,mCAAwB,yCAAyC,CAC1H,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,gCAAgC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC,CAAC;AAvEW,QAAA,WAAW,eAuEtB;AAEF;;;;;;GAMG;AACH,MAAM,gCAAgC,GAAG,KAAK,EAC5C,QAAY,EACZ,IAAY,EACZ,MAAc,EACd,EAAE;;IACF,MAAM,UAAU,GAAG,MAAM,IAAA,kBAAS,EAChC,KAAK,EACL,SAAS,IAAI,aAAa,MAAM,aAAa,CAC9C,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B;IACjD,MAAM,MAAM,GACV,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,sBAAsB,0CAAE,MAAM,mCAAI,EAAE,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,mCAAwB,CAAC,EAAE,CAAC;QAChE,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,mCAAwB,CAC9C,CAAC;IACF,MAAM,mBAAmB,GACvB,SAAS,CAAC,MAAM,GAAG,CAAC;SACpB,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,cAAc,0CAAE,OAAO,CAAA;SACnC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,6BAA6B,CAAA;SACzC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,YAAY,CAAA;SACxB,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,uBAAuB,0CAAE,OAAO,CAAA;SAC5C,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,gCAAgC,0CAAE,OAAO,CAAA;SACrD,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,mBAAmB,0CAAE,OAAO,CAAA;SACxC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,0CAAE,OAAO,CAAA;SAChC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,kBAAkB,0CAAE,OAAO,CAAA;SACvC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,eAAe,0CAAE,OAAO,CAAA,CAAC;IACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAA,kBAAS,EAAC,QAAQ,EAAE,SAAS,IAAI,aAAa,MAAM,aAAa,CAAC,CAAC;QACzE,QAAQ,CAAC,GAAG,CACV,kCAAkC,MAAM,eAAe,mCAAwB,8DAA8D,CAC9I,CAAC;QACF,OAAO;IACT,CAAC;IACD,kEAAkE;IAClE,0BAA0B;IAC1B,MAAM,IAAA,kBAAS,EAAC,KAAK,EAAE,SAAS,IAAI,aAAa,MAAM,aAAa,EAAE;QACpE,sBAAsB,EACpB,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC;gBACE,MAAM,EAAE,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,sBAAsB,0CAAE,MAAM,mCAAI,KAAK;gBAC3D,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC9C,OAAO;oBACP,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5C,CAAC,CAAC;aACJ;YACH,CAAC,CAAC,IAAI;QACV,cAAc,EAAE,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,cAAc,0CAAE,OAAO,mCAAI,KAAK;QAC5D,6BAA6B,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,6BAA6B;YACtE,CAAC,CAAC;gBACE,+BAA+B,EAC7B,MAAA,UAAU,CAAC,6BAA6B;qBACrC,+BAA+B,mCAAI,CAAC;gBACzC,qBAAqB,EACnB,MAAA,UAAU,CAAC,6BAA6B,CAAC,qBAAqB,mCAC9D,KAAK;gBACP,0BAA0B,EACxB,MAAA,UAAU,CAAC,6BAA6B;qBACrC,0BAA0B,mCAAI,KAAK;aACzC;YACH,CAAC,CAAC,IAAI;QACR,YAAY,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,YAAY;YACpC,CAAC,CAAC;gBACE,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC7D,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5D,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAC3D;YACH,CAAC,CAAC,IAAI;QACR,uBAAuB,EACrB,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,uBAAuB,0CAAE,OAAO,mCAAI,KAAK;QACvD,gCAAgC,EAC9B,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,gCAAgC,0CAAE,OAAO,mCAAI,KAAK;QAChE,WAAW,EAAE,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,0CAAE,OAAO,mCAAI,KAAK;QACtD,kBAAkB,EAAE,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,kBAAkB,0CAAE,OAAO,mCAAI,KAAK;QACpE,eAAe,EAAE,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,eAAe,0CAAE,OAAO,mCAAI,KAAK;KAC/D,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,CACV,MAAM,mCAAwB,+CAA+C,MAAM,oEAAoE,CACxJ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -54,12 +54,30 @@ const requireEnv = (name) => {
|
|
|
54
54
|
* plain push to origin works (`permissions: contents: write`)
|
|
55
55
|
*/
|
|
56
56
|
const pushCommitAndTag = async (tag) => {
|
|
57
|
+
var _a;
|
|
57
58
|
// --atomic: all refs or none — a rejected tag must not leave the
|
|
58
59
|
// release commit half-pushed (observed when a stale local view
|
|
59
60
|
// rederived an existing version)
|
|
60
61
|
if (process.env.GITHUB_ACTIONS === "true") {
|
|
61
62
|
const branch = requireEnv("GITHUB_REF_NAME");
|
|
62
|
-
|
|
63
|
+
try {
|
|
64
|
+
await (0, releaseGit_1.git)("push", "--atomic", "origin", `HEAD:refs/heads/${branch}`, tag);
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
// GH006: classic branch protection with a required status check
|
|
68
|
+
// rejects the fresh release commit (it cannot have a passing
|
|
69
|
+
// check yet) — merge gating must live in a ruleset with a bypass
|
|
70
|
+
// for the actions app, which `project setup` configures
|
|
71
|
+
if (/GH006|protected branch/i.test(`${(_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : e}`)) {
|
|
72
|
+
throw new Error(`pushing the release to '${branch}' was rejected by its branch protection:\n` +
|
|
73
|
+
`${e.message}\n` +
|
|
74
|
+
`The release job pushes the release commit and tag with the workflow token. ` +
|
|
75
|
+
`Required status checks on '${branch}' must live in a repository ruleset with a ` +
|
|
76
|
+
`bypass for GitHub Actions — classic branch protection cannot allow that push. ` +
|
|
77
|
+
`Run \`catladder project setup\` to migrate the merge gating, then rerun this job.`);
|
|
78
|
+
}
|
|
79
|
+
throw e;
|
|
80
|
+
}
|
|
63
81
|
return;
|
|
64
82
|
}
|
|
65
83
|
const token = requireEnv("GL_TOKEN");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changesetsReleaseJob.js","sourceRoot":"","sources":["../../../../../src/release/changesetsReleaseJob.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,2BAAgC;AAChC,0CAA+D;AAC/D,+BAA4B;AAE5B,6CAMsB;AACtB,6CAA4E;AAC5E,+CAAkD;AAElD,MAAM,aAAa,GAAG,YAAY,CAAC;AACnC,MAAM,cAAc,GAAG,cAAc,CAAC;AAEtC;;;;GAIG;AACH,MAAM,8BAA8B,GAAG,uBAAuB,CAAC;AAExD,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE;IAC9C,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CACrE,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACvB,IAAA,+BAAkB,EAChB,IAAI,EACJ,MAAM,IAAA,mBAAQ,EAAC,IAAA,WAAI,EAAC,aAAa,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CACnD,CACF,CACF,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,qBAAqB,yBAahC;AAEF,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;IACnC,MAAM,KAAK,GAAG,MAAM,IAAA,gBAAG,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO;IACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC;IACvD,MAAM,IAAA,gBAAG,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAC/C,CAAC;IACF,MAAM,IAAA,gBAAG,EACP,QAAQ,EACR,YAAY,EACZ,QAAQ;QACN,CAAC,CAAC,uDAAuD;QACzD,CAAC,CAAC,6BAA6B,CAClC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,uCAAuC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"changesetsReleaseJob.js","sourceRoot":"","sources":["../../../../../src/release/changesetsReleaseJob.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,4 +34,4 @@ export declare const setGithubVariable: (repo: string, name: string, value: stri
|
|
|
34
34
|
*/
|
|
35
35
|
export declare const ensureGithubEnvironment: (repo: string, environment: string) => Promise<void>;
|
|
36
36
|
/** runs `gh api` with an optional JSON body and returns the parsed response */
|
|
37
|
-
export declare const ghApiJson: <T = any>(method: "GET" | "PATCH" | "PUT", path: string, body?: unknown) => Promise<T>;
|
|
37
|
+
export declare const ghApiJson: <T = any>(method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE", path: string, body?: unknown) => Promise<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../../src/utils/github.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../../src/utils/github.ts"],"names":[],"mappings":"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"}
|