When connecting multiple repos together in a Workspace, teams often want to ensure the same label set is created across all connected repos.
Labels are a native GitHub feature, meaning labels belong to each repository, separately. They are pulled into the ZenHub experience as part of interacting with Issues, Workspaces, and Reports. When working in ZenHub in a multi-repo Workspace, because labels belong to the repo, when working with Issues you will see different label sets based on the repo the Issue belongs to.
If you want to see the same labels regardless of which repo the Issue belongs to, there's two options to create the same label set:
- Use the GitHub and ZenHub APIs to create a script that generates the same labels across all connected repos. The benefit of using a script via the API is that you can also have it sync with edits and deletions post-creation.
- If you're looking to do a 1 time mapping to bring all your connected repos in sync, you can leverage ZenHub's multi-action to bulk-create labels.
We receive requests for how to manage labels cross-repo. While we don't yet have a cross-repo label management page, we wanted to share a quick solution that can help teams save a lot of clicks when getting ZenHub setup!
Use multi-action to create labels cross-repo
The multi-action menu for applying labels will pull all available labels across all connected repos.
To apply those available labels to connected repos where labels don't yet exist, get started by creating a Test Issue in each connected repo where you'd like to create labels.
Once you have a test Issue in each connected repo, hover over the avatar and click to enter multi-action. Once you enter multi-action, click on all the newly created Issues.
Once in multi-action, select Apply labels. In the apply label workflow, select all labels that you'd like to be created across all connected Workspaces.
Reminder! This list populates with all labels available from all connected repos—this is why you're able to select labels irrespective of the repo you're in.
Once you've selected all relevant Issues, hit Apply Changes.
Each of your test Issues will now have the selected labels. Because you applied labels to Issues in repos where these labels otherwise didn't exist, ZenHub auto-creates the labels in each repo during the apply process.
After the Issue gets updated with the newly applied labels, use the quick action to close the Issue.
- This workflow will create, but not sync changes made to labels per-repo once the labels are created. If you edit a label in one, but not the other connected repos, the edit will not automatically appear across connected repos. It's highly encouraged to leverage the API for a complete create, edit, delete sync cross-repo.
- This is most recommended when you already have a set of labels you want to re-apply across the other connected repos.
- Labels must exist in 1 of the connected repos to be applied. You will still need to manually create the labels in 1 of your repos.