A tool to coordinate a release across multiple GitHub repositories.
Using the config.json it will:
- Based on tags on the designated
MainRepo, calculate the next version using semantic versioning (Major, Minor, Patch) - Collate all PR messages since the last release across the
MainRepoand anyCoreReposinto aCHANGELOG - Present a list of proposed changes so the user can double check
- If the user agrees to go ahead it will use the GitHub API to:
- Tag the
MainRepoand allCoreReposwith the new version - Create or update the
Versionfile in the main Databox repo - Create a release on the
MainRepowith the generatedCHANGELOG - If the
-docsflag is given:- Build a documentation file from the
README.mdfiles in the repos indicated in theDocssection - Upload the generated documentation under a release [TODO]
- Build a documentation file from the
- Tag the
go get github.com/me-box/GitHubReleaseTool
cd [to go path]/src/github.com/me-box/GitHubReleaseTool
go build ghrelease.go
or to build in a container
make build # produces me-box/ghrelease
-config string
path of the config file (default "./config.json")
-docs
build docs from README.md files in main and core repos
-docsOutFile string
Where should the docs be output (default "./Documentation.md")
-major
Major release
-minor
Minor release
-patch
Patch/Bugfix release (default: true)
-release
set this to `false` to disable releasing (for example if you just want to rebuild the docs) (default: true)
Development of Databox has been supported by the following EPSRC funding:
EP/N028260/1, Databox: Privacy-Aware Infrastructure for Managing Personal Data
EP/N028260/2, Databox: Privacy-Aware Infrastructure for Managing Personal Data
EP/N014243/1, Future Everyday Interaction with the Autonomous Internet of Things
EP/M001636/1, Privacy-by-Design: Building Accountability into the Internet of Things (IoTDatabox)
EP/M02315X/1, From Human Data to Personal Experience