Intermediate~15 min setupDeveloper Tools & Project ManagementVerified April 2026
GitHub logo
Jira logo

How to Link GitHub Commits to Jira Tickets with Pipedream

Automatically add commit details as comments on Jira tickets when commit messages contain ticket keys.

Steps and UI details are based on platform versions at time of writing β€” check each platform for the latest interface.

Best for

Dev teams that want instant visibility of code changes on Jira tickets without manual cross-referencing

Not ideal for

Teams using GitLab or Bitbucket as their primary code host instead of GitHub

Sync type

real-time

Use case type

notification

Real-World Example

πŸ’‘

A 12-person development team at a fintech startup uses this to track code changes on bug tickets. Before automation, devs manually copied commit hashes into Jira comments, which took 2-3 minutes per commit and often got skipped during crunch time. Now every commit with a ticket key automatically appears as a Jira comment within 10 seconds.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

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

Skip the setup

Import this workflow directly into Pipedream

Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. 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.

Admin access to GitHub repository with webhook creation permissions
Jira project access with permission to add comments on tickets
Jira API token generated from account security settings
Commit message convention that includes Jira ticket keys (e.g., PROJECT-123)

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Issue KeyissueIdOrKey
Comment Bodybody
Commit Message
Commit Author
Commit SHA
Repository Name
2 optional fieldsβ–Έ show
Branch Name
Commit Timestamp

Step-by-Step Setup

1

Workflows > New > Start from scratch

Create New Workflow in Pipedream

Navigate to pipedream.com and click Workflows in the sidebar. Click the blue New button in the top right. Select 'Start from scratch' when the template picker appears. Name your workflow 'GitHub Commit to Jira Comments' in the workflow title field.

  1. 1Click Workflows in the left sidebar
  2. 2Click the blue New button in top right corner
  3. 3Select 'Start from scratch' from template options
  4. 4Type 'GitHub Commit to Jira Comments' in the title field
βœ“ What you should see: You should see a blank workflow canvas with 'Choose app or service' as the first step.
2

Trigger Step > Choose app > GitHub > New Push

Add GitHub Push Event Trigger

Click the 'Choose app or service' button in the trigger step. Search for 'GitHub' and select it from the results. Choose 'New Push' from the available GitHub events. This trigger fires every time someone pushes commits to your repository.

  1. 1Click 'Choose app or service' in the trigger box
  2. 2Type 'GitHub' in the search field
  3. 3Select 'GitHub' from the dropdown results
  4. 4Click 'New Push' from the event list
βœ“ What you should see: The trigger step should now show 'GitHub - New Push' with a configuration panel below.
⚠
Common mistake β€” The 'New Commit' event doesn't exist in Pipedream - use 'New Push' which captures all commits in the push.
Pipedream
+
click +
search apps
GitHub
GI
GitHub
Add GitHub Push Event Trigger
GitHub
GI
module added
3

GitHub Trigger > Connect Account

Connect Your GitHub Account

In the GitHub trigger configuration, click 'Connect Account' next to the Account field. A popup will open asking for GitHub authorization. Click 'Authorize Pipedream' to grant access to your repositories. After authorization completes, select your target repository from the Repository dropdown.

  1. 1Click 'Connect Account' button in the trigger config
  2. 2Click 'Authorize Pipedream' in the GitHub popup window
  3. 3Return to Pipedream and refresh if needed
  4. 4Select your repository from the Repository dropdown
βœ“ What you should see: You should see your connected GitHub username and selected repository name in the trigger configuration.
⚠
Common mistake β€” If repositories don't appear, check that you granted repo access during authorization - you may need to reconnect.
Pipedream settings
Connection
Choose a connection…Add
click Add
GitHub
Log in to authorize
Authorize Pipedream
popup window
βœ“
Connected
green checkmark
4

GitHub Trigger > Generate Test Event

Test GitHub Trigger Setup

Click the 'Generate Test Event' button at the bottom of the GitHub trigger step. Pipedream will create a sample push event with realistic commit data. This test data helps you build the rest of the workflow without making actual commits.

  1. 1Scroll to bottom of GitHub trigger configuration
  2. 2Click the blue 'Generate Test Event' button
  3. 3Wait for the test event to populate (takes 3-5 seconds)
  4. 4Expand the event data to see commit details
