Skip to content

feat(pr): add integrations to keep pull requests up to date (#258) - #259

Merged
dan-petty merged 4 commits into
release/v0.2.20from
feat/258-keep-prs-up-to-date
Sep 18, 2026
Merged

dan-petty merged 4 commits into
release/v0.2.20from
feat/258-keep-prs-up-to-date

Conversation

@dan-petty

Copy link
Copy Markdown
Owner

Description

Closes #258

Implements end-to-end automated integrations and developer tooling to keep pull requests continuously synchronized with target base branches (main, release/**), preventing out-of-date branch drift and stale target branch CI failures.

Key Changes

  • CLI Subcommand (devops pr update):
    • Updates pull request branches via GitHub's PUT /repos/{owner}/{repo}/pulls/{number}/update-branch API with client-side rate-limited token bucket pacing (run_gh).
    • Supports updating a single PR by number (devops pr update [number]) or batch updating all open PRs targeting base branch (devops pr update --all --base <branch>).
    • Optimistic locking via --expected-head-sha ensuring safe concurrent updates.
    • Full dry-run preview simulation (--dry-run) with detailed Rich summary table.
  • FastMCP Agent Tool (pr_update_branch):
    • Exposes pr_update_branch(pr_number, repo, expected_head_sha, dry_run) to enable autonomous AI agents to keep PRs updated programmatically.
  • GitHub Actions Automation (.github/workflows/update-prs.yml):
    • Triggered automatically on pushes to base branches (main, release/**).
    • Supports manual workflow_dispatch with target base and PR filter inputs.
    • Supports /update or /sync PR comment slash-commands with automatic reaction acknowledgment.
  • Test Suite (tests/test_pr_update.py):
    • 10 unit and integration tests covering single PR update, batch --all, conflict handling, dry-run simulation, and MCP tool invocation with structural tuple equality assertions.

@dan-petty
dan-petty merged commit 3052d28 into release/v0.2.20 Sep 18, 2026
4 of 5 checks passed
@dan-petty
dan-petty deleted the feat/258-keep-prs-up-to-date branch September 18, 2026 19:35
@dan-petty dan-petty mentioned this pull request Sep 19, 2026
7 tasks
dan-petty added a commit that referenced this pull request Sep 19, 2026
* feat(release): v0.2.20

* fix(pr): handle JSON array timeline payload in _parse_timeline_copilot_state (#245) (#246)

* fix(pr): handle JSON array timeline payload in _parse_timeline_copilot_state (#245)

* docs(tasks): update task 245 status to In Review and link PR #246

* docs(agents): add roadmap ingestion rules for missing parameters and bad patterns (#247)

* docs(agents): add roadmap ingestion rules for missing parameters and bad patterns

* fix(agents): gate devops roadmap governance block on is_devops_cli

* fix(review): remediate markdown formatting issues and unbalanced code blocks in review reports (#250) (#251)

* refactor(core): use pyproject.toml as single source of truth for version (#248) (#249)

* refactor(core): use pyproject.toml as single source of truth for version (#248)

* fix(release): require __version__ presence in init before dynamic fallback (#249)

* docs(roadmap): add universal subcommand option propagation task

* feat(cli): universal trailing --dry-run option propagation across subcommands (#252) (#253)

* feat(pm): forward-looking project management, roadmap reconstruction, compactor hardening & issue sync (#254) (#255)

* feat(pm): forward-looking project management, roadmap reconstruction, compactor hardening & issue sync (#254)

* docs(agent): link PR #255 to task-254

* fix(github): handle remote issue query failures gracefully in roadmap sync (#254)

* feat(ci): fast execution caching when unchanged & pre-commit file change tracking integration (#256) (#257)

* feat(ci): fast execution caching when unchanged & pre-commit file change tracking integration (#256)

* docs(agent): link PR #257 to task-256

* feat(pr): add integrations to keep pull requests up to date (#258) (#259)

* feat(pr): add integrations to keep pull requests up to date (#258)

* docs(agent): link PR #259 to task-258

* fix(ci): address actionlint shellcheck warning and add shellcheck to devcontainer

* docs(roadmap): prune completed items from Value vs. Effort Prioritization Matrix

* feat(ci): accelerate devops ci performance with worker auto-scaling, test hotspot isolation, and zero-blocking dispatch (#260) (#261)

* docs(roadmap): add v0.2.24 milestone for Vibes architectural alignment

- POSIX Process Group Sandbox Enforcement (Obs 05)
- Structural Pre-Commit Hook Inversion (Systems Obs 08)
- Anti-Brittle Constant Elimination (Obs 06)
- Semantic Validator Deprecation & Structural Positional Oracles (Obs 17)

* feat(ci): accelerate devops ci performance with worker auto-scaling, test hotspot isolation, and zero-blocking dispatch (#260)

* fix(review): remediate session findings, harden defensive boundaries, and improve review feedback loop (#262) (#263)

* fix(review): remediate session findings, harden defensive boundaries, and improve review feedback loop (#262)

* docs(agent): link PR #263 and update status to In Review

* docs(agent): reconcile task-262 as merged and prune completed item from matrix (#264)

* fix(review): resolve PR #244 review threads, harden markdown fence/asterisk parsing, and update release notes (#265) (#266)

* fix(review): resolve PR #244 review threads, harden markdown fence/asterisk parsing, and update release notes (#265)

* docs(agent): link PR #266 and set status to In Review

* refactor(core): replace inconsistent N-Gate references with Gated (#267) (#268)

* refactor(core): replace inconsistent N-Gate references with Gated (#267)

* docs(agent): link PR #268 in task-267 tracking

* docs(agent): author deliverables as merged and prohibit administrative tracking PRs (#270) (#271)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant