Skip to content

feat(pr): bdt pr info --all and several --pr-id (also other repos) - #112

Merged
aersam merged 9 commits into
mainfrom
pr-info-all
Oct 22, 2026
Merged

aersam merged 9 commits into
mainfrom
pr-info-all

Conversation

@aersam

@aersam aersam commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Adds to bdt pr info (needed by bmsuisse/skills#69, the bdt-status mod showing several PRs):

  • --all: every open PR from the current branch (e.g. one into dev, one into main), where plain pr info has to ask which one. With --json an array of the usual objects, [] and exit 0 when there is none; --target-branch narrows it.
  • --pr-id takes several PRs (repeat it and/or comma-separate), also of other repos. Per entry: a number (current repo), owner/repo#N (GitHub), project/repo#N or org/project/repo#N (Azure DevOps, host/org from the current repo unless given), or the PR's URL (GitHub, dev.azure.com, *.visualstudio.com; the only form needing no checkout).
    • One plain number behaves exactly as before (single object). One cross-repo entry is a single object too; two or more entries give a list in the order given (as --json: an array like --all's), duplicates (also differently spelled, case-insensitive) once.
    • A failing entry (unknown number, no access, unsupported checkout) does not hide the others: error: <entry>: <reason> on stderr, the rest printed, exit 1. An unreadable entry is a usage error (exit 2) before anything is looked up.
    • Rejected combination: --pr-id with --all. --target-branch is ignored for --pr-id, as before.
  • Every JSON object gains repo (owner/repo, or org/project/repo on Azure DevOps): additive, existing consumers (the mod's validation) ignore it.
  • Version 0.45.0 → 0.46.0 (pyproject + uv.lock, own commit).

Tested: tests/test_pr_info.py (89 pass) incl. ref parsing, GitHub/ADO, partial failure, dedupe; real runs against bmsuisse/skills and bmsuisse/devtools PRs. Reviewed with codex (bms-code-review --full) in three rounds; all findings fixed except GitHub's unpaginated 30-PR lookup (same as the existing resolve_pr_id).

🤖 Generated with Claude Code

https://claude.ai/code/session_012tjH222WEjgNKS52CyY1wK

aersam and others added 3 commits October 22, 2026 13:32
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012tjH222WEjgNKS52CyY1wK
@aersam
aersam marked this pull request as ready for review October 22, 2026 11:36
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012tjH222WEjgNKS52CyY1wK
aersam and others added 5 commits October 22, 2026 13:51
owner/repo#N, project/repo#N, org/project/repo#N or the PR's URL per entry;
JSON objects gain a repo. One failing entry does not hide the others.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012tjH222WEjgNKS52CyY1wK
…ection URLs, same-PR dedupe (codex review)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012tjH222WEjgNKS52CyY1wK
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012tjH222WEjgNKS52CyY1wK
…be (codex review)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012tjH222WEjgNKS52CyY1wK
@aersam aersam changed the title feat(pr): bdt pr info --all lists every open PR of the branch feat(pr): bdt pr info --all and several --pr-id (also other repos) Oct 22, 2026
@aersam
aersam merged commit 2b54ba3 into main Oct 22, 2026
1 check passed
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