Skip to content

RFC 740.0000: Ladder labels for PRs - #46

Open
Piinks wants to merge 2 commits into
flutter:mainfrom
Piinks:pr-role-labeling
Open

Piinks wants to merge 2 commits into
flutter:mainfrom
Piinks:pr-role-labeling

Conversation

@Piinks

@Piinks Piinks commented Nov 11, 2026 •

Copy link
Copy Markdown
Collaborator

Proposes adding labels to PRs to gain visibility on their ladder roles, making new code review process and requirements clearer for reviewers.

Tracking issue: flutter/flutter#186415

Related:

Pre-launch Checklist

  • I read RFC 000.0001: Taxonomy and followed the file and path naming and metadata standards.
  • I read RFC 000.0002: Process and confirmed this proposal meets the threshold for a full RFC.
  • I read and agree to the Code of Conduct.
  • I signed the CLA.
  • I have linked an issue from flutter/flutter with the label design doc.
  • All existing and new tests are passing.
  • I have enabled "Allow edits from maintainers" on this PR so the bot can automatically assign an RFC number (or I will run dart run bin/assign_rfc_number.dart locally when instructed).

If you need help, consider asking for advice on the #hackers channel on Discord.

@Piinks
Piinks requested review from jtmcdole and zanderso November 11, 2026 20:47

## Open Questions

- Should we have an Emeritus label as an additional trust signal, given they are past trusted contributors?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a lot of emeriti, so I think this would work against the goal of the rfc.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that makes sense. Thinking about it more, emeriti will no longer be members of the org and require two approvals, which might be confusing to label given the intended signals of the other labels.

## Open Questions

- Should we have an Emeritus label as an additional trust signal, given they are past trusted contributors?
- Should we avoid `read:org` scope in the workflow and instead refer to `data/contributors.yaml` from `flutter/contributors`?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are the trade-offs?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The biggest difference is token security and secret management. The default GITHUB_TOKEN in GitHub Actions is scoped strictly to the repository where the workflow runs and cannot query organization team memberships. Checking teams via the GitHub API would require provisioning, rotating, and exposing a PAT or GitHub App token with read:org scope across every repository's Actions secrets, and would make up to 3–4 REST API calls per PR (/orgs/flutter/teams/{team}/memberships/{user}) against a single shared rate limit across all repositories.

By contrast, flutter/contributors is public, so labeler.yml can fetch data/contributors.yaml in a single lightweight request using the default repo-scoped GITHUB_TOKEN (or plain HTTPS) and check the author's role locally on the runner without any extra secrets or elevated org-level permissions. Roster drift also isn't really a concern since data/contributors.yaml is already our source of truth for quarterly audits and we have an out-of-band process in flutter/contributors for updating the roster when new teammates join.

Given our security postures, I figured reading data/contributors.yaml was much cleaner, but didn;t want to omit the alternative.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. Reading out of flutter/contributors definitely sounds simpler and safer.

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.

2 participants