Skip to content

Commit 6725a4d

Browse files
authored
feat: add inline CI, review, and merge status to mergify stack list (#1117)
Enhances `mergify stack list` to show CI status, review status, and merge conflict state for each PR in the stack. - Default: summary line (CI: ✓ passing | Review: ✓ approved) - --verbose: detailed check names and reviewer names - --json: full structured data (ci_checks, reviews, mergeable) - Conflict indicator (✗ conflicting) when PR has merge conflicts Fetches check-runs and reviews in parallel with bounded concurrency. Callers like `stack open` skip the extra fetches via include_status=False. Claude-Session-Id: 2d9f4a52-4a1d-4a50-a459-3b57847dec9f
1 parent 577cf4a commit 6725a4d

7 files changed

Lines changed: 554 additions & 27 deletions

File tree

mergify_cli/github_types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class PullRequest(typing.TypedDict):
2020
node_id: str
2121
merged_at: str | None
2222
merge_commit_sha: str | None
23+
mergeable: bool | None
2324

2425

2526
class Comment(typing.TypedDict):

mergify_cli/stack/cli.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,18 +517,26 @@ async def sync(
517517
is_flag=True,
518518
help="Output in JSON format for scripting",
519519
)
520+
@click.option(
521+
"--verbose",
522+
"-v",
523+
is_flag=True,
524+
help="Show detailed CI check names and reviewer names",
525+
)
520526
@utils.run_with_asyncio
521527
async def list_cmd(
522528
ctx: click.Context,
523529
*,
524530
trunk: tuple[str, str],
525531
output_json: bool,
532+
verbose: bool,
526533
) -> None:
527534
await stack_list_mod.stack_list(
528535
github_server=ctx.obj["github_server"],
529536
token=ctx.obj["token"],
530537
trunk=trunk,
531538
output_json=output_json,
539+
verbose=verbose,
532540
)
533541

534542

0 commit comments

Comments
 (0)