

How to Link GitHub Commits to Jira with Power Automate
Automatically comment on Jira tickets with commit details whenever a GitHub commit message contains a Jira ticket key.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Development teams using Jira for project tracking who want automatic commit visibility without manual ticket updates
Not ideal for
Teams needing complex commit parsing or those wanting bidirectional sync between GitHub and Jira
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person development team uses this to automatically link commits to Jira tickets. When a developer commits with message 'PROJ-123: Fix login bug', the flow adds a comment to ticket PROJ-123 with the commit hash, author, and GitHub link. Before automation, developers manually updated 8-10 tickets daily, often forgetting to link commits during crunch time.
What Will This Cost?
Drag the slider to your expected monthly volume.
Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.





Prices shown for annual billing. Based on published pricing as of April 2026.
Estimated ROI
1000
min saved/mo
$583
labor value/mo
Free
no platform cost
Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.
Implementation
Import this workflow directly into Power Automate
Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. All modules, filters, and field mappings are already configured — you just need to connect your accounts.
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Commit Message | ||
| Commit SHA | ||
| Author Name | ||
| Repository Name | ||
| Commit URL | ||
| Jira Ticket Key | ||
2 optional fields▸ show
| Author Email | |
| Branch Name |
Step-by-Step Setup
My flows > + New flow > Automated cloud flow
Create new automated flow
Navigate to make.powerautomate.com and sign in with your Microsoft account. Click 'My flows' in the left sidebar, then the '+ New flow' button. Select 'Automated cloud flow' from the dropdown menu. Name your flow 'GitHub Commit to Jira Linker'.
- 1Click 'My flows' in the left navigation
- 2Click '+ New flow' button
- 3Select 'Automated cloud flow'
- 4Enter 'GitHub Commit to Jira Linker' as flow name
Flow creation > Choose trigger > GitHub
Add GitHub webhook trigger
Search for 'GitHub' in the connector search box and select it. Choose 'When a commit is pushed' trigger from the GitHub triggers list. You'll see connection setup if this is your first GitHub integration. Click 'Create' to proceed to the flow designer canvas.
- 1Type 'GitHub' in the connector search
- 2Select GitHub from results
- 3Click 'When a commit is pushed' trigger
- 4Click 'Create' to open flow designer
GitHub trigger > Repository settings
Configure GitHub repository settings
Click 'Sign in' to authenticate with GitHub if needed. Select your target repository from the Repository dropdown. Choose 'main' or your primary branch from the Branch dropdown. Leave other fields at defaults unless you need specific commit filtering.
- 1Click 'Sign in' and authorize Power Automate
- 2Select repository from Repository dropdown
- 3Choose target branch from Branch dropdown
- 4Leave additional filters empty
Flow designer > + New step > Control > Condition
Add condition to check for Jira keys
Click '+ New step' below the GitHub trigger. Search for 'Condition' and select it from Control actions. In the condition builder, click the left value field and select 'Commits message' from dynamic content. Set the operator to 'contains' and enter a pattern like 'PROJ-' for your Jira project key prefix.
- 1Click '+ New step' button
- 2Search for 'Condition' and select it
- 3Click left value field and choose 'Commits message'
- 4Set middle dropdown to 'contains'
- 5Enter your Jira project prefix like 'PROJ-'
Condition Yes branch > Add an action > Data Operations > Compose
Extract Jira ticket number
In the 'Yes' branch, click 'Add an action'. Search for 'Compose' and select it from Data Operation actions. This will extract the ticket number from the commit message. We'll use this to build the Jira API call in the next step.
- 1Click 'Add an action' in the Yes branch
- 2Search for 'Compose' and select it
- 3Click in the Inputs field
- 4Add dynamic content 'Commits message'
Compose action > Inputs > Expression
Add expression to parse ticket ID
Click in the Compose Inputs field and select 'Expression' tab. Enter this formula to extract the ticket ID: split(outputs('Compose'),'-')[1]. This assumes your tickets follow PROJ-123 format. Click 'OK' to save the expression.
- 1Click in the Compose Inputs field
- 2Switch to 'Expression' tab
- 3Enter: first(split(last(split(triggerBody()['head_commit']['message'], ' ')), '-'))
- 4Click 'OK' to save expression
Compose action > Add an action > HTTP
Connect to Jira
Click 'Add an action' below the Compose step. Search for 'HTTP' and select the 'HTTP' connector. Choose 'HTTP - HTTP' action since Power Automate doesn't have a native Jira connector. We'll build the Jira REST API call manually.
- 1Click 'Add an action' below Compose
- 2Search for 'HTTP' and select it
- 3Choose 'HTTP' action
- 4Set Method to 'POST'
HTTP action > Configuration
Configure Jira API request
Set Method to 'POST'. In URI field, enter your Jira base URL plus API path: https://yourcompany.atlassian.net/rest/api/3/issue/PROJ-[ticket]/comment. Replace [ticket] with dynamic content from the Compose step. Add Content-Type header as 'application/json'.
- 1Set Method to 'POST'
- 2Enter URI: https://yourcompany.atlassian.net/rest/api/3/issue/
- 3Add dynamic content from Compose for ticket number
- 4Complete URI with /comment
- 5Add header: Content-Type = application/json
HTTP action > Show advanced options > Authentication
Add Jira authentication
In the HTTP action, click 'Show advanced options'. Set Authentication Type to 'Basic'. Enter your Jira email as Username. For Password, use an API token generated from your Jira account settings, not your login password. Generate this token at id.atlassian.com/manage/api-tokens.
- 1Click 'Show advanced options'
- 2Set Authentication Type to 'Basic'
- 3Enter your Jira email in Username
- 4Paste API token in Password field
- 5Click outside to save settings
HTTP action > Body
Build comment JSON body
In the Body field of HTTP action, enter JSON for the Jira comment. Include commit details using dynamic content from the GitHub trigger. The body should contain commit message, author, SHA, and GitHub link formatted for Jira's comment structure.
- 1Click in the Body field
- 2Enter opening JSON structure
- 3Add dynamic content for commit details
- 4Include GitHub commit URL
- 5Close JSON structure
Flow designer > Save > Test
Test and save flow
Click 'Save' in the top right to save your flow. Then click 'Test' and choose 'Manually' to test with a sample commit. Make a commit to your configured repository with a Jira ticket key in the message. Check both the flow run history and your Jira ticket for the comment.
- 1Click 'Save' button in top right
- 2Click 'Test' button
- 3Select 'Manually' test option
- 4Make a test commit with Jira key
- 5Check flow run results
Add this JSON structure to the HTTP Body field to create properly formatted Jira comments with commit details and GitHub links.
Copy this template{▸ Show code
{
"body": {
"type": "doc",... expand to see full code
{
"body": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"text": "📝 Commit: @{triggerBody()['head_commit']['message']}",
"type": "text"
}
]
},
{
"type": "paragraph",
"content": [
{
"text": "👤 Author: @{triggerBody()['head_commit']['author']['name']}",
"type": "text"
}
]
},
{
"type": "paragraph",
"content": [
{
"text": "🔗 View commit: ",
"type": "text"
},
{
"text": "@{triggerBody()['head_commit']['url']}",
"type": "text",
"marks": [
{
"type": "link",
"attrs": {
"href": "@{triggerBody()['head_commit']['url']}"
}
}
]
}
]
}
]
}
}Going live
Production Checklist
Before you turn this on for real, confirm each item.
Troubleshooting
Common errors and how to fix them.
Frequently Asked Questions
Common questions about this workflow.
Analysis
Use Power Automate for this if your team already lives in the Microsoft ecosystem and wants native Office 365 integration. The HTTP connector gives you full control over Jira's REST API, and webhook triggers fire within 30 seconds of commits. Skip this if you need complex commit parsing or regex matching - n8n handles text manipulation much better.
Real math time. GitHub webhooks don't count against your action limits, but each HTTP call to Jira does. At 50 commits per day with ticket references, that's 1,500 actions monthly. Power Automate Premium costs $15/month and includes 5,000 actions, so you're covered. Zapier's Professional plan costs $19.99 for the same volume but includes better error handling.
n8n crushes this workflow with regex nodes and proper JSON parsing - no weird expression syntax required. Make offers better HTTP error handling and retry logic out of the box. Zapier's GitHub integration catches more webhook events reliably. But Power Automate wins if you're already paying for Office 365 and need the flow to integrate with SharePoint or Teams notifications later.
You'll hit Jira's rate limits at 100+ commits per hour - add delays between HTTP calls. The GitHub webhook occasionally delivers duplicate events during repository migrations or branch operations. Power Automate's expression language is clunky for text parsing compared to actual code, so complex commit message formats become painful fast.
Ideas for what to build next
- →Add commit diff size tracking — Enhance comments with lines added/removed counts and file change summaries for better code review context.
- →Create pull request linking — Extend the flow to comment on Jira tickets when PRs are opened, merged, or closed with ticket references.
- →Build deployment notifications — Add a second flow to update Jira tickets when commits are deployed to staging or production environments.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup