MeltanoLabs / Meta

The why, what, and how of MeltanoLabs
MIT License
5 stars 1 forks source link

MeltanoLabs Operational Project Board #45

Open kgpayne opened 1 year ago

kgpayne commented 1 year ago

As a maintainer of repos in MeltanoLabs I would like a single filterable view of the issues and PR's raised in each of the repos in the MeltanoLabs organisation.

Example:

A backlog of issues grouped by Repository.

Screenshot 2023-05-10 at 11 39 55
kgpayne commented 1 year ago

Last week I looked briefly at doing this with GitHubs auto-add workflows. Unfortunately, these workflows are limited to 4 duplicates (i.e. 4 repos in total). With 44+ repos in the MeltanoLabs Org, this won't scale.

Another alternative is to use GitHub actions, such as actions/add-to-project, to catch issue opened, reopened or transferred events and add to the MeltanoLabs Operational Project Board. This relies on placing and maintaining a GitHub workflow in each repo, which might be laborious. However, the Pulumi GitHub provider supports managing repo files, so we may be able to define this workflow once and apply to existing and future repos using Pulumi.

I also looked at the Required Workflows feature of GitHub, but it operates as a "check" on PR's and didn't appear suitable for auto-adding issues to a Project.

kgpayne commented 1 year ago

@edgarrmondragon @cjohnhanson do you know of any other ways to auto-add issues/PR's to projects?

@pnadolny13 I suppose we could use tap-github and a custom target to EL issues and PR's into a Project, but that feels a bit heavyweight given the action-based alternative above 😅

cjohnhanson commented 1 year ago

@kgpayne --

Unfortunately, these workflows are limited to 4 duplicates (i.e. 4 repos in total).

Oof, I did not realize that. That's a pretty strict limit.

Would it be possible to use a .github repo in the MeltanoLabs organization to manage this workflow? @WillDaSilva would have more knowledge about how .github repos work, having created a workflow in the Meltano org's .github for syncing labels across repos there. But it's not totally clear to me that that would work for this use case.

Another option may be to create a starter workflow in the organization that auto-adds to the project. It's still a lot of manual work to maintain, but this would allow you to more quickly create that same workflow in every repo in the org.

A final option that I'm not 100% sure would work but would be pretty great if it did would be to create a workflow here in this Meta repo (or maybe in a .github repo) that triggers on a "repository_dispatch" event. Then you could use a starter workflow as above to do the one-time manual work of creating a workflow in each repository that simply sends issue creation events to the centralized repository_dispatch endpoint. You'd still have to add the workflow to each repo--including newly created repos--but the actual logic for adding the issue to the project would only have to be maintained in one place. And then using repo templates and starter workflows to have each repo send the events is much less work than maintaining the workflow in each repo.