Skip to content

Add breeze pr stats command for open PR statistics by area - #64667

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:add-pr-stats-command
Apr 3, 2026
Merged

potiuk merged 1 commit into
apache:mainfrom
potiuk:add-pr-stats-command

Conversation

@potiuk

@potiuk potiuk commented Apr 3, 2026

Copy link
Copy Markdown
Member

Add a new breeze pr stats command that produces aggregate statistics of open PRs in the Airflow repo, split by area label. The command uses GraphQL to fetch all open PRs and displays two tables:

  1. Triaged PRs — Final State: Shows triaged PRs that were closed or merged since 2026-03-11, with counts and percentages for closed, merged, and author-responded.

  2. Triaged PRs — Still Open: Shows all open PRs grouped by area with draft/non-draft counts, contributor counts, triage status, response rates, ready-for-review status, time since triager drafted the PR, and time since the author's last interaction.

Features:

  • Cached interaction data (keyed by updated_at) to avoid re-fetching unchanged PRs on subsequent runs
  • --clear-cache flag to force fresh data
  • Detects triager draft conversions via GraphQL timeline events
  • Tracks closed vs merged triaged PRs with area breakdown
  • Footer header rows on both tables for readability

Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

Add a new `breeze pr stats` command that produces aggregate statistics
of open PRs in the Airflow repo, split by area label. The command uses
GraphQL to fetch all open PRs and displays two tables:

1. **Triaged PRs — Final State**: Shows triaged PRs that were closed or
   merged since 2026-03-11, with counts and percentages for closed,
   merged, and author-responded.

2. **Triaged PRs — Still Open**: Shows all open PRs grouped by area with
   draft/non-draft counts, contributor counts, triage status, response
   rates, ready-for-review status, time since triager drafted the PR,
   and time since the author's last interaction.

Features:
- Cached interaction data (keyed by updated_at) to avoid re-fetching
  unchanged PRs on subsequent runs
- `--clear-cache` flag to force fresh data
- Detects triager draft conversions via GraphQL timeline events
- Tracks closed vs merged triaged PRs with area breakdown
- Footer header rows on both tables for readability
Comment thread uv.lock
@potiuk
potiuk merged commit 8c4c990 into apache:main Apr 3, 2026
281 of 283 checks passed
@potiuk
potiuk deleted the add-pr-stats-command branch April 3, 2026 21:25
@github-actions

github-actions Bot commented Apr 3, 2026

Copy link
Copy Markdown
Contributor

Backport failed to create: v3-2-test. View the failure log Run details

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
❌ v3-2-test Commit Link

You can attempt to backport this manually by running:

cherry_picker 8c4c990 v3-2-test

This should apply the commit to the v3-2-test branch and leave the commit in conflict state marking
the files that need manual conflict resolution.

After you have resolved the conflicts, you can continue the backport process by running:

cherry_picker --continue

If you don't have cherry-picker installed, see the installation guide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants