PR Documentation Check fails to create docs PRs for release branches
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
### Is there an existing issue for this?
- [x] I have searched the existing issues
The generated reports [#18993](https://github.com/microsoft/aspire/issues/18993) and [#19023](https://github.com/microsoft/aspire/issues/19023) capture individual failures, but not the shared root cause or repository-level fix.
### Describe the bug
`PR Documentation Check` can author and commit the required documentation in `microsoft/aspire.dev`, but then fails to create the draft docs PR when the effective target is a `release/*` branch.
The affected runs use gh-aw v0.79.8. The agent correctly calls `create_pull_request` with an allowlisted base such as `release/13.5`, but gh-aw patch generation ignores that per-call `base` and instead uses the workflow's static `safe-outputs.create-pull-request.base-branch` value, currently `main`.
Because Aspire checks out the `release/13.5` tip at depth 1, `git merge-base origin/main ` cannot traverse from the shallow release tip to a common ancestor. Patch generation returns `ERR_SYSTEM`, so the prepared documentation never reaches a PR. Simply changing to full history is unsafe: once the merge-base becomes reachable, a main-based patch could include the entire main-to-release divergence rather than only the agent's documentation commit.
Observed examples include:
- [PR #18442](https://github.com/microsoft/aspire/pull/18442#issuecomment-4868019403)
- [PR #18566](https://github.com/microsoft/aspire/pull/18566#issuecomment-4910087137)
- [PR #18737](https://github.com/microsoft/aspire/pull/18737#issuecomment-5017721475)
- [PR #18980](https://github.com/microsoft/aspire/pull/18980#issuecomment-5182303978)
- [PR #18981](https://github.com/microsoft/aspire/pull/18981#issuecomment-5173290384)
- [PR #19007](https://github.com/microsoft/aspire/pull/19007#issuecomment-5193741839)
### Expected Behavior
Patch generation should use the same effective `microsoft/aspire.dev` branch selected by the workflow's target resolver and passed by the agent. A depth-1 release checkout should then be sufficient because its tip is the correct patch base, and the workflow should create a draft docs PR targeting that branch.
### Steps To Reproduce
1. Merge or manually dispatch `PR Documentation Check` for a source PR whose effective docs target resolves to `release/13.5`.
2. Let the agent author and commit documentation in the depth-1 `microsoft/aspire.dev` checkout.
3. Observe the agent call `create_pull_request` with `base: "release/13.5"`.
4. Observe patch generation use configured `main` instead and fail while computing the merge-base.
The repository fix is to expose the resolver's effective branch as a step output and use that output for agent-time `create-pull-request.base-branch`, retaining `main` as the separate safe-output job fallback. All gh-aw workflow sources should be recompiled together whenever the compiler is run or upgraded.
### Exceptions (if any)
```text
Pinned SHA ... failed to generate patch: ERR_SYSTEM: Git command failed with status 1
```
### Aspire doctor output
N/A — this is a GitHub Actions/gh-aw workflow failure.
### Anything else?
The upstream dynamic-base defect is already tracked by [github/gh-aw#41265](https://github.com/github/gh-aw/issues/41265) and remains open. The v0.85.4 tag still chooses patch generation's base from the static `prConfig.base_branch` instead of the agent entry's per-call `base`.
The separate repository re-shallowing defect [github/gh-aw#50240](https://github.com/github/gh-aw/issues/50240) was fixed by [github/gh-aw#50378](https://github.com/github/gh-aw/pull/50378) in prerelease v0.85.0+, but that fix does not make patch generation honor the per-call base. Therefore, upgrading alone does not resolve this issue.
### Compiler update
[gh-aw v0.85.4](https://github.com/github/gh-aw/releases/tag/v0.85.4) became the latest stable release on August 6. It contains the separate re-shallowing fix from [github/gh-aw#50378](https://github.com/github/gh-aw/pull/50378) plus security hardening, so the repository fix will upgrade and recompile all eight gh-aw workflows together. The dynamic-base defect remains, so the resolver-output workaround is still required; upgrading without that workaround does not fix docs PR creation.
### Impact inventory and recovery tracking
A repository-wide scan of `aspire-repo-bot[bot]` comments carrying `pr-docs-check:notify-source-pr`, supplemented by generated gh-aw failure issues, found **35 deduplicated failures** after the previous checkout-placement fix [#18320](https://github.com/microsoft/aspire/pull/18320) merged. Every affected source PR is merged with milestone 13.5. All 35 authored documentation and then failed during `create_pull_request` patch generation against the shallow/grafted `release/13.5` checkout.
**Current recovery state: 19 recovered and 16 pending.** The repository, safe-output permission, and cached Copilot CLI staging fixes [#19055](https://github.com/microsoft/aspire/pull/19055), [#19062](https://github.com/microsoft/aspire/pull/19062), and [#19109](https://github.com/microsoft/aspire/pull/19109) are merged. A checked item means the resulting Aspire docs PR is merged or the run conclusively required no docs. Remaining items require a fresh `workflow_dispatch` from current `main`.
- [x] [#18407](https://github.com/microsoft/aspire/pull/18407) — [original run](https://github.com/microsoft/aspire/actions/runs/28212946012) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31133691938) · recovered by merged [aspire.dev#1433](https://github.com/microsoft/aspire.dev/pull/1433)
- [x] [#18522](https://github.com/microsoft/aspire/pull/18522) — [original run](https://github.com/microsoft/aspire/actions/runs/28270494931) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31137314208) · recovered by merged [aspire.dev#1434](https://github.com/microsoft/aspire.dev/pull/1434)
- [x] [#18539](https://github.com/microsoft/aspire/pull/18539) — [original run](https://github.com/microsoft/aspire/actions/runs/28404445919) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31145729695) · recovered by merged [aspire.dev#1435](https://github.com/microsoft/aspire.dev/pull/1435); repository workaround [#19109](https://github.com/microsoft/aspire/pull/19109) covers unreleased upstream fix [github/gh-aw#50908](https://github.com/github/gh-aw/pull/50908)
- [x] [#18580](https://github.com/microsoft/aspire/pull/18580) — [original run](https://github.com/microsoft/aspire/actions/runs/28542343293) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31147970878) · recovered by merged [aspire.dev#1436](https://github.com/microsoft/aspire.dev/pull/1436)
- [x] [#18009](https://github.com/microsoft/aspire/pull/18009) — [run](https://github.com/microsoft/aspire/actions/runs/28602209839) · [failure report](https://github.com/microsoft/aspire/pull/18009#issuecomment-4867597170) · recovered by [aspire.dev#1229](https://github.com/microsoft/aspire.dev/pull/1229)
- [x] [#18442](https://github.com/microsoft/aspire/pull/18442) — [original run](https://github.com/microsoft/aspire/actions/runs/28605119390) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31148680446) · recovered by merged [aspire.dev#1437](https://github.com/microsoft/aspire.dev/pull/1437)
- [x] [#16929](https://github.com/microsoft/aspire/pull/16929) — [run](https://github.com/microsoft/aspire/actions/runs/28758907542) · [failure report](https://github.com/microsoft/aspire/pull/16929#issuecomment-4888034250) · recovered by [aspire.dev#1328](https://github.com/microsoft/aspire.dev/pull/1328)
- [x] [#18574](https://github.com/microsoft/aspire/pull/18574) — [original run](https://github.com/microsoft/aspire/actions/runs/28761483863) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31149513487) · recovered by merged [aspire.dev#1438](https://github.com/microsoft/aspire.dev/pull/1438)
- [x] [#18566](https://github.com/microsoft/aspire/pull/18566) — [original run](https://github.com/microsoft/aspire/actions/runs/28906421792) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31150095060) · recovered by merged [aspire.dev#1439](https://github.com/microsoft/aspire.dev/pull/1439)
- [x] [#18624](https://github.com/microsoft/aspire/pull/18624) — [original run](https://github.com/microsoft/aspire/actions/runs/28975854793) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31150810779) · recovered by merged [aspire.dev#1440](https://github.com/microsoft/aspire.dev/pull/1440)
- [x] [#18738](https://github.com/microsoft/aspire/pull/18738) — [original run](https://github.com/microsoft/aspire/actions/runs/29220139555) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31151620821) · recovered by merged [aspire.dev#1441](https://github.com/microsoft/aspire.dev/pull/1441)
- [x] [#18726](https://github.com/microsoft/aspire/pull/18726) — [original run](https://github.com/microsoft/aspire/actions/runs/29226692296) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31152762971) · recovered by merged [aspire.dev#1442](https://github.com/microsoft/aspire.dev/pull/1442)
- [x] [#18737](https://github.com/microsoft/aspire/pull/18737) — [original run](https://github.com/microsoft/aspire/actions/runs/29707009365) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31153693575) · recovered by merged [aspire.dev#1443](https://github.com/microsoft/aspire.dev/pull/1443)
- [x] [#18527](https://github.com/microsoft/aspire/pull/18527) — [run](https://github.com/microsoft/aspire/actions/runs/29782869595) · [failure report](https://github.com/microsoft/aspire/pull/18527#issuecomment-5027815747) · recovered by [aspire.dev#1382](https://github.com/microsoft/aspire.dev/pull/1382)
- [x] [#18829](https://github.com/microsoft/aspire/pull/18829) — [original run](https://github.com/microsoft/aspire/actions/runs/29811564925) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31154662654) · recovered by merged [aspire.dev#1444](https://github.com/microsoft/aspire.dev/pull/1444)
- [x] [#18718](https://github.com/microsoft/aspire/pull/18718) — [run](https://github.com/microsoft/aspire/actions/runs/29857186149) · [failure report](https://github.com/microsoft/aspire/pull/18718#issuecomment-5037668829) · recovered by [aspire.dev#1387](https://github.com/microsoft/aspire.dev/pull/1387)
- [x] [#18827](https://github.com/microsoft/aspire/pull/18827) — [original run](https://github.com/microsoft/aspire/actions/runs/29967115693) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31155423659) · recovered by merged [aspire.dev#1445](https://github.com/microsoft/aspire.dev/pull/1445)
- [x] [#18851](https://github.com/microsoft/aspire/pull/18851) — [original run](https://github.com/microsoft/aspire/actions/runs/30055153085) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31156355343) · recovered by merged [aspire.dev#1446](https://github.com/microsoft/aspire.dev/pull/1446)
- [x] [#18867](https://github.com/microsoft/aspire/pull/18867) — [original run](https://github.com/microsoft/aspire/actions/runs/30233140474) · [recovery run](https://github.com/microsoft/aspire/actions/runs/31157424866) · recovered by merged [aspire.dev#1447](https://github.com/microsoft/aspire.dev/pull/1447)
- [ ] [#18868](https://github.com/microsoft/aspire/pull/18868) — [run](https://github.com/microsoft/aspire/actions/runs/30234900388) · [failure report](https://github.com/microsoft/aspire/pull/18868#issuecomment-5087043533)
- [ ] [#18863](https://github.com/microsoft/aspire/pull/18863) — [run](https://github.com/microsoft/aspire/actions/runs/30491297177) · [failure report](https://github.com/microsoft/aspire/pull/18863#issuecomment-5123495316)
- [ ] [#18969](https://github.com/microsoft/aspire/pull/18969) — [run](https://github.com/microsoft/aspire/actions/runs/30862723856) · [failure report](https://github.com/microsoft/aspire/pull/18969#issuecomment-5172897211)
- [ ] [#18981](https://github.com/microsoft/aspire/pull/18981) — [run](https://github.com/microsoft/aspire/actions/runs/30866090953) · [failure report](https://github.com/microsoft/aspire/pull/18981#issuecomment-5173290384)
- [ ] [#18978](https://github.com/microsoft/aspire/pull/18978) — [run](https://github.com/microsoft/aspire/actions/runs/30906477667) · [failure issue #18993](https://github.com/microsoft/aspire/issues/18993)
- [ ] [#18980](https://github.com/microsoft/aspire/pull/18980) — [run](https://github.com/microsoft/aspire/actions/runs/30932312207) · [failure report](https://github.com/microsoft/aspire/pull/18980#issuecomment-5182303978)
- [ ] [#18943](https://github.com/microsoft/aspire/pull/18943) — [run](https://github.com/microsoft/aspire/actions/runs/30946832615) · [failure report](https://github.com/microsoft/aspire/pull/18943#issuecomment-5184194015)
- [ ] [#18991](https://github.com/microsoft/aspire/pull/18991) — [run](https://github.com/microsoft/aspire/actions/runs/30958791716) · [failure report](https://github.com/microsoft/aspire/pull/18991#issuecomment-5185644890)
- [ ] [#18992](https://github.com/microsoft/aspire/pull/18992) — [run](https://github.com/microsoft/aspire/actions/runs/30958805880) · [failure report](https://github.com/microsoft/aspire/pull/18992#issuecomment-5185648508)
- [ ] [#19007](https://github.com/microsoft/aspire/pull/19007) — [run](https://github.com/microsoft/aspire/actions/runs/31019604303) · [failure report](https://github.com/microsoft/aspire/pull/19007#issuecomment-5193741839)
- [ ] [#18985](https://github.com/microsoft/aspire/pull/18985) — [run](https://github.com/microsoft/aspire/actions/runs/31028135749) · [failure report](https://github.com/microsoft/aspire/pull/18985#issuecomment-5194908704)
- [ ] [#18918](https://github.com/microsoft/aspire/pull/18918) — [run](https://github.com/microsoft/aspire/actions/runs/31033203826) · [failure report](https://github.com/microsoft/aspire/pull/18918#issuecomment-5195592635) · [failure issue #19023](https://github.com/microsoft/aspire/issues/19023)
- [ ] [#18850](https://github.com/microsoft/aspire/pull/18850) — [run](https://github.com/microsoft/aspire/actions/runs/31047574855) · [failure report](https://github.com/microsoft/aspire/pull/18850#issuecomment-5197506370)
- [ ] [#18986](https://github.com/microsoft/aspire/pull/18986) — [run](https://github.com/microsoft/aspire/actions/runs/31066050457) · [failure report](https://github.com/microsoft/aspire/pull/18986#issuecomment-5199780726)
- [ ] [#18728](https://github.com/microsoft/aspire/pull/18728) — [run](https://github.com/microsoft/aspire/actions/runs/31071045351) · [failure report](https://github.com/microsoft/aspire/pull/18728#issuecomment-5200400449)
- [ ] [#19043](https://github.com/microsoft/aspire/pull/19043) — [run](https://github.com/microsoft/aspire/actions/runs/31084987510) · [failure report](https://github.com/microsoft/aspire/pull/19043#issuecomment-5202328230)
Seven older release/13.4 failures have now been audited:
- [x] [#17177](https://github.com/microsoft/aspire/pull/17177#issuecomment-4474600305) — superseded; the requested capture-profile documentation covered hidden/internal functionality, and the related replacement [aspire.dev#1357](https://github.com/microsoft/aspire.dev/pull/1357) was intentionally closed after maintainers agreed it should not be documented.
- [ ] [#17235](https://github.com/microsoft/aspire/pull/17235#issuecomment-4484743809) — still actionable; current `aspire update` docs do not cover staging refusal on daily/local/PR builds or the `overrideStagingFeed` escape hatch.
- [x] [#17361](https://github.com/microsoft/aspire/pull/17361#issuecomment-4515147749) — recovered by merged [aspire.dev#1127](https://github.com/microsoft/aspire.dev/pull/1127), which added the parser-backed AppHost/resource detection release-note coverage.
- [ ] [#17387](https://github.com/microsoft/aspire/pull/17387#issuecomment-4522448435) — still actionable; current local-provisioning docs do not cover `ITokenCredentialProvider` or accessing Aspire's provisioning credential.
- [ ] [#17447](https://github.com/microsoft/aspire/pull/17447#issuecomment-4529892723) — still actionable; current certificate-trust docs do not cover the non-interactive Linux partial-trust success behavior.
- [ ] [#16686](https://github.com/microsoft/aspire/pull/16686#issuecomment-4533369871) — still actionable; current `aspire run`/`aspire start` docs do not cover `ASPIRE_CLI_START_TIMEOUT`.
- [ ] [#17094](https://github.com/microsoft/aspire/pull/17094#issuecomment-4548332378) — still actionable; current eventing docs do not state that subscription event types must be concrete or document the interface/abstract-type `ArgumentException`.
The five actionable legacy items will be recovered sequentially after the release/13.5 queue. Because `release/13.4` no longer exists in `microsoft/aspire.dev`, the target resolver will use the latest available release branch.
#### Closure criteria
- [x] Merge implementation PR [#19055](https://github.com/microsoft/aspire/pull/19055) with the full v0.85.4 workflow recompilation.
- [ ] Freshly dispatch every unchecked release/13.5 source PR above.
- [ ] Link each generated Aspire docs PR (or a successful run that determines no update remains necessary).
- [ ] Merge or intentionally close every follow-up with the reason recorded here.
- [x] Triage the seven legacy release/13.4 failures as recovered, superseded, or still actionable.
- [ ] Recover or intentionally resolve the five actionable legacy failures.
- [ ] Close generated symptom issues #18993 and #19023 after their corresponding documentation outcomes are recorded.
Contributor guide
Assessment
This issue has not been assessed yet.