pm-github 2026.11.11 → 2026.11.12
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/CHANGELOG.md +7 -0
- package/README.md +46 -17
- package/dist/index.js +1 -1
- package/manifest.json +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.11.12 - 2026-11-12
|
|
4
|
+
|
|
5
|
+
### Dependencies
|
|
6
|
+
|
|
7
|
+
- Bump jscpd ([#232](https://github.com/unbraind/pm-github/pull/232))
|
|
8
|
+
|
|
3
9
|
## 2026.11.11 - 2026-11-11
|
|
4
10
|
|
|
5
11
|
### Fixed
|
|
6
12
|
|
|
13
|
+
- The gated sync holds a runner for up to two hours while it waits for caller CI it competes with for the same pool ([pm-github-fxhd](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-fxhd.toon))
|
|
7
14
|
- Explain scheduled install mismatches and preserve redacted command failure diagnostics ([pm-github-o9r7](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-o9r7.toon))
|
|
8
15
|
- Packed projection fixture cleanup can mask its own test outcome ([pm-github-mes8](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-mes8.toon))
|
|
9
16
|
|
package/README.md
CHANGED
|
@@ -1096,7 +1096,7 @@ The script must emit the root `CHANGELOG.md` and remain inside the publication s
|
|
|
1096
1096
|
| Validation | Strict PM health; explicit item/history scope committed together |
|
|
1097
1097
|
| Branch and PR | Explicit force-with-lease against the observed bot ref; push only bot branch; owned PR lookup excludes forks |
|
|
1098
1098
|
| No-op | Zero closes or no tracker diff creates no remote branch or PR; caller-only drift unpublished; stale owned PR closed |
|
|
1099
|
-
| CI and landing | Dispatch caller checks after publication
|
|
1099
|
+
| CI and landing | Dispatch caller checks after publication; request protected squash auto-merge in both token modes; report parked approval-required runs; exit without waiting for caller CI |
|
|
1100
1100
|
|
|
1101
1101
|
`ci-workflows` defaults to `ci.yml codeql.yml`, covering the fleet's CI and
|
|
1102
1102
|
CodeQL workflows without querying branch protection. An explicit list replaces
|
|
@@ -1113,26 +1113,55 @@ even when those checks pass on the head SHA. For unattended landing, configure
|
|
|
1113
1113
|
`automation-app-client-id` and the optional `automation_app_private_key` secret.
|
|
1114
1114
|
After the local gates, the pinned official App-token action mints a token for
|
|
1115
1115
|
only the caller repository, with contents/pull-requests/actions write and
|
|
1116
|
-
checks/statuses read. Publication and
|
|
1116
|
+
checks/statuses read. Publication and auto-merge arming use that token, so native
|
|
1117
1117
|
`pull_request` workflows run without the GITHUB_TOKEN approval prompt and
|
|
1118
1118
|
provide eligible required checks. Manual head dispatch remains additional
|
|
1119
1119
|
verification. Empty credentials retain GITHUB_TOKEN and emit a setup notice;
|
|
1120
1120
|
partial or failed App credentials stop publication. The private key is passed
|
|
1121
1121
|
only to the token action, after caller scripts have completed.
|
|
1122
1122
|
|
|
1123
|
-
In
|
|
1124
|
-
with the expected head SHA
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1123
|
+
In both token modes, after dispatch the workflow requests `gh pr merge --auto --squash`
|
|
1124
|
+
with the expected head SHA and exits; required checks decide the merge, and no
|
|
1125
|
+
runner is held while they run. A repository that disallows auto-merge — no
|
|
1126
|
+
branch protection, or the repository setting disabled — emits a notice naming
|
|
1127
|
+
the reason and exits. The step checks the repository setting and protected
|
|
1128
|
+
base once before invoking `gh`, because `--auto` can merge immediately when
|
|
1129
|
+
nothing blocks the PR. Failed or unverifiable reads use the same fallback.
|
|
1130
|
+
The base must require at least one named PR CI status check, through classic
|
|
1131
|
+
protection or an applicable ruleset; reviews or conversations alone are
|
|
1132
|
+
insufficient. No required check produces `required_checks_unconfigured`, and an
|
|
1133
|
+
unreadable branch-rules API produces `required_checks_unverified`. Both notices
|
|
1134
|
+
use the scheduled-retry fallback.
|
|
1135
|
+
Require branches to be up to date before merging, or configure an applicable
|
|
1136
|
+
merge queue. The guard verifies ruleset strictness/merge queue or the matching
|
|
1137
|
+
classic GraphQL branch-protection rule before arming. Loose checks produce
|
|
1138
|
+
`required_checks_not_strict`; an unreadable classic freshness policy produces
|
|
1139
|
+
`branch_freshness_unverified`. Configure every intended CI check as required:
|
|
1140
|
+
the presence guard accepts a nonempty required context name and does not match
|
|
1141
|
+
that name to caller CI jobs.
|
|
1142
|
+
The next scheduled run rebuilds and retries; persistent settings or protection
|
|
1143
|
+
problems require maintainer attention before unattended landing can work.
|
|
1144
|
+
Without an App, maintainers must approve the native PR runs before required
|
|
1145
|
+
checks can pass; the already armed auto-merge then lands the protected PR.
|
|
1146
|
+
The `github_token_requires_approval` notice explains this approval step and the
|
|
1147
|
+
optional App configuration for unattended checks. A merge performed with
|
|
1148
|
+
GITHUB_TOKEN does not trigger default-branch `push` workflows; use the App when
|
|
1149
|
+
those follow-up workflows must run automatically. GitHub documents the
|
|
1150
|
+
[PR approval exception and suppressed push events](https://docs.github.com/en/actions/how-tos/write-workflows/choose-when-workflows-run/trigger-a-workflow).
|
|
1151
|
+
GitHub enforces required checks and conversation resolution. **Never wait in-job
|
|
1152
|
+
for caller CI: it takes runners from the same account pool**, so polling here can
|
|
1153
|
+
only lengthen the queue it waits on. The dispatch step performs no in-job wait —
|
|
1154
|
+
no contract requires one: the parked-run report reads runs GitHub already
|
|
1155
|
+
registered for the published head, and landing is owned by armed auto-merge or
|
|
1156
|
+
a later scheduled retry. The closeout armed flag records only an observed
|
|
1157
|
+
successful arm, so a failed arm stays revocable by the always() cleanup. A base advance after publication, or an unavailable
|
|
1158
|
+
auto-merge, waits for the next scheduled rebuild, which force-rebuilds the bot
|
|
1159
|
+
branch from the current default branch and re-arms. The existing daily schedules
|
|
1160
|
+
and separate sync/closeout concurrency groups remain. Unresolved conversations
|
|
1161
|
+
continue to block landing. Every job in the reusable workflows declares an
|
|
1162
|
+
explicit `timeout-minutes` (60 for sync, closeout and Dependabot; 10 for
|
|
1163
|
+
sync alerts), and each sync/closeout dispatch step has a five-minute hard limit.
|
|
1164
|
+
That limit covers API failures or hangs, not a wait for checks.
|
|
1136
1165
|
|
|
1137
1166
|
See [the caller audit and one-time setup](docs/bot-pr-automation.md) for the App
|
|
1138
1167
|
credential mapping, CodeQL trigger changes and explicit CI overrides. GitHub
|
|
@@ -1220,8 +1249,8 @@ run from the repository root. A script that regenerates the changelog must write
|
|
|
1220
1249
|
the repository-root `CHANGELOG.md` to stay within the publication allowlist.
|
|
1221
1250
|
|
|
1222
1251
|
Bot-created PRs using GITHUB_TOKEN may have `pull_request` runs parked in
|
|
1223
|
-
`action_required`. The optional App token makes publication
|
|
1224
|
-
|
|
1252
|
+
`action_required`. The optional App token makes publication start native
|
|
1253
|
+
eligible PR workflows automatically. Configured manual workflows
|
|
1225
1254
|
are also dispatched on the bot head; these jobs are additional verification,
|
|
1226
1255
|
because GitHub excludes manual job checks from PR branch-rule evaluation. Each
|
|
1227
1256
|
manual workflow must support `workflow_dispatch` and produce its intended check
|
package/dist/index.js
CHANGED
|
@@ -5367,7 +5367,7 @@ const PROJECT_SYNC_FLAGS = [
|
|
|
5367
5367
|
const defineExtension = (module) => module;
|
|
5368
5368
|
export default defineExtension({
|
|
5369
5369
|
name: "pm-github",
|
|
5370
|
-
version: "2026.11.
|
|
5370
|
+
version: "2026.11.12",
|
|
5371
5371
|
activate(api) {
|
|
5372
5372
|
// -----------------------------------------------------------------------
|
|
5373
5373
|
// schema — declare the GitHub provenance fields so the workspace knows them
|
package/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pm-github",
|
|
3
|
-
"version": "2026.11.
|
|
3
|
+
"version": "2026.11.12",
|
|
4
4
|
"description": "GitHub Issues + Projects v2 integration. Imports issues as pm items (`pm github import`), exports pm items as GitHub issues, syncs issue state, and bidirectionally syncs pm items with a GitHub Projects v2 board (`pm github project import/sync/list/fields`) — mapping pm status to the board Status column with idempotent, no-data-loss provenance.",
|
|
5
5
|
"author": "@unbraind",
|
|
6
6
|
"entry": "./dist/index.js",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pm-github",
|
|
3
|
-
"version": "2026.11.
|
|
3
|
+
"version": "2026.11.12",
|
|
4
4
|
"description": "GitHub Issues importer extension for pm-cli",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"@unbrained/pm-cli": "2026.11.6",
|
|
58
58
|
"c8": "12.0.0",
|
|
59
59
|
"eslint": "10.14.0",
|
|
60
|
-
"jscpd": "5.4.
|
|
60
|
+
"jscpd": "5.4.3",
|
|
61
61
|
"pm-changelog": "2026.11.5",
|
|
62
62
|
"pm-ops": "2026.11.5",
|
|
63
63
|
"typescript": "7.0.2"
|