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,576 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
import * as os from 'node:os';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { isSafeRefName, MERGE_QUEUED_LABEL, SKIP_CI_LABEL, stackDescendants, } from 'pr-report-core';
|
|
10
|
+
import { Arr, isRecord, Result } from 'ts-data-forge';
|
|
11
|
+
import { git, log, removeLabel, sh } from '../lib/index.mjs';
|
|
12
|
+
import { armAutoMerge, mergedHeadOf, readBaseChanges, remoteSha, removeWorktree, viewPullRequest, } from './github.mjs';
|
|
13
|
+
import { isMergeQueued, isSkipCiLabelled } from './labels.mjs';
|
|
14
|
+
import { describeCommandFailure, describeConflict, } from './set-aside-detail.mjs';
|
|
15
|
+
import { withSkip } from './skips.mjs';
|
|
16
|
+
import { autoRebaseTargets, restackable, retargetedFrom, retargetedLayers, stackParentsOf, } from './stack.mjs';
|
|
17
|
+
import { lastLines, stopRequested } from './util.mjs';
|
|
18
|
+
import { isVersionPullRequest } from './version-pr.mjs';
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
const rebaseAndPush = async (pr, target) => {
|
|
32
|
+
const branch = pr.headRefName;
|
|
33
|
+
const worktreeDir = path.join(os.tmpdir(), 'unblock-prs', `pr-${pr.number}`);
|
|
34
|
+
const rebaseFailed = (detail) => Result.err({ reason: 'rebase-failed', detail });
|
|
35
|
+
|
|
36
|
+
await removeWorktree(worktreeDir);
|
|
37
|
+
const fetched = await git(Arr.toUnshifted('git fetch --quiet origin')(Arr.toPushed(target.fetch, branch).map(sh)).join(' '));
|
|
38
|
+
if (Result.isErr(fetched)) {
|
|
39
|
+
return rebaseFailed(`fetch failed: ${fetched.value}`);
|
|
40
|
+
}
|
|
41
|
+
const remoteHead = await git(`git rev-parse ${sh(`origin/${branch}`)}`);
|
|
42
|
+
if (Result.isErr(remoteHead)) {
|
|
43
|
+
return rebaseFailed(`cannot resolve origin/${branch}: ${remoteHead.value}`);
|
|
44
|
+
}
|
|
45
|
+
if (remoteHead.value.trim() !== pr.headRefOid) {
|
|
46
|
+
return Result.ok({ kind: 'moved' });
|
|
47
|
+
}
|
|
48
|
+
const added = await git(`git worktree add --detach ${sh(worktreeDir)} ${sh(pr.headRefOid)}`);
|
|
49
|
+
if (Result.isErr(added)) {
|
|
50
|
+
return rebaseFailed(`checkout failed: ${added.value}`);
|
|
51
|
+
}
|
|
52
|
+
const result = await rebaseInWorktree(pr, target, worktreeDir);
|
|
53
|
+
await removeWorktree(worktreeDir);
|
|
54
|
+
return result;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
const rebaseInWorktree = async (pr, target, worktreeDir) => {
|
|
63
|
+
const branch = pr.headRefName;
|
|
64
|
+
const rebaseFailed = (detail, output) => Result.err({
|
|
65
|
+
reason: 'rebase-failed',
|
|
66
|
+
detail,
|
|
67
|
+
...(output === undefined ? {} : { output }),
|
|
68
|
+
});
|
|
69
|
+
const { upstream } = target;
|
|
70
|
+
const contained = upstream !== undefined &&
|
|
71
|
+
Result.isOk(await git(`git merge-base --is-ancestor ${sh(upstream.sha)} HEAD`, worktreeDir));
|
|
72
|
+
if (!contained && upstream?.required === true) {
|
|
73
|
+
return rebaseFailed(`it does not contain ${upstream.sha.slice(0, 10)}, the head it was stacked on, so which commits are its own cannot be told`);
|
|
74
|
+
}
|
|
75
|
+
const rebased = await git(contained
|
|
76
|
+
? `git rebase --onto ${sh(target.onto)} ${sh(upstream.sha)}`
|
|
77
|
+
: `git rebase ${sh(target.onto)}`, worktreeDir);
|
|
78
|
+
if (Result.isErr(rebased)) {
|
|
79
|
+
const conflicted = await git('git diff --name-only --diff-filter=U', worktreeDir);
|
|
80
|
+
await git('git rebase --abort', worktreeDir);
|
|
81
|
+
return rebaseFailed(describeConflict(Result.isOk(conflicted)
|
|
82
|
+
? conflicted.value.split('\n').filter((line) => line !== '')
|
|
83
|
+
: [], lastLines(rebased.value, 5), target.onto), rebased.value);
|
|
84
|
+
}
|
|
85
|
+
const newHead = await git('git rev-parse HEAD', worktreeDir);
|
|
86
|
+
if (Result.isErr(newHead)) {
|
|
87
|
+
return rebaseFailed(`cannot read the rebased head: ${newHead.value}`);
|
|
88
|
+
}
|
|
89
|
+
const sha = newHead.value.trim();
|
|
90
|
+
if (sha === pr.headRefOid) {
|
|
91
|
+
return Result.ok({ kind: 'rebased', head: sha });
|
|
92
|
+
}
|
|
93
|
+
const ontoHead = await git(`git rev-parse ${sh(target.onto)}`, worktreeDir);
|
|
94
|
+
if (Result.isOk(ontoHead) && sha === ontoHead.value.trim()) {
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
return Result.err({
|
|
101
|
+
reason: 'already-in-base',
|
|
102
|
+
detail: `every commit is already in ${target.onto}; the pull request has nothing left to merge`,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const pushed = await pushLeased(branch, sha, pr.headRefOid, worktreeDir);
|
|
106
|
+
if (Result.isErr(pushed)) {
|
|
107
|
+
return Result.err({
|
|
108
|
+
reason: 'push-failed',
|
|
109
|
+
detail: `push refused: ${lastLines(pushed.value, 5)}`,
|
|
110
|
+
output: pushed.value,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return Result.ok(pushed.value === 'moved'
|
|
114
|
+
? { kind: 'moved' }
|
|
115
|
+
: { kind: 'rebased', head: sha });
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
export const pushLeased = async (branch, sha, lease, cwd) => {
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
const pushed = await git(`git push --force-with-lease=${sh(`${branch}:${lease}`)} origin ${sh(`${sha}:refs/heads/${branch}`)}`, cwd);
|
|
128
|
+
if (Result.isOk(pushed)) {
|
|
129
|
+
return Result.ok('pushed');
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
const remoteHeadNow = await remoteSha(branch);
|
|
134
|
+
return Result.isOk(remoteHeadNow) && remoteHeadNow.value !== lease
|
|
135
|
+
? Result.ok('moved')
|
|
136
|
+
: Result.err(pushed.value);
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
export const advance = async (api, pr, defaultBranch, plan) => {
|
|
178
|
+
if (isVersionPullRequest(pr, defaultBranch)) {
|
|
179
|
+
if (!isSkipCiLabelled(pr)) {
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
return Result.ok({ kind: 'stale-merge-state' });
|
|
183
|
+
}
|
|
184
|
+
if (plan.arm) {
|
|
185
|
+
const armed = await armOnPick(api, pr, pr.headRefOid, defaultBranch);
|
|
186
|
+
if (Result.isErr(armed) || armed.value === 'moved') {
|
|
187
|
+
return Result.isErr(armed) ? armed : Result.ok({ kind: 'moved' });
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
const unlabelled = await removeSkipCiLabel(api, pr, pr.headRefOid);
|
|
191
|
+
return Result.isErr(unlabelled)
|
|
192
|
+
? unlabelled
|
|
193
|
+
: Result.ok(unlabelled.value === 'moved'
|
|
194
|
+
? { kind: 'moved' }
|
|
195
|
+
: { kind: 'advanced', head: pr.headRefOid });
|
|
196
|
+
}
|
|
197
|
+
const merged = await stackedOnMerged(api, pr, defaultBranch);
|
|
198
|
+
const rebased = await rebaseAndPush(pr, {
|
|
199
|
+
onto: `origin/${defaultBranch}`,
|
|
200
|
+
fetch: merged === undefined
|
|
201
|
+
? [defaultBranch]
|
|
202
|
+
: [defaultBranch, `refs/pull/${merged.number}/head`],
|
|
203
|
+
upstream: merged === undefined
|
|
204
|
+
? undefined
|
|
205
|
+
: { sha: merged.headSha, required: false },
|
|
206
|
+
});
|
|
207
|
+
if (Result.isErr(rebased)) {
|
|
208
|
+
return rebased;
|
|
209
|
+
}
|
|
210
|
+
if (rebased.value.kind === 'moved') {
|
|
211
|
+
return Result.ok({ kind: 'moved' });
|
|
212
|
+
}
|
|
213
|
+
const { head } = rebased.value;
|
|
214
|
+
if (head !== pr.headRefOid) {
|
|
215
|
+
await restack(pr, head, plan.descendants);
|
|
216
|
+
}
|
|
217
|
+
if (plan.arm) {
|
|
218
|
+
const armed = await armOnPick(api, pr, head, defaultBranch);
|
|
219
|
+
if (Result.isErr(armed) || armed.value === 'moved') {
|
|
220
|
+
return Result.isErr(armed) ? armed : Result.ok({ kind: 'moved' });
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (!isSkipCiLabelled(pr)) {
|
|
224
|
+
return head === pr.headRefOid
|
|
225
|
+
? Result.ok({ kind: 'stale-merge-state' })
|
|
226
|
+
: Result.ok({ kind: 'advanced', head });
|
|
227
|
+
}
|
|
228
|
+
const removed = await removeSkipCiLabel(api, pr, head);
|
|
229
|
+
return Result.isErr(removed)
|
|
230
|
+
? removed
|
|
231
|
+
: Result.ok(removed.value === 'moved'
|
|
232
|
+
? { kind: 'moved' }
|
|
233
|
+
: { kind: 'advanced', head });
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
export const restackRetargeted = async (api, before, pullRequests, defaultBranch, dryRun) => {
|
|
248
|
+
const stackParents = stackParentsOf(pullRequests, defaultBranch);
|
|
249
|
+
let mut_moved = false;
|
|
250
|
+
for (const layer of retargetedLayers(before, pullRequests, defaultBranch)) {
|
|
251
|
+
if (stopRequested()) {
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
const outcome = await restackOffMerged(api, layer, defaultBranch, {
|
|
255
|
+
dryRun,
|
|
256
|
+
descendants: stackDescendants(stackParents, layer.pr.number).flatMap((number) => pullRequests.filter((pr) => pr.number === number)),
|
|
257
|
+
});
|
|
258
|
+
mut_moved ||= outcome !== 'untouched';
|
|
259
|
+
}
|
|
260
|
+
return mut_moved;
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
export const restackBehind = async (pullRequests, defaultBranch, context) => {
|
|
275
|
+
const targets = autoRebaseTargets(pullRequests, defaultBranch, context);
|
|
276
|
+
if (!Arr.isNonEmpty(targets)) {
|
|
277
|
+
return { skipped: context.skipped, moved: false };
|
|
278
|
+
}
|
|
279
|
+
const fetched = await git(Arr.toUnshifted('git fetch --quiet origin')(Arr.toUnshifted(defaultBranch)(targets.map((pr) => pr.headRefName)).map(sh)).join(' '));
|
|
280
|
+
if (Result.isErr(fetched)) {
|
|
281
|
+
log(`Cannot fetch to see what is behind: ${lastLines(fetched.value, 2)}`);
|
|
282
|
+
return { skipped: context.skipped, moved: false };
|
|
283
|
+
}
|
|
284
|
+
const stackParents = stackParentsOf(pullRequests, defaultBranch);
|
|
285
|
+
let mut_skipped = context.skipped;
|
|
286
|
+
let mut_moved = false;
|
|
287
|
+
for (const pr of targets) {
|
|
288
|
+
if (stopRequested()) {
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
const upToDate = await git(`git merge-base --is-ancestor ${sh(`origin/${defaultBranch}`)} ${sh(pr.headRefOid)}`);
|
|
294
|
+
if (Result.isOk(upToDate)) {
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
if (context.dryRun) {
|
|
298
|
+
log(`Would rebase #${pr.number} onto ${defaultBranch}; it is behind.`);
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
const rebased = await rebaseAndPush(pr, {
|
|
302
|
+
onto: `origin/${defaultBranch}`,
|
|
303
|
+
fetch: [defaultBranch],
|
|
304
|
+
upstream: undefined,
|
|
305
|
+
});
|
|
306
|
+
if (Result.isErr(rebased)) {
|
|
307
|
+
log(`#${pr.number}: behind ${defaultBranch}, and not rebased — ${rebased.value.detail}`);
|
|
308
|
+
mut_skipped = withSkip(mut_skipped, {
|
|
309
|
+
number: pr.number,
|
|
310
|
+
headSha: pr.headRefOid,
|
|
311
|
+
baseSha: context.baseSha,
|
|
312
|
+
reason: rebased.value.reason,
|
|
313
|
+
detail: rebased.value.detail,
|
|
314
|
+
...(rebased.value.output === undefined
|
|
315
|
+
? {}
|
|
316
|
+
: { output: rebased.value.output }),
|
|
317
|
+
});
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
if (rebased.value.kind === 'moved') {
|
|
321
|
+
mut_moved = true;
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
324
|
+
const { head } = rebased.value;
|
|
325
|
+
if (head === pr.headRefOid) {
|
|
326
|
+
continue;
|
|
327
|
+
}
|
|
328
|
+
mut_moved = true;
|
|
329
|
+
log(`#${pr.number}: was behind ${defaultBranch}; rebased at ${head.slice(0, 10)}.`);
|
|
330
|
+
await restack(pr, head, stackDescendants(stackParents, pr.number).flatMap((number) => pullRequests.filter((layer) => layer.number === number)));
|
|
331
|
+
}
|
|
332
|
+
return { skipped: mut_skipped, moved: mut_moved };
|
|
333
|
+
};
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
const removeSkipCiLabel = async (api, pr, head) => {
|
|
340
|
+
const failed = (detail, output) => Result.err({
|
|
341
|
+
reason: 'unlabel-failed',
|
|
342
|
+
detail,
|
|
343
|
+
...(output === undefined ? {} : { output }),
|
|
344
|
+
});
|
|
345
|
+
const current = await viewPullRequest(api, pr.number);
|
|
346
|
+
if (Result.isErr(current)) {
|
|
347
|
+
return failed(`cannot re-read it before unlabelling: ${current.value}`);
|
|
348
|
+
}
|
|
349
|
+
if (current.value.state !== 'OPEN') {
|
|
350
|
+
return failed(`it is ${current.value.state} now`);
|
|
351
|
+
}
|
|
352
|
+
if (current.value.headRefOid !== head) {
|
|
353
|
+
return Result.ok('moved');
|
|
354
|
+
}
|
|
355
|
+
if (!isSkipCiLabelled(current.value)) {
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
return Result.ok('removed');
|
|
359
|
+
}
|
|
360
|
+
if (!isMergeQueued(current.value)) {
|
|
361
|
+
return failed(`${MERGE_QUEUED_LABEL} came off while it was rebasing`);
|
|
362
|
+
}
|
|
363
|
+
const removed = await removeLabel(api, pr.number, SKIP_CI_LABEL);
|
|
364
|
+
return Result.isErr(removed)
|
|
365
|
+
? failed(`cannot remove ${SKIP_CI_LABEL}: ${describeCommandFailure(removed.value)}`, removed.value)
|
|
366
|
+
: Result.ok('removed');
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
const stackedOnMerged = async (api, pr, defaultBranch) => {
|
|
376
|
+
const changes = await readBaseChanges(api, pr.number);
|
|
377
|
+
if (Result.isErr(changes)) {
|
|
378
|
+
log(`#${pr.number}: cannot read whether it came off a stack; rebasing by patch. (${lastLines(changes.value, 2)})`);
|
|
379
|
+
return undefined;
|
|
380
|
+
}
|
|
381
|
+
const from = retargetedFrom(changes.value, defaultBranch);
|
|
382
|
+
if (from === undefined || !isSafeRefName(from)) {
|
|
383
|
+
return undefined;
|
|
384
|
+
}
|
|
385
|
+
const merged = await mergedHeadOf(api, from);
|
|
386
|
+
if (Result.isErr(merged)) {
|
|
387
|
+
log(`#${pr.number}: cannot read what merged from ${from}; rebasing by patch. (${lastLines(merged.value, 2)})`);
|
|
388
|
+
return undefined;
|
|
389
|
+
}
|
|
390
|
+
return merged.value;
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
const restackOffMerged = async (api, { pr, from }, defaultBranch, plan) => {
|
|
398
|
+
const branch = from ?? (await retargetedFromTimeline(api, pr, defaultBranch));
|
|
399
|
+
if (branch === undefined || !isSafeRefName(branch)) {
|
|
400
|
+
return 'untouched';
|
|
401
|
+
}
|
|
402
|
+
const merged = await mergedHeadOf(api, branch);
|
|
403
|
+
if (Result.isErr(merged)) {
|
|
404
|
+
log(`#${pr.number}: cannot read what merged from ${branch}, so not rebasing it off that. (${lastLines(merged.value, 2)})`);
|
|
405
|
+
return 'untouched';
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
if (merged.value === undefined) {
|
|
410
|
+
return 'untouched';
|
|
411
|
+
}
|
|
412
|
+
const { number, headSha, mergeCommit } = merged.value;
|
|
413
|
+
const carried = await carries(pr, headSha, [
|
|
414
|
+
defaultBranch,
|
|
415
|
+
`refs/pull/${number}/head`,
|
|
416
|
+
]);
|
|
417
|
+
if (Result.isErr(carried)) {
|
|
418
|
+
log(`#${pr.number}: cannot tell whether it still carries #${number}'s commits. (${lastLines(carried.value, 2)})`);
|
|
419
|
+
return 'untouched';
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
if (!carried.value) {
|
|
423
|
+
return 'untouched';
|
|
424
|
+
}
|
|
425
|
+
if (mergeCommit === undefined) {
|
|
426
|
+
log(`#${pr.number}: still carries #${number}'s commits, but GitHub does not say what #${number} merged as; leaving it.`);
|
|
427
|
+
return 'untouched';
|
|
428
|
+
}
|
|
429
|
+
if (plan.dryRun) {
|
|
430
|
+
log(`Would rebase #${pr.number} off #${number}'s commits, onto the squash commit ${mergeCommit.slice(0, 10)}.`);
|
|
431
|
+
return 'untouched';
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
const rebased = await rebaseAndPush(pr, {
|
|
435
|
+
onto: mergeCommit,
|
|
436
|
+
fetch: [],
|
|
437
|
+
upstream: { sha: headSha, required: true },
|
|
438
|
+
});
|
|
439
|
+
if (Result.isErr(rebased)) {
|
|
440
|
+
log(`#${pr.number}: still carries #${number}'s commits, and cannot be rebased off them — ${rebased.value.detail}`);
|
|
441
|
+
return 'untouched';
|
|
442
|
+
}
|
|
443
|
+
if (rebased.value.kind === 'moved') {
|
|
444
|
+
log(`#${pr.number}: not rebased off #${number}'s commits — its branch moved since the survey, so someone else is moving it.`);
|
|
445
|
+
return 'moved';
|
|
446
|
+
}
|
|
447
|
+
const { head } = rebased.value;
|
|
448
|
+
log(`#${pr.number}: came off #${number} still carrying its commits; rebased its own onto #${number}'s squash commit ${mergeCommit.slice(0, 10)}, at ${head.slice(0, 10)}.`);
|
|
449
|
+
await restack(pr, head, plan.descendants);
|
|
450
|
+
return 'restacked';
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
const retargetedFromTimeline = async (api, pr, defaultBranch) => {
|
|
457
|
+
const changes = await readBaseChanges(api, pr.number);
|
|
458
|
+
if (Result.isErr(changes)) {
|
|
459
|
+
log(`#${pr.number}: cannot read whether it came off a stack, so not rebasing it off one. (${lastLines(changes.value, 2)})`);
|
|
460
|
+
return undefined;
|
|
461
|
+
}
|
|
462
|
+
return retargetedFrom(changes.value, defaultBranch);
|
|
463
|
+
};
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
const carries = async (pr, sha, refspecs) => {
|
|
469
|
+
const fetched = await git(Arr.toUnshifted('git fetch --quiet origin')(Arr.toPushed(refspecs, pr.headRefName).map(sh)).join(' '));
|
|
470
|
+
if (Result.isErr(fetched)) {
|
|
471
|
+
return Result.err(fetched.value);
|
|
472
|
+
}
|
|
473
|
+
const contained = await git(`git merge-base --is-ancestor ${sh(sha)} ${sh(pr.headRefOid)}`);
|
|
474
|
+
return Result.ok(Result.isOk(contained));
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
export const restack = async (pr, head, descendants) => {
|
|
486
|
+
const mut_moved = new Map([
|
|
487
|
+
[pr.headRefName, { from: pr.headRefOid, to: head }],
|
|
488
|
+
]);
|
|
489
|
+
for (const layer of descendants) {
|
|
490
|
+
const below = mut_moved.get(layer.baseRefName);
|
|
491
|
+
if (below === undefined) {
|
|
492
|
+
log(`#${layer.number}: not restacked — the layer it is on, ${layer.baseRefName}, did not move.`);
|
|
493
|
+
continue;
|
|
494
|
+
}
|
|
495
|
+
const refused = restackable(layer);
|
|
496
|
+
if (refused !== undefined) {
|
|
497
|
+
log(`#${layer.number}: not restacked — ${refused}.`);
|
|
498
|
+
continue;
|
|
499
|
+
}
|
|
500
|
+
const moved = await rebaseAndPush(layer, {
|
|
501
|
+
onto: below.to,
|
|
502
|
+
fetch: [],
|
|
503
|
+
upstream: { sha: below.from, required: true },
|
|
504
|
+
});
|
|
505
|
+
if (Result.isErr(moved)) {
|
|
506
|
+
log(`#${layer.number}: not restacked onto ${layer.baseRefName} — ${moved.value.detail}`);
|
|
507
|
+
continue;
|
|
508
|
+
}
|
|
509
|
+
if (moved.value.kind === 'moved') {
|
|
510
|
+
log(`#${layer.number}: not restacked — its branch moved since the survey, so someone else is moving it.`);
|
|
511
|
+
continue;
|
|
512
|
+
}
|
|
513
|
+
log(`#${layer.number}: restacked onto ${layer.baseRefName} at ${below.to.slice(0, 10)}.`);
|
|
514
|
+
mut_moved.set(layer.headRefName, {
|
|
515
|
+
from: layer.headRefOid,
|
|
516
|
+
to: moved.value.head,
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
};
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
export const armOnPick = async (api, pr, head, defaultBranch) => {
|
|
544
|
+
const failed = (detail, output) => Result.err({
|
|
545
|
+
reason: 'arm-failed',
|
|
546
|
+
detail,
|
|
547
|
+
...(output === undefined ? {} : { output }),
|
|
548
|
+
});
|
|
549
|
+
const current = await viewPullRequest(api, pr.number);
|
|
550
|
+
if (Result.isErr(current)) {
|
|
551
|
+
return failed(`cannot re-read it before arming: ${current.value}`);
|
|
552
|
+
}
|
|
553
|
+
if (current.value.state === 'OPEN' && current.value.headRefOid !== head) {
|
|
554
|
+
return Result.ok('moved');
|
|
555
|
+
}
|
|
556
|
+
const refused = current.value.state !== 'OPEN'
|
|
557
|
+
? `it is ${current.value.state} now`
|
|
558
|
+
: current.value.baseRefName !== defaultBranch
|
|
559
|
+
? `its base is ${current.value.baseRefName} now`
|
|
560
|
+
: !isMergeQueued(current.value)
|
|
561
|
+
? `${MERGE_QUEUED_LABEL} came off before it was armed`
|
|
562
|
+
: undefined;
|
|
563
|
+
if (refused !== undefined) {
|
|
564
|
+
return failed(`not arming auto-merge: ${refused}`);
|
|
565
|
+
}
|
|
566
|
+
if (isRecord(current.value.autoMergeRequest)) {
|
|
567
|
+
return Result.ok('armed');
|
|
568
|
+
}
|
|
569
|
+
const armed = await armAutoMerge(api, current.value.id);
|
|
570
|
+
if (Result.isErr(armed)) {
|
|
571
|
+
return failed(`cannot arm auto-merge: ${describeCommandFailure(armed.value)}`, armed.value);
|
|
572
|
+
}
|
|
573
|
+
log(`#${pr.number}: auto-merge armed.`);
|
|
574
|
+
return Result.ok('armed');
|
|
575
|
+
};
|
|
576
|
+
//# sourceMappingURL=rebase.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rebase.mjs","sourceRoot":"","sources":["../../src/unblock-prs/rebase.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeping to one released pull request without touching any other.
|
|
3
|
+
*
|
|
4
|
+
* A pull request labelled `merge-queued` without `skip-ci` is released: a push
|
|
5
|
+
* to it, or the label coming off, runs the full matrix. Only one of them can
|
|
6
|
+
* merge before `main` moves and puts the rest back to `BEHIND`, so a second
|
|
7
|
+
* released pull request is a matrix run to be thrown away.
|
|
8
|
+
*
|
|
9
|
+
* **This script puts `skip-ci` on a pull request only to give back the label
|
|
10
|
+
* it has just taken off**, yielding to another released in the same moment,
|
|
11
|
+
* and on no other pull request. It used to pause every other released one before releasing its own, which
|
|
12
|
+
* labelled pull requests nobody had handed it — the dependency update the bot
|
|
13
|
+
* opens released, one a person had just released on purpose. Now it keeps the
|
|
14
|
+
* rule from its own side only: triage watches one already in flight rather
|
|
15
|
+
* than picking another, and once its own is released it looks again, and when
|
|
16
|
+
* another of its pull requests was released in the same moment and goes
|
|
17
|
+
* first, it pauses its own ({@link yieldsTo}). A pull request someone else
|
|
18
|
+
* releases runs, and what that costs is a matrix, not a wrong merge.
|
|
19
|
+
*
|
|
20
|
+
* "In the same moment" is the whole of it: only one the survey saw paused by
|
|
21
|
+
* `skip-ci` is yielded to. One already released when the survey picked
|
|
22
|
+
* `target` and not in flight — waiting on its declared order, held by its
|
|
23
|
+
* review, conflicting, released by hand — is released on the next survey
|
|
24
|
+
* too, which picks `target` again, so yielding to it took `skip-ci` off and
|
|
25
|
+
* put it back on `target` for as long as the script ran.
|
|
26
|
+
*/
|
|
27
|
+
import { type QueueOwner } from 'pr-report-core';
|
|
28
|
+
import { type ApiContext } from '../lib/index.mjs';
|
|
29
|
+
import type { PullRequest } from './types.mjs';
|
|
30
|
+
/**
|
|
31
|
+
* Looks again once `target` has been released, and when another pull request
|
|
32
|
+
* the worker owns was released in the same moment and goes first, pauses
|
|
33
|
+
* `target` — the one pull request this may label. `pausedAtSurvey` is the
|
|
34
|
+
* pull requests the survey that picked `target` saw labelled `skip-ci`.
|
|
35
|
+
* Resolves to whether `target` keeps its release.
|
|
36
|
+
*/
|
|
37
|
+
export declare const settleAfterRelease: (api: ApiContext, target: PullRequest, owners: ReadonlyMap<number, QueueOwner>, pausedAtSurvey: ReadonlySet<number>, defaultBranch: string) => Promise<'kept' | 'yielded'>;
|
|
38
|
+
/**
|
|
39
|
+
* The pull request `target` should step back for, if any: another one the
|
|
40
|
+
* worker owns, paused when the survey ran (`pausedAtSurvey`) and released
|
|
41
|
+
* since, that goes first in {@link firstInReleaseOrder}. One set aside or
|
|
42
|
+
* claimed is a skill's or a person's and runs nothing until its fix is
|
|
43
|
+
* pushed, so it holds nothing back; counting it would stall the queue behind
|
|
44
|
+
* a pull request nobody is about to run. One released before the survey is
|
|
45
|
+
* not counted either: see the top of this file.
|
|
46
|
+
*/
|
|
47
|
+
export declare const yieldsTo: (target: PullRequest, pullRequests: readonly PullRequest[], owners: ReadonlyMap<number, QueueOwner>, pausedAtSurvey: ReadonlySet<number>, defaultBranch: string) => PullRequest | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* The open pull requests labelled `merge-queued` without `skip-ci`, other
|
|
50
|
+
* than `keep`. A draft, one without auto-merge and one on another base count
|
|
51
|
+
* as well: each runs a matrix when pushed to, and whether it could merge
|
|
52
|
+
* afterwards is a different question.
|
|
53
|
+
*/
|
|
54
|
+
export declare const releasedExcept: (pullRequests: readonly PullRequest[], keep: number | undefined) => readonly PullRequest[];
|
|
55
|
+
/**
|
|
56
|
+
* Which of several released pull requests keeps its release: `priority:high`
|
|
57
|
+
* first and `priority:low` last, then the lowest number with the version pull
|
|
58
|
+
* request last — the order candidates are picked in, so that the skill,
|
|
59
|
+
* reading the same rule, settles it the same way.
|
|
60
|
+
*/
|
|
61
|
+
export declare const firstInReleaseOrder: (released: readonly PullRequest[], defaultBranch: string) => PullRequest | undefined;
|
|
62
|
+
//# sourceMappingURL=release.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.d.mts","sourceRoot":"","sources":["../../src/unblock-prs/release.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,QACxB,UAAU,UACP,WAAW,UACX,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,kBACvB,WAAW,CAAC,MAAM,CAAC,iBACpB,MAAM,KACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CA8B5B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,WACX,WAAW,gBACL,SAAS,WAAW,EAAE,UAC5B,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,kBACvB,WAAW,CAAC,MAAM,CAAC,iBACpB,MAAM,KACpB,WAAW,GAAG,SAehB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,iBACX,SAAS,WAAW,EAAE,QAC9B,MAAM,GAAG,SAAS,KACvB,SAAS,WAAW,EAOpB,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,aACpB,SAAS,WAAW,EAAE,iBACjB,MAAM,KACpB,WAAW,GAAG,SAShB,CAAC"}
|