rust-lang / triagebot

Automation/tooling for Rust spaces
https://triage.rust-lang.org
Apache License 2.0
172 stars 74 forks source link

[Tracking] New pull request assignment proposal #1753

Open apiraino opened 9 months ago

apiraino commented 9 months ago

This issue tracks the progress of the implementation of a new workflow for assigning pull requests to the Rust project contributors.

2024-02-20 UPDATE: After other opinions came in, a new plan was discussed. Updates below.

2023-12-12 UPDATE: After another meeting with T-infra, we agreed a second plan detailing how to split the work further. The new plan is detailed below.

2023-11-08 UPDATE: After a meeting with T-infra, it was remarked that the first implementation (#1719) was hard to review so we agreed a plan to split into smaller bites (#1745)


Summary

The current pull request assignment is basically randomly assigned among team members. The new proposed workflow has the following features:

A slightly old design document is at this HackMD link.

Permissions and Authorization

This backoffice could be thought as a simple form listing all team members. It is served by the triagebot (from triagebot.infra.rust-lang.org). Access to this backoffice is gated by a GitHub App. Users allowed to this backoffice: 1) must be logged into GitHub 2) must agree to the share some details with a GitHub App (only to read their profile) 3) must be a Rust project team member 4) the team they belong must be whitelisted in the env var NEW_PR_ASSIGNMENT_TEAMS

Team leaders are considered administrators and can see the preferences of every team member. Normal team members can only see their own preferences and those of team members that agree to share theirs within the team.

DEPLOYMENT

There will a few env vars to enable the new PR assignment and retrict access to this backoffice.

The idea would be to iterate on this pull request and iron out all the wrinkles visible without deployment:

apiraino commented 6 months ago

@rustbot claim