Working with Multiple Repositories

It’s common for the code that makes up a single product or service to live in different GitHub Repositories (for example, a single product could have code live in three different repos: an API repo, a mobile app repo, and a front end repo). In Codetree, Projects provide a way to unify issues from related GitHub Repositories. Once multiple Repositories are part of the same Project, their issues are displayed and managed together in much the same way as if all of the issues were in a single Repository. There are a number of reasons why you might want to manage issues in different repositories in a unified way. Some examples include:

  • Repositories for different layers or components of your application e.g. API and UI repos.
  • Repositories for shared libraries used in different products e.g. authentication.
  • You're using a micro services architecture and each service lives in its own Repository.

In fact, the same Repository can live in multiple Projects. When a Repository is in multiple Projects its issues will show up in and be editable in each Project simultaneously.

Codetree Automatically adds Labels and Milestones to all Repos in a Project

Once a group of Repositories are part of a Project, Codetree will:

  • Ensure that each Repository that is part of the Project shares the same set of GitHub Labels.
  • Ensure that each Repository that is part of the Project shares the same set of GitHub Milestones.
  • Allow you to view Issues from each of the Repositories in the same List or Board.
  • Allow you to filter the Issues as if they were in the same Repository. For example, if Repositories A and B are part of the same Project a filter like, “Show me all of John’s issues labeled ‘Blocker’” will return Issues from both Repository A and Repository B.

When a Repository is first added to a Project, Codetree will automatically add each Label and Milestone that exists in the newly-added Repository to all the other Repositories that are also part of the Project. 

Similarly, each Label and Milestone that are in the other Repositories that are already part of the Project will get added to the newly added Repository. 

If, at a later date, you add, delete or rename a Label or Milestone, Codetree will ensure that all of the corresponding Labels and Milestones in all Repositories that are part of the Project will also end up with the same change applied. This is true whether the Milestone or Label was created in GitHub or in Codetree.

Adding a Label in Repo A adds a Label with the same name to Repo B because they are part of the same Project.