GitHub Gradle Plugin
The com.arcmutate.github
plugin provides two tasks
- pitest-github
- pitest-github-upload
The pitest-github
task runs pitest against all modules for which it has been configured, then updates the current PR.
The pitest-github-upload
task updates the PR based on previously generated gitci
json files.
Parameters can be configured via a pitestGithub
extension block
pitestGithub {
mutantEmoji = ':vomiting_face:'
trailingText = 'Happy mutant hunting'
}
Extension Parameters
When running in GitHub Actions, most required parameters will be autoset from environment variables. These parameters must be explicitly set in other environments.
repoToken
Required (Actions)
A GitHub Api token with access to the checks api.
In GitHub Actions this will be provided as a secret. If it exported as an environment variable named REPO_TOKEN
the value will be automatically populated in the plugin.
Token authentication does not work for the checks api outside of GitHub actions. If you are using the plugin with a different CI system a private key and app id should be used to authenticate instead.
appId
Required (Other CI)
Required if authenticated outside of GitHub Actions.
The App Id of a single instance GitHub App with the following permissions
- Checks - Read & write
- Issues - Read & write
- Pull Requests - Read & write
appKeyPath
Required (Other CI)
Required if authenticated outside of GitHub Actions.
The path to the private key registered with a GitHub App in PKCS#8 format.
GitHub generates keys in PKCS#1 format, but they can be converted via openssl using
openssl pkcs8 -topk8 -inform PEM -outform PEM -in key-downloaded-from-github.pem -out app-key.pem -nocrypt
sha
Required
Autoset
The head SHA for the pull request.
This value will be automatically populated from the GitHub payload json if the GITHUB_EVENT_PATH
environment variable is set, and points to a valid GitHub file.
pullRequestId
Required
Autoset
The id of the pull request to update.
This value will be automatically populated from the GitHub payload json if the GITHUB_EVENT_PATH
environment variable is set, and points to a valid GitHub file
repoName
Required
Autoset
The repository to update (e.g octocat/example
). If present, this property will be automatically populated from an environment variable named GITHUB_REPOSITORY
.
This environment variable is automatically set by GitHub Actions.
baseURl
Required
Autoset
The base URL of the GitHub api (e.g https://api.github.com
). If present, this property will be automatically populated from an environment variable named GITHUB_API_URL
.
This environment variable is automatically set by GitHub Actions.
githubEventPath
Required
Autoset
The path to the GitHub PR event payload. If present, this property will be automatically populated from an environment variable named GITHUB_EVENT_PATH
.
This environment variable is automatically set by GitHub Actions.
pitestReportPaths
Optional
By default, the plugin will examine the output directories of tasks named pitest
when looking for json files to process. If this behaviour is incorrect for your build, it can be overridden by setting this parameter.
When set, only files within the explicitly supplied directories will be examined.
This parameter is intended for use with the pitest-github-upload
task when files have already been generated by a pitest run.
mutantEmoji
Optional
Character string to use in summary table for surviving mutants.
killedEmoji
Optional
Character string to use in summary table when no surviving mutants.
trailingText
Optional
Custom text to place at end of summary.
deleteOldSummaries
Optional
Boolean flag to determine if summary comments created in a PR by previous runs of the plugin should be deleted. Defaults to false
.