Redprine
Automatically update Redmine issues based on open pull requests.
After opening a pull request, you might need to update the corresponding Redmine ticket with new status information. This program does that work automatically.
The script should be run through a service manager like cron
or launchd
. At
each run, it will fetch all open pull requests for the given project, and update
the corresponding Redmine issue of each new pull request.
Usage
Several parameters are required to configure the script to enable it to communicate with both GitHub and Redmine.
Both a GitHub personal access token and Redmine API key
(https://redmine.example.com/my/account
) are needed.
Here’s an example script with all required arguments:
#!/bin/sh
redprine \
--github-token 'GITHUB_TOKEN' \
--github-username 'teddywing' \
--github-owner-repo 'teddywing/redprine' \
--redmine-base-url 'https://redmine.eaglejump.co' \
--redmine-token 'REDMINE_TOKEN' \
--redmine-json-params 'echo "
{
\"issue\": {
\"status_id\": 4,
\"done_ratio\": 100,
\"custom_field_values\": {
\"1\": \"$0\"
}
}
}
"'
In --redmine-json-params
, enter a string containing a Bash command (it will be
executed with bash -c
). A single argument is passed in $0
containing the URL
of the issue’s pull request. The format must match Redmine’s JSON parameter for
the issue update API endpoint.
Pull request branches are assumed to start with a four-digit number followed by
a hyphen (e.g. 1234-
), where the number is a Redmine issue ID.
Install
Requirements:
curl
jq
Download and copy the Redprine script into your PATH
.
License
Copyright © 2018 Teddy Wing. Licensed under the GNU GPLv3+ (see the included COPYING file).