What is the Update GitHub Status Build Event Handler?
The 'Update Github Status Build Event Handler' is an event handler which interacts with the Github Status API. This feature allows Continua CI to mark commits within a GitHub repository with a success, failure, or pending state. The status can then be reflected in any pull requests involving those commits.
The event handler is set to automatically respond to the following Build Events:
- On Before Stage Start
- On Build Pending Promotion
- On Stage Completed
- On Build Stopping
- On Build Completed
The Pending status is sent when the On Before Stage Start event is triggered for a specified stage.
The Success status is sent when the On Stage Completed event is triggered for a specified stage, or optionally when the On Build Pending Promotion event fires - whichever is first.
The Failure status is sent when the On Stage Completed event is triggered for a specified stage or On Build Stopping, On Build Completed events are triggered and the build has failed.
Example use case
This event handler works fantastically as a pre-step within a pull request pipeline. ContinuaCI can be configured to automatically pull the request, build it, test it, and report back its status.
How to create an update GitHub Status Build Event Handler
- Navigate to the events tab within the desired Build Configuration
- Click the 'Create' link within the 'Build Event Handlers' section
Select an Event Handler
- Enter the name of the event handler (in this case 'Update Github Status')
- Enter the sequence in which you wish this event handler to be run. In our case this is the first event handler so we will leave the default of 1
- From the type dropdown select 'Update GitHub Status'
Event Handler Name
Friendly name for the event Handler (this will be visible in the 'Events' section of the website)
The order in which the event handler will be run (relevant in the situation where multiple event handlers are present).
Whether this specific event handler is able to be run
The type of event handler (Octopus Deploy, Tag Repository Changeset, Update GitHub Status)
Update GitHub Status
Enter the GitHub API URL.
- Enter your GitHub Username / Password.
- Enter your access token.
- Enter the name of the ContinuaCI repositories that you wish to consider when updating status (these can be found on the 'repositories' page).
GitHub UrlThe URL of the GitHub API endpoint to be used (more specific details on this can be found: here).
UsernameThe GitHub Username used to login (this user should have access to the repository in question).
PasswordThe GitHub Password used to login (passwords should not contain any of the following characters: !:@).
Access TokenThe Access Token used to submit information to GitHub (A detailed explanation on how to create and maintain an access token can be found within the github documentation).
RepositoriesA comma separated list of repository names to apply this status information to.
When To Run
- Enter the stage timings when this event handler should be run.
Start StageThe stage for the On Before Stage Start event when the 'Pending Comment' text will be sent
End StageThe stage for the On Stage Completed event when the 'Success Comment' or 'Failure Comment' text will be sent
Complete on Waiting PromotionIf any stage is awaiting promotion, send the Success or Failure Comment on the On Build Pending Promotion event
- Enter the comments that you wish to send to GitHub
Pending CommentThe text of the comment that will be sent when the build hits the 'On Before Stage Start' event for the specified stage.
Failure CommentThe text of the comment that will be sent when build hits the 'On Stage Completed' event for the specified stage, and the build has failed.
Success CommentThe text of the comment that will be sent when build hits the 'On Stage Completed' event for the specified stage, and the build has succeeded.
- Select the build options for this event handler
Wait for ResultsShould the event handler wait for the result before proceeding. Unchecking this option will run the Event Handler in a separate thread.
Fail Build on ErrorWhether or not to Fail the build if this event handler fails.
Log Build MessagesWhether or not logs for this event handler will be displayed in the build log.