pr-merge-queue 0.0.0-stage → 0.0.0
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/LICENSE +201 -0
- package/README.md +125 -2
- package/dist/claim-pr/claim-pr.d.mts +45 -0
- package/dist/claim-pr/claim-pr.d.mts.map +1 -0
- package/dist/claim-pr/claim-pr.mjs +217 -0
- package/dist/claim-pr/claim-pr.mjs.map +1 -0
- package/dist/claim-pr/index.d.mts +2 -0
- package/dist/claim-pr/index.d.mts.map +1 -0
- package/dist/claim-pr/index.mjs +2 -0
- package/dist/claim-pr/index.mjs.map +1 -0
- package/dist/cmd/claim-pr.d.mts +3 -0
- package/dist/cmd/claim-pr.d.mts.map +1 -0
- package/dist/cmd/claim-pr.mjs +20 -0
- package/dist/cmd/claim-pr.mjs.map +1 -0
- package/dist/cmd/open-pr.d.mts +3 -0
- package/dist/cmd/open-pr.d.mts.map +1 -0
- package/dist/cmd/open-pr.mjs +20 -0
- package/dist/cmd/open-pr.mjs.map +1 -0
- package/dist/cmd/pr-report.d.mts +3 -0
- package/dist/cmd/pr-report.d.mts.map +1 -0
- package/dist/cmd/pr-report.mjs +20 -0
- package/dist/cmd/pr-report.mjs.map +1 -0
- package/dist/cmd/push-fixed-pr.d.mts +3 -0
- package/dist/cmd/push-fixed-pr.d.mts.map +1 -0
- package/dist/cmd/push-fixed-pr.mjs +20 -0
- package/dist/cmd/push-fixed-pr.mjs.map +1 -0
- package/dist/cmd/report-unowned-prs.d.mts +3 -0
- package/dist/cmd/report-unowned-prs.d.mts.map +1 -0
- package/dist/cmd/report-unowned-prs.mjs +20 -0
- package/dist/cmd/report-unowned-prs.mjs.map +1 -0
- package/dist/cmd/unblock-prs.d.mts +3 -0
- package/dist/cmd/unblock-prs.d.mts.map +1 -0
- package/dist/cmd/unblock-prs.mjs +19 -0
- package/dist/cmd/unblock-prs.mjs.map +1 -0
- package/dist/entry-point.d.mts +3 -0
- package/dist/entry-point.d.mts.map +1 -0
- package/dist/entry-point.mjs +3 -0
- package/dist/entry-point.mjs.map +1 -0
- package/dist/lib/cli-args.d.mts +27 -0
- package/dist/lib/cli-args.d.mts.map +1 -0
- package/dist/lib/cli-args.mjs +55 -0
- package/dist/lib/cli-args.mjs.map +1 -0
- package/dist/lib/github-api.d.mts +153 -0
- package/dist/lib/github-api.d.mts.map +1 -0
- package/dist/lib/github-api.mjs +291 -0
- package/dist/lib/github-api.mjs.map +1 -0
- package/dist/lib/index.d.mts +7 -0
- package/dist/lib/index.d.mts.map +1 -0
- package/dist/lib/index.mjs +7 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/json.d.mts +12 -0
- package/dist/lib/json.d.mts.map +1 -0
- package/dist/lib/json.mjs +28 -0
- package/dist/lib/json.mjs.map +1 -0
- package/dist/lib/log.d.mts +10 -0
- package/dist/lib/log.d.mts.map +1 -0
- package/dist/lib/log.mjs +13 -0
- package/dist/lib/log.mjs.map +1 -0
- package/dist/lib/shell.d.mts +18 -0
- package/dist/lib/shell.d.mts.map +1 -0
- package/dist/lib/shell.mjs +42 -0
- package/dist/lib/shell.mjs.map +1 -0
- package/dist/lib/time.d.mts +17 -0
- package/dist/lib/time.d.mts.map +1 -0
- package/dist/lib/time.mjs +35 -0
- package/dist/lib/time.mjs.map +1 -0
- package/dist/open-pr/github.d.mts +72 -0
- package/dist/open-pr/github.d.mts.map +1 -0
- package/dist/open-pr/github.mjs +249 -0
- package/dist/open-pr/github.mjs.map +1 -0
- package/dist/open-pr/index.d.mts +6 -0
- package/dist/open-pr/index.d.mts.map +1 -0
- package/dist/open-pr/index.mjs +6 -0
- package/dist/open-pr/index.mjs.map +1 -0
- package/dist/open-pr/main.d.mts +36 -0
- package/dist/open-pr/main.d.mts.map +1 -0
- package/dist/open-pr/main.mjs +204 -0
- package/dist/open-pr/main.mjs.map +1 -0
- package/dist/open-pr/options.d.mts +20 -0
- package/dist/open-pr/options.d.mts.map +1 -0
- package/dist/open-pr/options.mjs +66 -0
- package/dist/open-pr/options.mjs.map +1 -0
- package/dist/open-pr/steps.d.mts +23 -0
- package/dist/open-pr/steps.d.mts.map +1 -0
- package/dist/open-pr/steps.mjs +38 -0
- package/dist/open-pr/steps.mjs.map +1 -0
- package/dist/open-pr/types.d.mts +179 -0
- package/dist/open-pr/types.d.mts.map +1 -0
- package/dist/open-pr/types.mjs +20 -0
- package/dist/open-pr/types.mjs.map +1 -0
- package/dist/pr-report/github.d.mts +59 -0
- package/dist/pr-report/github.d.mts.map +1 -0
- package/dist/pr-report/github.mjs +561 -0
- package/dist/pr-report/github.mjs.map +1 -0
- package/dist/pr-report/index.d.mts +8 -0
- package/dist/pr-report/index.d.mts.map +1 -0
- package/dist/pr-report/index.mjs +8 -0
- package/dist/pr-report/index.mjs.map +1 -0
- package/dist/pr-report/linked-issues.d.mts +15 -0
- package/dist/pr-report/linked-issues.d.mts.map +1 -0
- package/dist/pr-report/linked-issues.mjs +39 -0
- package/dist/pr-report/linked-issues.mjs.map +1 -0
- package/dist/pr-report/main.d.mts +42 -0
- package/dist/pr-report/main.d.mts.map +1 -0
- package/dist/pr-report/main.mjs +163 -0
- package/dist/pr-report/main.mjs.map +1 -0
- package/dist/pr-report/options.d.mts +36 -0
- package/dist/pr-report/options.d.mts.map +1 -0
- package/dist/pr-report/options.mjs +90 -0
- package/dist/pr-report/options.mjs.map +1 -0
- package/dist/pr-report/queue.d.mts +28 -0
- package/dist/pr-report/queue.d.mts.map +1 -0
- package/dist/pr-report/queue.mjs +74 -0
- package/dist/pr-report/queue.mjs.map +1 -0
- package/dist/pr-report/render.d.mts +14 -0
- package/dist/pr-report/render.d.mts.map +1 -0
- package/dist/pr-report/render.mjs +318 -0
- package/dist/pr-report/render.mjs.map +1 -0
- package/dist/pr-report/repo-settings.d.mts +12 -0
- package/dist/pr-report/repo-settings.d.mts.map +1 -0
- package/dist/pr-report/repo-settings.mjs +22 -0
- package/dist/pr-report/repo-settings.mjs.map +1 -0
- package/dist/push-fixed-pr/index.d.mts +2 -0
- package/dist/push-fixed-pr/index.d.mts.map +1 -0
- package/dist/push-fixed-pr/index.mjs +2 -0
- package/dist/push-fixed-pr/index.mjs.map +1 -0
- package/dist/push-fixed-pr/push-fixed-pr.d.mts +54 -0
- package/dist/push-fixed-pr/push-fixed-pr.d.mts.map +1 -0
- package/dist/push-fixed-pr/push-fixed-pr.mjs +172 -0
- package/dist/push-fixed-pr/push-fixed-pr.mjs.map +1 -0
- package/dist/report-unowned-prs/index.d.mts +2 -0
- package/dist/report-unowned-prs/index.d.mts.map +1 -0
- package/dist/report-unowned-prs/index.mjs +2 -0
- package/dist/report-unowned-prs/index.mjs.map +1 -0
- package/dist/report-unowned-prs/report-unowned-prs.d.mts +49 -0
- package/dist/report-unowned-prs/report-unowned-prs.d.mts.map +1 -0
- package/dist/report-unowned-prs/report-unowned-prs.mjs +127 -0
- package/dist/report-unowned-prs/report-unowned-prs.mjs.map +1 -0
- package/dist/tsconfig.json +1 -0
- package/dist/unblock-prs/auto-fix.d.mts +45 -0
- package/dist/unblock-prs/auto-fix.d.mts.map +1 -0
- package/dist/unblock-prs/auto-fix.mjs +207 -0
- package/dist/unblock-prs/auto-fix.mjs.map +1 -0
- package/dist/unblock-prs/checks.d.mts +307 -0
- package/dist/unblock-prs/checks.d.mts.map +1 -0
- package/dist/unblock-prs/checks.mjs +372 -0
- package/dist/unblock-prs/checks.mjs.map +1 -0
- package/dist/unblock-prs/claims.d.mts +21 -0
- package/dist/unblock-prs/claims.d.mts.map +1 -0
- package/dist/unblock-prs/claims.mjs +23 -0
- package/dist/unblock-prs/claims.mjs.map +1 -0
- package/dist/unblock-prs/config.d.mts +487 -0
- package/dist/unblock-prs/config.d.mts.map +1 -0
- package/dist/unblock-prs/config.mjs +119 -0
- package/dist/unblock-prs/config.mjs.map +1 -0
- package/dist/unblock-prs/constants.d.mts +28 -0
- package/dist/unblock-prs/constants.d.mts.map +1 -0
- package/dist/unblock-prs/constants.mjs +28 -0
- package/dist/unblock-prs/constants.mjs.map +1 -0
- package/dist/unblock-prs/demotions.d.mts +42 -0
- package/dist/unblock-prs/demotions.d.mts.map +1 -0
- package/dist/unblock-prs/demotions.mjs +50 -0
- package/dist/unblock-prs/demotions.mjs.map +1 -0
- package/dist/unblock-prs/github.d.mts +739 -0
- package/dist/unblock-prs/github.d.mts.map +1 -0
- package/dist/unblock-prs/github.mjs +626 -0
- package/dist/unblock-prs/github.mjs.map +1 -0
- package/dist/unblock-prs/index.d.mts +25 -0
- package/dist/unblock-prs/index.d.mts.map +1 -0
- package/dist/unblock-prs/index.mjs +25 -0
- package/dist/unblock-prs/index.mjs.map +1 -0
- package/dist/unblock-prs/labels.d.mts +49 -0
- package/dist/unblock-prs/labels.d.mts.map +1 -0
- package/dist/unblock-prs/labels.mjs +49 -0
- package/dist/unblock-prs/labels.mjs.map +1 -0
- package/dist/unblock-prs/main.d.mts +179 -0
- package/dist/unblock-prs/main.d.mts.map +1 -0
- package/dist/unblock-prs/main.mjs +640 -0
- package/dist/unblock-prs/main.mjs.map +1 -0
- package/dist/unblock-prs/merge-after.d.mts +46 -0
- package/dist/unblock-prs/merge-after.d.mts.map +1 -0
- package/dist/unblock-prs/merge-after.mjs +65 -0
- package/dist/unblock-prs/merge-after.mjs.map +1 -0
- package/dist/unblock-prs/options.d.mts +35 -0
- package/dist/unblock-prs/options.d.mts.map +1 -0
- package/dist/unblock-prs/options.mjs +88 -0
- package/dist/unblock-prs/options.mjs.map +1 -0
- package/dist/unblock-prs/owner.d.mts +32 -0
- package/dist/unblock-prs/owner.d.mts.map +1 -0
- package/dist/unblock-prs/owner.mjs +63 -0
- package/dist/unblock-prs/owner.mjs.map +1 -0
- package/dist/unblock-prs/quiet.d.mts +21 -0
- package/dist/unblock-prs/quiet.d.mts.map +1 -0
- package/dist/unblock-prs/quiet.mjs +42 -0
- package/dist/unblock-prs/quiet.mjs.map +1 -0
- package/dist/unblock-prs/rebase.d.mts +120 -0
- package/dist/unblock-prs/rebase.d.mts.map +1 -0
- package/dist/unblock-prs/rebase.mjs +576 -0
- package/dist/unblock-prs/rebase.mjs.map +1 -0
- package/dist/unblock-prs/release.d.mts +62 -0
- package/dist/unblock-prs/release.d.mts.map +1 -0
- package/dist/unblock-prs/release.mjs +94 -0
- package/dist/unblock-prs/release.mjs.map +1 -0
- package/dist/unblock-prs/set-aside-comment.d.mts +20 -0
- package/dist/unblock-prs/set-aside-comment.d.mts.map +1 -0
- package/dist/unblock-prs/set-aside-comment.mjs +93 -0
- package/dist/unblock-prs/set-aside-comment.mjs.map +1 -0
- package/dist/unblock-prs/set-aside-detail.d.mts +41 -0
- package/dist/unblock-prs/set-aside-detail.d.mts.map +1 -0
- package/dist/unblock-prs/set-aside-detail.mjs +56 -0
- package/dist/unblock-prs/set-aside-detail.mjs.map +1 -0
- package/dist/unblock-prs/skips.d.mts +85 -0
- package/dist/unblock-prs/skips.d.mts.map +1 -0
- package/dist/unblock-prs/skips.mjs +141 -0
- package/dist/unblock-prs/skips.mjs.map +1 -0
- package/dist/unblock-prs/stack.d.mts +98 -0
- package/dist/unblock-prs/stack.d.mts.map +1 -0
- package/dist/unblock-prs/stack.mjs +141 -0
- package/dist/unblock-prs/stack.mjs.map +1 -0
- package/dist/unblock-prs/triage.d.mts +28 -0
- package/dist/unblock-prs/triage.d.mts.map +1 -0
- package/dist/unblock-prs/triage.mjs +396 -0
- package/dist/unblock-prs/triage.mjs.map +1 -0
- package/dist/unblock-prs/types.d.mts +793 -0
- package/dist/unblock-prs/types.d.mts.map +1 -0
- package/dist/unblock-prs/types.mjs +26 -0
- package/dist/unblock-prs/types.mjs.map +1 -0
- package/dist/unblock-prs/util.d.mts +23 -0
- package/dist/unblock-prs/util.d.mts.map +1 -0
- package/dist/unblock-prs/util.mjs +60 -0
- package/dist/unblock-prs/util.mjs.map +1 -0
- package/dist/unblock-prs/version-pr.d.mts +57 -0
- package/dist/unblock-prs/version-pr.d.mts.map +1 -0
- package/dist/unblock-prs/version-pr.mjs +79 -0
- package/dist/unblock-prs/version-pr.mjs.map +1 -0
- package/dist/unblock-prs/watch.d.mts +17 -0
- package/dist/unblock-prs/watch.d.mts.map +1 -0
- package/dist/unblock-prs/watch.mjs +128 -0
- package/dist/unblock-prs/watch.mjs.map +1 -0
- package/package.json +118 -3
- package/src/claim-pr/claim-pr.mts +380 -0
- package/src/claim-pr/claim-pr.test.mts +176 -0
- package/src/claim-pr/index.mts +1 -0
- package/src/cmd/claim-pr.mts +32 -0
- package/src/cmd/open-pr.mts +28 -0
- package/src/cmd/pr-report.mts +28 -0
- package/src/cmd/push-fixed-pr.mts +36 -0
- package/src/cmd/report-unowned-prs.mts +37 -0
- package/src/cmd/unblock-prs.mts +24 -0
- package/src/entry-point.mts +3 -0
- package/src/lib/cli-args.mts +86 -0
- package/src/lib/cli-args.test.mts +92 -0
- package/src/lib/github-api.mts +463 -0
- package/src/lib/github-api.test.mts +40 -0
- package/src/lib/index.mts +6 -0
- package/src/lib/json.mts +43 -0
- package/src/lib/json.test.mts +34 -0
- package/src/lib/log.mts +19 -0
- package/src/lib/log.test.mts +45 -0
- package/src/lib/shell.mts +52 -0
- package/src/lib/time.mts +49 -0
- package/src/open-pr/README.md +237 -0
- package/src/open-pr/github.mts +444 -0
- package/src/open-pr/index.mts +5 -0
- package/src/open-pr/main.mts +327 -0
- package/src/open-pr/options.mts +101 -0
- package/src/open-pr/options.test.mts +67 -0
- package/src/open-pr/steps.mts +57 -0
- package/src/open-pr/steps.test.mts +59 -0
- package/src/open-pr/types.mts +42 -0
- package/src/pr-report/README.md +244 -0
- package/src/pr-report/github.mts +911 -0
- package/src/pr-report/index.mts +7 -0
- package/src/pr-report/linked-issues.mts +51 -0
- package/src/pr-report/linked-issues.test.mts +65 -0
- package/src/pr-report/main.mts +257 -0
- package/src/pr-report/options.mts +140 -0
- package/src/pr-report/queue.mts +125 -0
- package/src/pr-report/render.mts +428 -0
- package/src/pr-report/render.test.mts +379 -0
- package/src/pr-report/repo-settings.mts +34 -0
- package/src/push-fixed-pr/index.mts +1 -0
- package/src/push-fixed-pr/push-fixed-pr.mts +276 -0
- package/src/push-fixed-pr/push-fixed-pr.test.mts +228 -0
- package/src/report-unowned-prs/index.mts +1 -0
- package/src/report-unowned-prs/report-unowned-prs.mts +190 -0
- package/src/report-unowned-prs/report-unowned-prs.test.mts +87 -0
- package/src/unblock-prs/README.md +1616 -0
- package/src/unblock-prs/auto-fix.mts +334 -0
- package/src/unblock-prs/auto-fix.test.mts +159 -0
- package/src/unblock-prs/checks.mts +538 -0
- package/src/unblock-prs/checks.test.mts +507 -0
- package/src/unblock-prs/claims.mts +33 -0
- package/src/unblock-prs/claims.test.mts +64 -0
- package/src/unblock-prs/config.mts +187 -0
- package/src/unblock-prs/config.schema.json +71 -0
- package/src/unblock-prs/config.test.mts +139 -0
- package/src/unblock-prs/constants.mts +33 -0
- package/src/unblock-prs/demotions.mts +73 -0
- package/src/unblock-prs/demotions.test.mts +100 -0
- package/src/unblock-prs/github.mts +1042 -0
- package/src/unblock-prs/github.test.mts +84 -0
- package/src/unblock-prs/index.mts +24 -0
- package/src/unblock-prs/labels.mts +70 -0
- package/src/unblock-prs/main.mts +1051 -0
- package/src/unblock-prs/merge-after.mts +117 -0
- package/src/unblock-prs/merge-after.test.mts +120 -0
- package/src/unblock-prs/options.mts +157 -0
- package/src/unblock-prs/owner.mts +91 -0
- package/src/unblock-prs/owner.test.mts +114 -0
- package/src/unblock-prs/quiet.mts +62 -0
- package/src/unblock-prs/quiet.test.mts +175 -0
- package/src/unblock-prs/rebase.mts +962 -0
- package/src/unblock-prs/release.mts +149 -0
- package/src/unblock-prs/release.test.mts +209 -0
- package/src/unblock-prs/set-aside-comment.mts +143 -0
- package/src/unblock-prs/set-aside-comment.test.mts +148 -0
- package/src/unblock-prs/set-aside-detail.mts +82 -0
- package/src/unblock-prs/set-aside-detail.test.mts +131 -0
- package/src/unblock-prs/skips.mts +215 -0
- package/src/unblock-prs/skips.test.mts +280 -0
- package/src/unblock-prs/stack.mts +220 -0
- package/src/unblock-prs/stack.test.mts +449 -0
- package/src/unblock-prs/triage.mts +669 -0
- package/src/unblock-prs/triage.test.mts +100 -0
- package/src/unblock-prs/types.mts +358 -0
- package/src/unblock-prs/util.mts +78 -0
- package/src/unblock-prs/util.test.mts +26 -0
- package/src/unblock-prs/version-pr.mts +112 -0
- package/src/unblock-prs/version-pr.test.mts +78 -0
- package/src/unblock-prs/watch.mts +219 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../src/unblock-prs/types.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
import * as t from 'ts-fortress';
|
|
3
|
+
|
|
4
|
+
export const PullRequestSchema = t.record({
|
|
5
|
+
number: t.number(),
|
|
6
|
+
|
|
7
|
+
id: t.string(),
|
|
8
|
+
title: t.string(),
|
|
9
|
+
|
|
10
|
+
body: t.string(),
|
|
11
|
+
state: t.string(),
|
|
12
|
+
headRefName: t.string(),
|
|
13
|
+
headRefOid: t.string(),
|
|
14
|
+
baseRefName: t.string(),
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
isCrossRepository: t.boolean(),
|
|
20
|
+
isDraft: t.boolean(),
|
|
21
|
+
mergeStateStatus: t.string(),
|
|
22
|
+
autoMergeRequest: t.unknown(),
|
|
23
|
+
labels: t.array(t.record({ name: t.string() })),
|
|
24
|
+
});
|
|
25
|
+
export const PullRequestListSchema = t.array(PullRequestSchema);
|
|
26
|
+
//# sourceMappingURL=types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../src/unblock-prs/types.mts"],"names":[],"mappings":"AAAA,mCAAmC;AAanC,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAGjC,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,0EAA0E;IAC1E,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,uDAAuD;IACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB;;;OAGG;IACH,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAChD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The small things every other module here needs: the stop signal and what
|
|
3
|
+
* listens to it. Quoting and logging are shared with the other commands, in
|
|
4
|
+
* `tools/scripts/lib/`.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Read through a call rather than directly, because the flag flips inside a
|
|
8
|
+
* signal handler and TypeScript would otherwise narrow it to `false` for the
|
|
9
|
+
* rest of any block that has already tested it.
|
|
10
|
+
*/
|
|
11
|
+
export declare const stopRequested: () => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The SHA `git ls-remote` lists for `branch`, by its whole ref name. A ref
|
|
14
|
+
* pattern given to `ls-remote` matches on the tail of the name, so
|
|
15
|
+
* `ls-remote origin main` lists `refs/heads/changeset-release/main` too, and
|
|
16
|
+
* first; the first line is not the branch asked for.
|
|
17
|
+
*/
|
|
18
|
+
export declare const headShaFromListing: (listing: string, branch: string) => string | undefined;
|
|
19
|
+
export declare const lastLines: (text: string, count: number) => string;
|
|
20
|
+
/** Sleeps, returning early when a stop has been requested. */
|
|
21
|
+
export declare const pause: (ms: number) => Promise<void>;
|
|
22
|
+
export declare const installStopHandlers: () => void;
|
|
23
|
+
//# sourceMappingURL=util.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.mts","sourceRoot":"","sources":["../../src/unblock-prs/util.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAO,OAAwC,CAAC;AAE1E;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YACpB,MAAM,UACP,MAAM,KACb,MAAM,GAAG,SAI+C,CAAC;AAE5D,eAAO,MAAM,SAAS,SAAU,MAAM,SAAS,MAAM,KAAG,MACN,CAAC;AAEnD,8DAA8D;AAC9D,eAAO,MAAM,KAAK,OAAc,MAAM,KAAG,OAAO,CAAC,IAAI,CAQpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,IAItC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
import { setTimeout as sleep } from 'node:timers/promises';
|
|
7
|
+
import { log } from '../lib/index.mjs';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
const stopController = new AbortController();
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
export const stopRequested = () => stopController.signal.aborted;
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
export const headShaFromListing = (listing, branch) => listing
|
|
37
|
+
.split('\n')
|
|
38
|
+
.map((line) => line.trim().split(/\s+/u))
|
|
39
|
+
.find(([, ref]) => ref === `refs/heads/${branch}`)?.[0];
|
|
40
|
+
export const lastLines = (text, count) => text.trim().split('\n').slice(-count).join('\n');
|
|
41
|
+
|
|
42
|
+
export const pause = async (ms) => {
|
|
43
|
+
if (stopRequested()) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
await sleep(ms, undefined, { signal: stopController.signal }).catch(() => undefined);
|
|
47
|
+
};
|
|
48
|
+
export const installStopHandlers = () => {
|
|
49
|
+
process.once('SIGINT', onSignal);
|
|
50
|
+
process.once('SIGTERM', onSignal);
|
|
51
|
+
};
|
|
52
|
+
const onSignal = (signal) => {
|
|
53
|
+
log(`${signal}: finishing the current step, then stopping.`);
|
|
54
|
+
stopController.abort();
|
|
55
|
+
|
|
56
|
+
process.once(signal, () => {
|
|
57
|
+
process.exit(130);
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=util.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.mjs","sourceRoot":"","sources":["../../src/unblock-prs/util.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC;;;;;;;;;;;;;;GAcG;AACH,MAAM,cAAc,GAAG,IAAI,eAAe,EAAE,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAe,EACf,MAAc,EACM,EAAE,CACtB,OAAO;KACJ,KAAK,CAAC,IAAI,CAAC;KACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACxC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE,CAC/D,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEnD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE;IACvD,IAAI,aAAa,EAAE,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,MAAM,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CACjE,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAS,EAAE;IAC5C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAQ,EAAE;IAChD,GAAG,CAAC,GAAG,MAAM,8CAA8C,CAAC,CAAC;IAE7D,cAAc,CAAC,KAAK,EAAE,CAAC;IAEvB,+CAA+C;IAC/C,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The version pull request — `changeset-release/<base>`, opened and rewritten
|
|
3
|
+
* by `changesets/action` — and what holds it back.
|
|
4
|
+
*
|
|
5
|
+
* It is the one pull request here that is derived rather than written. On
|
|
6
|
+
* every push to the base the release workflow rebuilds the branch from the
|
|
7
|
+
* tip, force-pushes it, and overwrites the title and body through
|
|
8
|
+
* `updatePullRequest`. Two consequences shape everything in this file:
|
|
9
|
+
*
|
|
10
|
+
* - **Nothing written in its body survives.** A `Merge-After:` trailer put
|
|
11
|
+
* there is wiped by the next push to the base — which, when several pull
|
|
12
|
+
* requests are queued, is exactly while the ordering still mattered. So the
|
|
13
|
+
* ordering is declared from the other side, with `blocks-release` on the
|
|
14
|
+
* pull request the release is waiting for.
|
|
15
|
+
* - **It must not be rebased.** `unblock-prs` and the release workflow would
|
|
16
|
+
* be two things force-pushing one branch. Worse, a rebase lands the old
|
|
17
|
+
* version commit on a tip that carries a changeset it never consumed, so
|
|
18
|
+
* what merges is a release missing the change the queue was assembled for.
|
|
19
|
+
* Whether the branch is ready is not this script's to fix: it is the
|
|
20
|
+
* release workflow's, and the only thing to do here is wait for it.
|
|
21
|
+
*/
|
|
22
|
+
import { Result } from 'ts-data-forge';
|
|
23
|
+
import type { Classification, PullRequest, TriageContext } from './types.mjs';
|
|
24
|
+
/**
|
|
25
|
+
* Whether this is the version pull request, by the branch it comes from
|
|
26
|
+
* (`isVersionBranch`).
|
|
27
|
+
*/
|
|
28
|
+
export declare const isVersionPullRequest: (pr: PullRequest, defaultBranch: string) => boolean;
|
|
29
|
+
/**
|
|
30
|
+
* What to report while pull requests labelled `blocks-release` are open.
|
|
31
|
+
* Nothing here can clear it: a `blocks-release` pull request ends when a
|
|
32
|
+
* person merges or closes it.
|
|
33
|
+
*/
|
|
34
|
+
export declare const releaseBlockedNote: (pr: PullRequest, by: readonly Readonly<{
|
|
35
|
+
number: number;
|
|
36
|
+
isDraft: boolean;
|
|
37
|
+
}>[]) => Classification;
|
|
38
|
+
/**
|
|
39
|
+
* What to report while the branch was built on a stale tip, which the
|
|
40
|
+
* release workflow's next run rebuilds.
|
|
41
|
+
*/
|
|
42
|
+
export declare const releaseStaleNote: (pr: PullRequest, context: Readonly<{
|
|
43
|
+
defaultBranch: string;
|
|
44
|
+
baseSha: string;
|
|
45
|
+
}>) => Classification;
|
|
46
|
+
/**
|
|
47
|
+
* Whether the branch was built on the current tip of the base — the question
|
|
48
|
+
* `mergeStateStatus` is asked everywhere else here, asked of git instead —
|
|
49
|
+
* or, when git cannot say, the note to report.
|
|
50
|
+
*
|
|
51
|
+
* GitHub's answer is computed asynchronously and cached, and being wrong
|
|
52
|
+
* about this one releases a set the branch was built before, so it is worth
|
|
53
|
+
* a fetch. `git merge-base` rather than `--is-ancestor`, whose "no" is an
|
|
54
|
+
* exit status this module could not tell apart from a git that failed.
|
|
55
|
+
*/
|
|
56
|
+
export declare const isRebuiltOnBaseTip: (pr: PullRequest, context: TriageContext) => Promise<Result<boolean, Classification>>;
|
|
57
|
+
//# sourceMappingURL=version-pr.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-pr.d.mts","sourceRoot":"","sources":["../../src/unblock-prs/version-pr.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG9E;;;GAGG;AACH,eAAO,MAAM,oBAAoB,OAC3B,WAAW,iBACA,MAAM,KACpB,OAAyD,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,OACzB,WAAW,MACX,SAAS,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EAAE,KAC5D,cAQU,CAAC;AAEd;;;GAGG;AACH,eAAO,MAAM,gBAAgB,OACvB,WAAW,WACN,QAAQ,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,KAC5D,cAIU,CAAC;AAEd;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,OACzB,WAAW,WACN,aAAa,KACrB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CASzC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
import { BLOCKS_RELEASE_LABEL, isVersionBranch } from 'pr-report-core';
|
|
23
|
+
import { Result } from 'ts-data-forge';
|
|
24
|
+
import { git, sh } from '../lib/index.mjs';
|
|
25
|
+
import { lastLines } from './util.mjs';
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
export const isVersionPullRequest = (pr, defaultBranch) => isVersionBranch(pr.headRefName, defaultBranch);
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
export const releaseBlockedNote = (pr, by) => ({
|
|
37
|
+
kind: 'note',
|
|
38
|
+
note: `#${pr.number}: ${BLOCKS_RELEASE_LABEL} on ${by
|
|
39
|
+
.map((blocker) => `#${blocker.number}${blocker.isDraft ? ' (draft)' : ''}`)
|
|
40
|
+
.join(', ')} — still open, so the release waits`,
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
export const releaseStaleNote = (pr, context) => ({
|
|
47
|
+
kind: 'note',
|
|
48
|
+
note: `#${pr.number}: built before ${context.defaultBranch} reached ${context.baseSha.slice(0, 10)}; waiting for the release workflow to rebuild it`,
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
export const isRebuiltOnBaseTip = async (pr, context) => {
|
|
61
|
+
const answered = await mergeBaseIsTip(pr, context);
|
|
62
|
+
return Result.isErr(answered)
|
|
63
|
+
? Result.err({
|
|
64
|
+
kind: 'note',
|
|
65
|
+
note: `#${pr.number}: cannot tell whether it was rebuilt on ${context.baseSha.slice(0, 10)}: ${answered.value}`,
|
|
66
|
+
})
|
|
67
|
+
: answered;
|
|
68
|
+
};
|
|
69
|
+
const mergeBaseIsTip = async (pr, context) => {
|
|
70
|
+
const fetched = await git(`git fetch --quiet origin ${sh(context.defaultBranch)} ${sh(pr.headRefName)}`);
|
|
71
|
+
if (Result.isErr(fetched)) {
|
|
72
|
+
return Result.err(`fetch failed: ${lastLines(fetched.value, 2)}`);
|
|
73
|
+
}
|
|
74
|
+
const mergeBase = await git(`git merge-base ${sh(context.baseSha)} ${sh(pr.headRefOid)}`);
|
|
75
|
+
return Result.isErr(mergeBase)
|
|
76
|
+
? Result.err(`merge-base failed: ${lastLines(mergeBase.value, 2)}`)
|
|
77
|
+
: Result.ok(mergeBase.value.trim() === context.baseSha);
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=version-pr.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-pr.mjs","sourceRoot":"","sources":["../../src/unblock-prs/version-pr.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Polling one pull request until it merges, or until it will not. */
|
|
2
|
+
import { type ApiContext } from '../lib/index.mjs';
|
|
3
|
+
import type { Options } from './options.mjs';
|
|
4
|
+
import type { PullRequest, Watched } from './types.mjs';
|
|
5
|
+
/**
|
|
6
|
+
* Polls one pull request until it merges or until something says it will not.
|
|
7
|
+
* `expectedHead` is the commit the checks are expected on; a different head
|
|
8
|
+
* means someone else pushed, and the survey has to start over.
|
|
9
|
+
*
|
|
10
|
+
* `bypassReason` is set for a pull request only a ruleset bypass merges
|
|
11
|
+
* (`pr-report-core`'s `review-hold.mts`). It has no auto-merge to lose, and
|
|
12
|
+
* nothing will merge it on green, so the watch ends at the verdict: failed as
|
|
13
|
+
* for any other, or green and `awaiting-bypass`, with the reason for the
|
|
14
|
+
* comment to say.
|
|
15
|
+
*/
|
|
16
|
+
export declare const watch: (api: ApiContext, pr: PullRequest, expectedHead: string, requiredContexts: readonly string[], options: Options, bypassReason: string | undefined) => Promise<Watched>;
|
|
17
|
+
//# sourceMappingURL=watch.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.mts","sourceRoot":"","sources":["../../src/unblock-prs/watch.mts"],"names":[],"mappings":"AAAA,sEAAsE;AAItE,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAgBxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAM7C,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGxD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,KAAK,QACX,UAAU,MACX,WAAW,gBACD,MAAM,oBACF,SAAS,MAAM,EAAE,WAC1B,OAAO,gBACF,MAAM,GAAG,SAAS,KAC/B,OAAO,CAAC,OAAO,CAiJjB,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
|
|
2
|
+
import { isMergeableState } from 'pr-report-core';
|
|
3
|
+
import { isRecord, Result } from 'ts-data-forge';
|
|
4
|
+
import { log } from '../lib/index.mjs';
|
|
5
|
+
import { describeWaitingOn, listRequiredChecks, listRunningChecks, summarizeChecks, } from './checks.mjs';
|
|
6
|
+
import { BLOCKED_GREEN_POLLS_BEFORE_GIVING_UP, GREEN_POLLS_BEFORE_GIVING_UP, MAX_CONSECUTIVE_POLL_ERRORS, } from './constants.mjs';
|
|
7
|
+
import { viewPullRequest, viewReviewDecision } from './github.mjs';
|
|
8
|
+
import { isSkipCiLabelled } from './labels.mjs';
|
|
9
|
+
import { describeFailedChecks, describeHold, describeTimeout, } from './set-aside-detail.mjs';
|
|
10
|
+
import { pause, stopRequested } from './util.mjs';
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
export const watch = async (api, pr, expectedHead, requiredContexts, options, bypassReason) => {
|
|
23
|
+
const deadline = Date.now() + options.watchTimeoutMin * 60_000;
|
|
24
|
+
let mut_greenPolls = 0;
|
|
25
|
+
let mut_errors = 0;
|
|
26
|
+
while (!stopRequested()) {
|
|
27
|
+
await pause(options.pollIntervalSec * 1000);
|
|
28
|
+
if (stopRequested()) {
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
const viewed = await viewPullRequest(api, pr.number);
|
|
32
|
+
if (Result.isErr(viewed)) {
|
|
33
|
+
mut_errors += 1;
|
|
34
|
+
log(`#${pr.number}: poll failed (${mut_errors}): ${viewed.value}`);
|
|
35
|
+
if (mut_errors >= MAX_CONSECUTIVE_POLL_ERRORS) {
|
|
36
|
+
return { outcome: 'error' };
|
|
37
|
+
}
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const current = viewed.value;
|
|
41
|
+
if (current.state === 'MERGED') {
|
|
42
|
+
return { outcome: 'merged' };
|
|
43
|
+
}
|
|
44
|
+
if (current.state !== 'OPEN') {
|
|
45
|
+
return { outcome: 'closed' };
|
|
46
|
+
}
|
|
47
|
+
if (bypassReason === undefined && !isRecord(current.autoMergeRequest)) {
|
|
48
|
+
return { outcome: 'auto-merge-disabled' };
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
if (isSkipCiLabelled(current)) {
|
|
54
|
+
return { outcome: 'skip-ci-labelled' };
|
|
55
|
+
}
|
|
56
|
+
if (current.headRefOid !== expectedHead) {
|
|
57
|
+
return { outcome: 'head-moved' };
|
|
58
|
+
}
|
|
59
|
+
if (current.mergeStateStatus === 'BEHIND' ||
|
|
60
|
+
current.mergeStateStatus === 'DIRTY') {
|
|
61
|
+
return { outcome: 'behind-again' };
|
|
62
|
+
}
|
|
63
|
+
const checks = await readChecks(api, pr.number);
|
|
64
|
+
if (Result.isErr(checks)) {
|
|
65
|
+
mut_errors += 1;
|
|
66
|
+
log(`#${pr.number}: poll failed (${mut_errors}): ${checks.value}`);
|
|
67
|
+
if (mut_errors >= MAX_CONSECUTIVE_POLL_ERRORS) {
|
|
68
|
+
return { outcome: 'error' };
|
|
69
|
+
}
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
mut_errors = 0;
|
|
73
|
+
const summary = summarizeChecks(checks.value.required, requiredContexts, checks.value.running);
|
|
74
|
+
if (summary.verdict === 'failing') {
|
|
75
|
+
const failed = describeFailedChecks(summary);
|
|
76
|
+
log(`#${pr.number}: ${failed.detail}`);
|
|
77
|
+
return { outcome: 'checks-failed', ...failed };
|
|
78
|
+
}
|
|
79
|
+
if (summary.verdict === 'pending') {
|
|
80
|
+
mut_greenPolls = 0;
|
|
81
|
+
log(`#${pr.number}: ${current.mergeStateStatus}, waiting on ${describeWaitingOn(summary)}`);
|
|
82
|
+
}
|
|
83
|
+
else if (bypassReason !== undefined) {
|
|
84
|
+
log(`#${pr.number}: all ${summary.required} required checks green; it waits for a bypass merge.`);
|
|
85
|
+
return {
|
|
86
|
+
outcome: 'awaiting-bypass',
|
|
87
|
+
detail: `every required check is green; ${bypassReason}`,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
mut_greenPolls += 1;
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
const budget = isMergeableState(current.mergeStateStatus)
|
|
96
|
+
? GREEN_POLLS_BEFORE_GIVING_UP
|
|
97
|
+
: BLOCKED_GREEN_POLLS_BEFORE_GIVING_UP;
|
|
98
|
+
log(`#${pr.number}: ${current.mergeStateStatus}, all ${summary.required} required checks green (${mut_greenPolls}/${budget}), waiting for auto-merge`);
|
|
99
|
+
if (mut_greenPolls >= budget) {
|
|
100
|
+
const reviewDecision = await viewReviewDecision(api, pr.number);
|
|
101
|
+
return {
|
|
102
|
+
outcome: 'not-merging',
|
|
103
|
+
detail: describeHold(current.mergeStateStatus, Result.isOk(reviewDecision) ? reviewDecision.value : undefined),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (Date.now() > deadline) {
|
|
108
|
+
log(`#${pr.number}: still waiting on ${describeWaitingOn(summary)} after ${options.watchTimeoutMin} minutes.`);
|
|
109
|
+
return {
|
|
110
|
+
outcome: 'timeout',
|
|
111
|
+
detail: describeTimeout(summary, options.watchTimeoutMin),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return { outcome: 'stopped' };
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
const readChecks = async (api, prNumber) => {
|
|
119
|
+
const required = await listRequiredChecks(api, prNumber);
|
|
120
|
+
if (Result.isErr(required)) {
|
|
121
|
+
return required;
|
|
122
|
+
}
|
|
123
|
+
const running = await listRunningChecks(api, prNumber);
|
|
124
|
+
return Result.isErr(running)
|
|
125
|
+
? running
|
|
126
|
+
: Result.ok({ required: required.value, running: running.value });
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=watch.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.mjs","sourceRoot":"","sources":["../../src/unblock-prs/watch.mts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,121 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pr-merge-queue",
|
|
3
|
-
"version": "0.0.0
|
|
4
|
-
"
|
|
5
|
-
"description": "
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "A merge queue for GitHub driven by labels and `Merge-After:` trailers: unblock-prs lands the queued pull requests one at a time, open-pr opens one the way the queue wants it, and pr-report, claim-pr, push-fixed-pr and report-unowned-prs read and hand over the queue",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"github",
|
|
8
|
+
"pull-request",
|
|
9
|
+
"merge-queue",
|
|
10
|
+
"stacked-pull-requests",
|
|
11
|
+
"cli"
|
|
12
|
+
],
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/noshiro-pf/mono.git",
|
|
16
|
+
"directory": "libs/pr-merge-queue"
|
|
17
|
+
},
|
|
18
|
+
"license": "Apache-2.0",
|
|
19
|
+
"author": "noshiro-pf <noshiro.pf@gmail.com>",
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"type": "module",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"import": {
|
|
25
|
+
"types": "./dist/entry-point.d.mts",
|
|
26
|
+
"default": "./dist/entry-point.mjs"
|
|
27
|
+
},
|
|
28
|
+
"default": {
|
|
29
|
+
"types": "./dist/entry-point.d.mts",
|
|
30
|
+
"default": "./dist/entry-point.mjs"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"module": "./dist/entry-point.mjs",
|
|
35
|
+
"types": "./dist/entry-point.d.mts",
|
|
36
|
+
"bin": {
|
|
37
|
+
"claim-pr": "./dist/cmd/claim-pr.mjs",
|
|
38
|
+
"open-pr": "./dist/cmd/open-pr.mjs",
|
|
39
|
+
"pr-report": "./dist/cmd/pr-report.mjs",
|
|
40
|
+
"push-fixed-pr": "./dist/cmd/push-fixed-pr.mjs",
|
|
41
|
+
"report-unowned-prs": "./dist/cmd/report-unowned-prs.mjs",
|
|
42
|
+
"unblock-prs": "./dist/cmd/unblock-prs.mjs"
|
|
43
|
+
},
|
|
44
|
+
"files": [
|
|
45
|
+
"src",
|
|
46
|
+
"dist",
|
|
47
|
+
"README.md",
|
|
48
|
+
"LICENSE"
|
|
49
|
+
],
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"dedent": "^1.7.2",
|
|
52
|
+
"pr-report-core": "^0.0.5",
|
|
53
|
+
"ts-data-forge": "^14.10.0",
|
|
54
|
+
"ts-fortress": "^12.4.0",
|
|
55
|
+
"ts-repo-utils": "^10.7.1",
|
|
56
|
+
"ts-type-forge": "^9.2.2"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@types/node": "26.6.5",
|
|
60
|
+
"@vitest/coverage-v8": "5.0.5",
|
|
61
|
+
"cspell": "10.4.0",
|
|
62
|
+
"eslint": "10.13.0",
|
|
63
|
+
"eslint-config-typed": "5.19.2",
|
|
64
|
+
"eslint-plugin-ts-data-forge": "0.10.3",
|
|
65
|
+
"eslint-plugin-ts-fortress": "1.3.8",
|
|
66
|
+
"eslint-plugin-ts-type-forge": "0.8.13",
|
|
67
|
+
"jiti": "2.7.0",
|
|
68
|
+
"npm-run-all2": "9.0.3",
|
|
69
|
+
"prettier": "3.9.10",
|
|
70
|
+
"prettier-plugin-organize-imports": "4.3.0",
|
|
71
|
+
"prettier-plugin-packagejson": "3.0.2",
|
|
72
|
+
"tsx": "4.23.15",
|
|
73
|
+
"typescript": "6.0.3",
|
|
74
|
+
"typescript-native": "npm:typescript@7.0.2",
|
|
75
|
+
"vite": "8.3.4",
|
|
76
|
+
"vitest": "5.0.5"
|
|
77
|
+
},
|
|
78
|
+
"engines": {
|
|
79
|
+
"node": ">=22.22.2",
|
|
80
|
+
"pnpm": ">=9.0.0"
|
|
81
|
+
},
|
|
82
|
+
"volta": {
|
|
83
|
+
"node": "26.12.1"
|
|
84
|
+
},
|
|
85
|
+
"publishConfig": {
|
|
86
|
+
"access": "public",
|
|
87
|
+
"provenance": true
|
|
88
|
+
},
|
|
89
|
+
"scripts": {
|
|
90
|
+
"build": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/build.mts",
|
|
91
|
+
"check:cspell": "cspell \"**\" --gitignore --gitignore-root ../../ --no-progress",
|
|
92
|
+
"check:dist": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/check-dist.mts",
|
|
93
|
+
"check:ext": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/check-ext.mts",
|
|
94
|
+
"check:lint": "node ../../tools/scripts/cmd/assert-deps-built.mts && oxlint . && eslint .",
|
|
95
|
+
"check:test": "node ../../tools/scripts/cmd/assert-deps-built.mts && pnpm run z:vitest:node run",
|
|
96
|
+
"check:test:cov": "node ../../tools/scripts/cmd/assert-deps-built.mts && pnpm run z:vitest:node run --coverage",
|
|
97
|
+
"check:types": "node ../../tools/scripts/cmd/assert-deps-built.mts && node ../../node_modules/typescript-native/bin/tsc --noEmit",
|
|
98
|
+
"doc": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/gen-docs.mts",
|
|
99
|
+
"fix:codemod": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-codemod-cli/src/cmd/ts-codemod.mts --uncommitted --transformer append-as-const --transformer convert-to-readonly '{src,scripts,samples}/**/*.mts' && pnpm run fix:fmt",
|
|
100
|
+
"fix:codemod:diff": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-codemod-cli/src/cmd/ts-codemod.mts --diff-from origin/main --transformer append-as-const --transformer convert-to-readonly '{src,scripts,samples}/**/*.mts' && pnpm run fix:fmt",
|
|
101
|
+
"fix:codemod:full": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-codemod-cli/src/cmd/ts-codemod.mts --transformer append-as-const --transformer convert-to-readonly '{src,scripts,samples}/**/*.mts' && pnpm run fix:fmt",
|
|
102
|
+
"fix:fmt": "pnpm run z:format-uncommitted --cwd .",
|
|
103
|
+
"fix:fmt:diff": "pnpm run z:format-diff-from origin/main --cwd .",
|
|
104
|
+
"fix:fmt:full": "prettier --write .",
|
|
105
|
+
"fix:lint": "node ../../tools/scripts/cmd/assert-deps-built.mts && oxlint . --fix && eslint . --fix",
|
|
106
|
+
"fmt": "pnpm run fix:fmt",
|
|
107
|
+
"gen": "run-s gen:index gen:config-schema gen:plugin-version",
|
|
108
|
+
"gen:config-schema": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/gen-config-schema.mts",
|
|
109
|
+
"gen:index": "run-s gen:index:src fix:fmt",
|
|
110
|
+
"gen:index:src": "pnpm run z:gen-index-ts ./src/lib,./src/open-pr,./src/unblock-prs,./src/pr-report,./src/claim-pr,./src/push-fixed-pr,./src/report-unowned-prs --index-ext .mts --export-ext .mjs --target-ext .mts",
|
|
111
|
+
"gen:plugin-version": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/gen-plugin-version.mts",
|
|
112
|
+
"test": "pnpm run check:test",
|
|
113
|
+
"watch:test": "pnpm run z:vitest:node watch",
|
|
114
|
+
"watch:types": "node ../../node_modules/typescript-native/bin/tsc --noEmit --watch -p ./tsconfig.json",
|
|
115
|
+
"z:format-diff-from": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-diff-from.mts",
|
|
116
|
+
"z:format-uncommitted": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-uncommitted.mts",
|
|
117
|
+
"z:gen-index-ts": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/gen-index-ts.mts",
|
|
118
|
+
"z:vitest": "vitest --config ./configs/vitest.config.mts",
|
|
119
|
+
"z:vitest:node": "pnpm run z:vitest --project='Node.js'"
|
|
120
|
+
}
|
|
6
121
|
}
|