βœ“ What you should see: Test event data should appear showing commits array with message, author, and sha properties.
Pipedream
β–Ά Deploy & test
executed
βœ“
GitHub
βœ“
Jira
Jira
πŸ”” notification
received
5

Workflow > + > Custom Code > Node.js

Add Code Step to Parse Commit Messages

Click the + button below the GitHub trigger to add a new step. Select 'Custom Code' from the step types. Choose 'Run Node.js Code' as your runtime. This step will extract Jira ticket keys from commit messages using regex pattern matching.

  1. 1Click the + icon below the GitHub trigger step
  2. 2Select 'Custom Code' from the step type menu
  3. 3Choose 'Run Node.js Code' from runtime options
  4. 4Name the step 'Parse Commit Messages'
βœ“ What you should see: A code editor should appear with a basic async function template and access to the GitHub trigger data.
⚠
Common mistake β€” Don't select 'Run Python Code' - the Jira integration works better with Node.js libraries.

This Node.js code goes in the 'Parse Commit Messages' step to extract Jira tickets and format commit data. Paste it in the code editor after clearing the default template.

JavaScript β€” Code Stepexport default defineComponent({
β–Έ Show code
export default defineComponent({
  async run({ steps, $ }) {
    const commits = steps.trigger.event.commits || [];

... expand to see full code

export default defineComponent({
  async run({ steps, $ }) {
    const commits = steps.trigger.event.commits || [];
    const repository = steps.trigger.event.repository.full_name;
    const ticketPattern = /\b[A-Z]{2,10}-\d{1,6}\b/g;
    
    const processedCommits = [];
    
    for (const commit of commits) {
      const ticketMatches = commit.message.match(ticketPattern);
      
      if (ticketMatches && ticketMatches.length > 0) {
        // Remove duplicates and process each unique ticket
        const uniqueTickets = [...new Set(ticketMatches)];
        
        for (const ticketKey of uniqueTickets) {
          const commentBody = `**Commit by ${commit.author.name}**: ${commit.message}\n\n` +
                            `**SHA**: \`${commit.id.substring(0, 8)}\`\n\n` +
                            `**View Changes**: https://github.com/${repository}/commit/${commit.id}`;
          
          processedCommits.push({
            ticketKey: ticketKey,
            commentBody: commentBody,
            commitSha: commit.id,
            authorName: commit.author.name,
            commitMessage: commit.message,
            timestamp: commit.timestamp
          });
        }
      }
    }
    
    if (processedCommits.length === 0) {
      $.flow.exit('No Jira ticket keys found in commit messages');
    }
    
    return processedCommits;
  }
});
message template
πŸ”” New Issue: {{title}} {{body}}
state: {{state}}
html_url: {{html_url}}
#sales
πŸ”” New Issue: Jane Smith
Company: Acme Corp
6

Code Step > Editor

Add Commit Parsing Logic

Replace the default code with logic to find Jira ticket keys in commit messages. The code loops through all commits in the push and extracts ticket keys using a regex pattern. Each matching commit gets prepared for sending to Jira with the commit details.

  1. 1Clear the existing code in the editor
  2. 2Paste the commit parsing code (see Pro Tip section)
  3. 3Click 'Test' button to run the code with test data
  4. 4Verify the parsed output shows ticket keys and commit data
βœ“ What you should see: The test output should show an array of commits with extracted Jira ticket keys and formatted commit details.
⚠
Common mistake β€” The regex pattern assumes ticket keys follow PROJECT-123 format - adjust the pattern if your keys use different formats.
7

Workflow > + > Jira > Add Comment to Issue

Add Jira Comment Action

Click the + button below the code step to add another step. Search for 'Jira' and select it from the apps list. Choose 'Add Comment to Issue' from the available Jira actions. This action will post the commit details as comments on the matching tickets.

  1. 1Click + below the code step
  2. 2Type 'Jira' in the app search field
  3. 3Select 'Jira Software Cloud' from results
  4. 4Choose 'Add Comment to Issue' from action list
βœ“ What you should see: The Jira step should appear with configuration fields for connecting your account and setting up the comment.
8

Jira Step > Connect Account

Connect Your Jira Account

In the Jira step configuration, click 'Connect Account' to authorize Pipedream access to your Jira instance. Enter your Jira site URL when prompted (like yourcompany.atlassian.net). Generate an API token from your Jira account settings and paste it in the authentication form.

  1. 1Click 'Connect Account' in the Jira step
  2. 2Enter your Jira site URL (yourcompany.atlassian.net)
  3. 3Go to Jira > Account Settings > Security > API tokens
  4. 4Create new token and paste it in Pipedream auth form
βœ“ What you should see: Successful connection should show your Jira username and site URL in the account dropdown.
⚠
Common mistake β€” Use an API token, not your Jira password - password authentication is deprecated and less secure.
9

Jira Step > Issue Key & Comment Body

Configure Issue Key and Comment Body

Map the Issue Key field to the ticket key extracted from the code step. In the Comment Body field, format the commit information including commit message, author, SHA, and GitHub link. Use the data from previous steps to build a readable comment format.

  1. 1Click in Issue Key field and select ticket key from code step data
  2. 2Click in Comment Body field to open the text editor
  3. 3Format comment with commit message, author, and SHA
  4. 4Add GitHub commit URL using repository and commit SHA
βœ“ What you should see: The Issue Key should reference the parsed ticket key, and Comment Body should show a formatted template with commit data.
⚠
Common mistake β€” Test with a valid ticket key from your Jira project - invalid keys will cause the step to fail silently.
10

Workflow > Test Button

Test Complete Workflow

Click the 'Test' button at the top of the workflow to run all steps with the test data. Check that the code step successfully parses commit messages and the Jira step posts comments without errors. Verify the actual Jira ticket received the commit comment.

  1. 1Click the green 'Test' button in workflow header
  2. 2Watch each step execute in sequence
  3. 3Check for green checkmarks on all completed steps
  4. 4Open the Jira ticket to verify comment was added
βœ“ What you should see: All steps should show green checkmarks and the Jira ticket should have a new comment with commit details.
11

Workflow > Deploy

Deploy Workflow

Click the 'Deploy' button to activate the workflow for live events. Once deployed, the workflow will automatically process new GitHub pushes and add comments to matching Jira tickets. The workflow URL appears in the deployment confirmation for webhook setup if needed.

  1. 1Click the blue 'Deploy' button in workflow header
  2. 2Confirm deployment in the popup dialog
  3. 3Wait for 'Deployed' status to appear
  4. 4Note the webhook URL for GitHub repository settings
βœ“ What you should see: Workflow status should change to 'Deployed' with a green indicator, and new pushes will trigger automatically.
⚠
Common mistake β€” Deployment immediately activates the workflow - make sure your test ticket key won't spam real project tickets.

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

VerdictWhy n8n for this workflow

Use Pipedream for commit linking if your team writes code in JavaScript/Node.js and wants custom commit parsing logic. The built-in code steps handle complex regex patterns and comment formatting better than visual workflow builders. The webhook processing is instant - commits appear as Jira comments within 10 seconds of push. Skip Pipedream if your GitHub organization restricts third-party webhook access.

Cost

Commit linking costs 1 credit per workflow run in Pipedream. At 50 pushes per day (typical for 8-person dev team), you'll use 1,500 credits monthly. That's $15/month on the Developer plan. Zapier charges $20/month for the same volume, and Make costs $9/month but requires 3 separate operations per commit.

Tradeoffs

Make handles multi-commit pushes more elegantly with its iterator module - you can process 20 commits in one workflow run versus Pipedream's single-record approach. Zapier's GitHub integration captures more webhook events like pull request comments. n8n gives you better commit data filtering with its JavaScript expressions. Power Automate connects directly to Azure DevOps if you're using Microsoft's stack. But Pipedream wins on regex parsing flexibility and custom comment formatting.

You'll hit GitHub's webhook delivery retry logic if your workflow fails repeatedly - GitHub disables webhooks after too many failures. Jira's comment API has subtle formatting differences between Cloud and Server versions. Large pushes (15+ commits) can timeout Pipedream's execution limit, so add commit count limiting in your code step.

Ideas for what to build next

  • β†’
    Add Error Handling β€” Wrap Jira API calls in try-catch blocks to handle invalid ticket keys gracefully instead of failing the entire workflow.
  • β†’
    Filter by Branch β€” Modify the trigger to only process commits from main/master branch, ignoring feature branch commits until they're merged.
  • β†’
    Reverse Sync Setup β€” Create a companion workflow that posts Jira status changes back to GitHub as commit status checks or PR comments.

Related guides

Was this guide helpful?
← GitHub + Jira overviewPipedream profile β†’