The Quarkus project moves fast and when we prepare bugfix releases, we usually have several dozens of pull requests to backport.
Using the GitHub UI to do that is feasible but cumbersome.
This small Quarkus application is dedicated to facilitate backporting.
The index page allows to choose a milestone to backport to:
Then the backports page lists all the pull requests marked with the backport label:
You can paste the git cherry-pick
command and execute it in a terminal.
Finally, you mark the backport of this pull request as done:
- It removes the backport label from the pull request.
- It affects the milestone to backport to to the pull request.
In your application directory, create a .env file containing your OAuth token:
BACKPORTS_TOKEN=<TOKEN>
Obviously, this token needs write permissions for the repository.
For testing, you obviously don't want to use the Quarkus repository. You can easily target another repository with:
export BACKPORTS_REPOSITORY=my/repository
By default, the label we use to mark the pull requests to backport is triage/backport?
.
You can easily customize it in the application.properties
or use:
export BACKPORTS_LABEL=my-label
You can run your application in dev mode that enables live coding using:
./mvnw quarkus:dev
The application can be packaged using ./mvnw package
.
It produces the quarkus-backports-1.0-SNAPSHOT-runner.jar
file in the /target
directory.
The application is now runnable using java -jar target/quarkus-backports-1.0-SNAPSHOT-runner.jar
.
If for any reason you need to change the GraphQL used to query the GitHub API, use https://developer.github.com/v4/explorer/ to test it.
Don't forget to update the changed output in the documentation/graphql
directory