cloudfoundry / community

Governance and contact information for Cloud Foundry
Apache License 2.0
38 stars 166 forks source link

Auto-assign people to issues and PRs #498

Closed plowin closed 10 months ago

plowin commented 1 year ago

Background

In the CFF App Runtime Platform WG, @ameowlia struggles to keep up assigning issues and PRs to people and asked for some help automating this. I volunteered for a POC as noted as action item in our last WG meeting.

This is relevant for both issues and PRs and I took a look at both. From my POV, we need TOC-agreement for the PR-approach as we'd need a org-wide setting. I think, assigning issues seems to be more urgent and we could also try out a WG-specific solution for it and have a dedicated issue for it outside the central TOC/community project.

Proposal for Issues

I could not find a built-in option and checked two alternatives:

  1. GitHub app: https://github.com/apps/auto-assign-issues
  2. GitHub action: https://github.com/marketplace/actions/auto-assign-issue#working-with-issues

Option 1 did not work and seems not to be flexible for using GitHub teams but I had some success with Option 2, I am preferring 2b:

Option 2a (list of people):

This works just fine:

Option 2b (GitHub "team"):

Proposal for PRs

For PRs, we we could use auto-assignment which is available for github orgs and teams. Tried it out for my test-org after adding two colleagues:

Additional Questions

In general, I am also not so sure how flexible we are with the GitHub teams. For example in App Runtime Platform WG, we got some areas with experts or even dedicated team-responsibility. We might need a more fine-granular concept of GitHub teams representing this. For us, this might be fine as we just got a new GitHub team that might be used. But for a general concept, this probably needs some broader discussions. Let's use this issue to start them!

ameowlia commented 1 year ago

Thank you for looking into this @plowin!

😅 I definitely don't think any option will be free or easy.

🤔 I think it would be great if PRs + Issues were handled by the same mechanism. Maybe like this action? (Warning: I did not test it).

❓ What do other WG's handle this stuff? cc: @cloudfoundry/wg-leads ?

plowin commented 1 year ago

Hi @ameowlia , thanks for the feedback and link. It makes sense having the same mechanism but with the current tooling on the web, it does not seem to be possible. The action looked promising and I tried it out in my setup. It seems to support configuring teams for both, issues and PRs.

Sadly, it does not have any round-robin functionality. When specifying numberOfAssignees to 1, it always takes the first entry from the list. Also checked in the code and there is nothing to get what we need. I raised an issue if this could enhance this workflow in general: https://github.com/wow-actions/auto-assign/issues/11

I'd also be curious how other working-groups handle this, waiting for further ideas.

gcapizzi commented 1 year ago

We use GitHub issues as backlog items, so they go through the classical Tracker-like flow: icebox -> selected -> in progress (that's when we assign) -> finished -> accepted -> done. A flow that auto-assigned issues wouldn't work for us.

On the other hand, it would be convenient for issues opened by people outside of the team. At the moment we just dump them in the icebox, which means it make take us a few days to even notice them.

beyhan commented 1 year ago

We use our FI WG meeting to assign people to PRs with the mentioned auto-assignment project settings of Github. For issues we don't have a strict approach. Basically, we try to react on them in a best effort approach and most of the time we don't have anyone assigned to them. During our FI WG we go over the issues which are still in our inbox and close or add a comment to them which transition the issues into our Discussion | Pending Review state. Additionally, we look into all issues in Discussion | Pending Review which have a Last Activity date newer than our last FI WG meeting. With this we guarantee that active issues will be updated latest during our FI WG meeting.

ameowlia commented 1 year ago

@beyhan - How do you get a list of all issues and PRs for your working group? We have projects, split up by area. But projects only allow you to link 25 repos, and our areas have more than that.

ameowlia commented 1 year ago

@Benjamintf1 - Curious to hear how you handle this issue Ben, since I know your area handles this on its own.

beyhan commented 1 year ago

@ameowlia There is a tool/Github action developed by @rkoster to sync all our repos into one project like here. We struggled also with the Github limit of 25 repos. Not having everything in one place makes it unmanageable. It should be generic so that your WG could also have its own sync.

ryanmoran commented 1 year ago

The Buildpacks area in the ARI WG has just one big pool of people and repos when in reality it only makes sense to assign certain users to certain issues. We'd love to have some automation like what is being proposed, but I think this would mean that we'd need to sub-divide our current area quite significantly (1 area becomes 15 areas). Do others have this type of sub-division within their area? Do we just need to bite the bullet and create lots of buildpack areas within ARI?

ameowlia commented 1 year ago

@ryanmoran - We have a similar issue with having broad areas and some approvers only have expertise in parts of the areas.

beyhan commented 11 months ago

@plowin Do you have a solution in the mean time? Can we close this?

beyhan commented 10 months ago

Closing because of inactivity. @plowin please reopen if it is still relevent.