Skip to content

PR Documentation Check fails to create docs PRs for release branches #19054

Description

Is there an existing issue for this?

  • I have searched the existing issues

The generated reports #18993 and #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 <agent-commit> 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:

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)

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 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 was fixed by github/gh-aw#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 became the latest stable release on August 6. It contains the separate re-shallowing fix from github/gh-aw#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 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, #19062, and #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.

Seven older release/13.4 failures have now been audited:

  • #17177 — superseded; the requested capture-profile documentation covered hidden/internal functionality, and the related replacement aspire.dev#1357 was intentionally closed after maintainers agreed it should not be documented.
  • #17235 — still actionable; current aspire update docs do not cover staging refusal on daily/local/PR builds or the overrideStagingFeed escape hatch.
  • #17361 — recovered by merged aspire.dev#1127, which added the parser-backed AppHost/resource detection release-note coverage.
  • #17387 — still actionable; current local-provisioning docs do not cover ITokenCredentialProvider or accessing Aspire's provisioning credential.
  • #17447 — still actionable; current certificate-trust docs do not cover the non-interactive Linux partial-trust success behavior.
  • #16686 — still actionable; current aspire run/aspire start docs do not cover ASPIRE_CLI_START_TIMEOUT.
  • #17094 — 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

  • Merge implementation PR #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.
  • 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 [aw] PR Documentation Check reported incomplete result #18993 and [aw] PR Documentation Check reported incomplete result #19023 after their corresponding documentation outcomes are recorded.

Metadata

Metadata

Labels

needs-area-labelAn area label is needed to ensure this gets routed to the appropriate area ownerstriage:needs-humanAspire triage bot wants a human to take a second look

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions