I'm designing a tool in my organisation to help me with release management. The organisation is composed of several small teams that manage their own repositories in git. The release manager is responsible for cutting branches across all development lines in each of the repositories and then hand it off to QA processes.
The tool asks each team to define a simple YAML spec detailing the steps used to compile and package the team's source into binary artifacts. These could be a maven instruction or a python setup. Different languages (and build tools) are used for each of these projects. The YAML spec and instructions to build/package are stored within individual team repositories.
During a release, my release tool will have to cut branches from all the development branches of these repositories. What I'm struggling with is -- where to store this list of development branches per repository?
It doesn't belong within my tool because I don't want teams to define that list in my tool's source code.
It can't be stored in the repos of the teams because my tool wouldn't know which branch of the team's repo to look at for the development branch information. That's a strange self-reference.