Browse Guides

GitHub Integration
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide has multiple versions available:
<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><p id="isPasted"><strong>In this guide we will cover:</strong></p><p><strong>- What is the GitHub Integration?</strong></p><p><strong>- Configuring GitHub</strong></p><p><br></p><p><br></p><p><strong><span style="font-size: 14pt;">What is the GitHub Integration?</span></strong></p><p id="isPasted">The GitHub integration is essentially a Webhook set up in GitHub which adds links to commits from the Change Information tab which have the body of the commit equal to the ticket ID. This Integration will process:</p><ul><li data-pasted="true">Pushes: If the comment of a commit is a Ticket id, a link to the commit will show on the Ticket.</li><li data-pasted="true">Pull request: Creation of a pull request with #ticketId in the branch name will link the Ticket to the PR and update the base branch and product on the Ticket. On merging the PR the pull request merge Action will be performed. Enable Release note tagging on this action to tag to the latest unreleased software release for that branch when merging.</li><li data-pasted="true">Pull request reviews: An approve or reject will add a vote to a tickets approval process. Populate the GitHub username at Agent level to match the review to an Agent.</li></ul><p><br></p><p><strong><span style="font-size: 14pt;">Configuring GitHub</span></strong></p><p>First you will need to enable the GitHub Module. To do this head to Configuration &gt; Integrations, Miscellaneous section, and hover over the integration. Now click the plus (+) symbol to enable GitHub.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQ5Y2Y5ZjdlLWYwMzYtNDg4OC04NjE3LTQ0ZjM4ZDNlZjljMCJ9.EEf2irfPC_qf2NI5m9bdob4P05zt-MQVYi3g9Qr4F2c" class="fr-fic fr-fil fr-dib" width="149" style="width: 151px; height: 173.65px;" height="174"></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" data-pasted="true"><strong style="box-sizing: inherit; font-weight: 700;"><span style="box-sizing: inherit; font-size: 10pt;">Fig 1. Enabling the GitHub module.</span></strong></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><br></p><p>Once you have enabled the module click into it to open the GitHub Integration configuration. The GitHub integration is essentially a Webhook set up in GitHub which adds links to commits from the Change Information tab which have the body of the commit equal to the ticket ID. You&#39;ll need to setup a webhook in GitHub that points to the URL *Your Domain*/api/notify/github. To create this Webhook copy the payload URL found at the top of the GitHub Integration page.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjFlYThjMmU2LTIwYjAtNDM3Yy1iYTE0LWVlYmYxYjMwOWQ5NiJ9.oqDjuL9wcaPVWWu5DMDwz2jEYGsXE6c3c7e0-l37Ns0" class="fr-fic fr-fil fr-dib" width="1226" style="width: 1228px; height: 519.168px;" height="519"></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" data-pasted="true"><strong style="box-sizing: inherit; font-weight: 700;"><span style="box-sizing: inherit; font-size: 10pt;">Fig 2. Payload URL.</span></strong></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><strong style="box-sizing: inherit; font-weight: 700;"><span style="box-sizing: inherit; font-size: 10pt;">&nbsp;</span></strong></p><p>Now head to GitHub and open the side menu and select &quot;Repositories&quot;. Now choose the &quot;My repositories&quot; tab. Select the cog icon on the repository you would like to connect to Halo. If you do not have an existing repository you will need to create one using the &quot;New repository&quot; button.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImU2ZTMxYTlhLTdkMDctNDJhMy1iMzk4LThiMzJkYzNhYTNlNCJ9.0BWvJye7x6kxltAT73iqlqo_KIHYXhg5yJosQDqUxzI" class="fr-fic fr-fil fr-dib" width="1225" style="width: 1227px; height: 224.133px;" height="224"></p><p><br></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" data-pasted="true"><strong style="box-sizing: inherit; font-weight: 700;"><span style="box-sizing: inherit; font-size: 10pt;">Fig 3. GitHub Repositories.</span></strong></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><br></p><p>The cog icon will take you to the settings tab of your repository.Select &quot;Webhooks&quot; from the settings list on the left hand side, and click &quot;Add Webhook&quot;.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImIzODNjMjczLWFhOTAtNDI2Ni04YThkLTg2ZjdmMjA4MTQzOSJ9.H3bVIJF6gLmO2L416m6S4ywTLEYzI9YkN2lRK9uSA2k" class="fr-fic fr-fil fr-dib" width="1225" style="width: 1227px; height: 598.786px;" height="599"></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" data-pasted="true"><strong style="box-sizing: inherit; font-weight: 700;"><span style="box-sizing: inherit; font-size: 10pt;">Fig 4. Webhooks in <strong style="box-sizing: inherit; font-weight: 700;" data-pasted="true"><span style="box-sizing: inherit; font-size: 10pt;">GitHub</span></strong>.</span></strong></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><br></p><p>Now paste your Payload URL from <strong>Fig 2&nbsp;</strong>into the &quot;Payload URL&quot; field. Set the content type to &quot;application/json&quot;, and create and copy a secret. Now choose which events you would like to trigger the Webhook from GitHub, and set the Webhook to be active.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQyMDQ1OGVhLTY1ODYtNGUyYS04YTE2LTU5ZGNhODZlNDVlZiJ9.KrrDKtcbBADzut6OzHBHqUp3NscRpnZFhS3PCLvNLCQ" class="fr-fic fr-fil fr-dib" width="1231" style="width: 1233px; height: 603.34px;" height="603"></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" data-pasted="true"><strong style="box-sizing: inherit; font-weight: 700;"><span style="box-sizing: inherit; font-size: 10pt;">Fig 5. Creating a Wehook in GitHub.&nbsp;</span></strong></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><br></p><p>Once you have set up your Webhook head back to the Integration setup in Halo. Here paste your Webhook secret, and set a &ldquo;Pull Request Merge Action&rdquo; using the drop-down. The action you choose here will be the action performed whenever the integration runs.</p><p><br></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4MmY4MjdmLTU2NTItNDgwMy04OThjLTVjYWIwNWY1N2NhMCJ9.4r0cLlKs_MP8Wfdee0ElHzZDsxuLjFt8QbGOdy9kKl0" class="fr-fic fr-fil fr-dib" width="880" style="width: 882px; height: 478.585px;" height="479"></p><p><strong><span style="font-size: 10pt;"> </span></strong><span style="font-size: 10pt;"><strong>Fig 6.&nbsp;</strong></span><span style="font-size: 10pt;"><strong>Pull request merge Action.</strong></span></p><p><br></p><p>Below this you will find the &quot;Configure Products&quot; Button. Clicking this will take you to a list of your Software Release Products. &nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI2MjJjZGY2LWYyZGUtNDljOS04NjFlLTU0ZTZiNzZkODMzNyJ9.L-Aj9YdfmRvZEVZN87CQNvJ4YGI26N4PMyvQ_GozaCA" class="fr-fic fr-fil fr-dib" width="1099" style="width: 1101px; height: 474.991px;" height="475"></p><p data-pasted="true"><strong><span style="font-size: 10pt;">Fig 7. Configuring</span></strong><strong><span style="font-size: 10pt;">&nbsp;Products. </span></strong></p><p>&nbsp;</p><p>Here select a product and use the field to link to your GitHub Repository using the format Owner/Repository name.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUxNjlhNzY1LTI4NDEtNGQ1Ni1iYzE0LWJjZjRkYWFlMWYwMCJ9.nDofARlaxl4ZR9zTWB14Q1wcTY0zLIWPkICi8jMDzu4" class="fr-fic fr-fil fr-dib" width="1112" style="width: 1114px; height: 313.684px;" height="314"></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" data-pasted="true"><strong style="box-sizing: inherit; font-weight: 700;"><span style="box-sizing: inherit; font-size: 10pt;">Fig 8</span></strong><strong style="box-sizing: inherit; font-weight: 700;"><span style="box-sizing: inherit; font-size: 10pt;">. Linking a GitHub Repository to a product.</span></strong></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><strong style="box-sizing: inherit; font-weight: 700;"><span style="box-sizing: inherit; font-size: 10pt;">&nbsp;</span></strong></p><p>After this, the integration should function as intended by the information outlined in the integration page.&nbsp;</p>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.