{
  "name": "Automate GitHub PRs & JIRA updates from Git commit commands-single repo",
  "nodes": [
    {
      "id": "8465e817-4dec-4d5e-b607-6e46db16b6e7",
      "name": "Commit Message Breakdown",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        1160
      ]
    },
    {
      "id": "6046dbdd-8494-4e58-966d-83b8fdae1759",
      "name": "Check for PR commands",
      "type": "n8n-nodes-base.if",
      "position": [
        1220,
        1160
      ]
    },
    {
      "id": "1d931b22-aaae-4afe-8f20-4478944eef1a",
      "name": "Request to create PR",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2160,
        1000
      ]
    },
    {
      "id": "8d200a8c-de05-4bce-9150-88a34749b09a",
      "name": "Github Trigger",
      "type": "n8n-nodes-base.githubTrigger",
      "position": [
        320,
        1160
      ]
    },
    {
      "id": "9e61e558-fbf3-4cef-96f4-a6732ffd8373",
      "name": "Invalid commit message",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        2140,
        1760
      ]
    },
    {
      "id": "f3a3d76c-6713-407a-92a2-117a6cef4674",
      "name": "JIRA Task does not exist",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        3080,
        1100
      ]
    },
    {
      "id": "45ffc321-9cf6-4d63-a303-5cbd9fcc9f5a",
      "name": "Check for task completed command",
      "type": "n8n-nodes-base.if",
      "position": [
        1540,
        1400
      ]
    },
    {
      "id": "805644e9-e934-4e8e-8d2d-0a0340ae1313",
      "name": "Get task details for PR",
      "type": "n8n-nodes-base.jira",
      "position": [
        1720,
        780
      ]
    },
    {
      "id": "3588f1d5-d44c-429f-84d4-2d59b9df9d19",
      "name": "Get Task Details without PR.",
      "type": "n8n-nodes-base.jira",
      "position": [
        2160,
        1260
      ]
    },
    {
      "id": "37f80bcc-bdcd-440f-86a5-d71e7c6084fa",
      "name": "Check if task exist",
      "type": "n8n-nodes-base.if",
      "position": [
        2960,
        800
      ]
    },
    {
      "id": "5fa57725-9731-415a-b6c9-3468ba3cc294",
      "name": "Update task status after PR",
      "type": "n8n-nodes-base.jira",
      "position": [
        3380,
        780
      ]
    },
    {
      "id": "4d6f5d00-df3c-477b-b6e1-561502851cc8",
      "name": "Check whether a PR already exists",
      "type": "n8n-nodes-base.if",
      "position": [
        2500,
        620
      ]
    },
    {
      "id": "e8c58c09-0d35-4928-867d-441f894bcd0d",
      "name": "Update the task status without PR",
      "type": "n8n-nodes-base.jira",
      "position": [
        3080,
        1420
      ]
    },
    {
      "id": "d8c0c38a-fdd3-49c1-b566-bb35ecaa9f92",
      "name": "Check if PR exists",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2060,
        620
      ]
    },
    {
      "id": "67f8edcb-4647-4ee1-8fff-e25a0482528b",
      "name": "Check if task exists",
      "type": "n8n-nodes-base.if",
      "position": [
        2500,
        1140
      ]
    },
    {
      "id": "f9064e43-40d4-4d1d-aefa-ed15879831f2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        900
      ],
      "parameters": {
        "width": 540,
        "height": 240,
        "content": "### Step 1: The Listening Post 👂 (For the GitHub Trigger)\n\nThis node is our ear to the ground in GitHub.\n\nIt patiently waits for a developer to use `git push`. \n\nThe moment new code arrives, this node"
      }
    },
    {
      "id": "fe66429f-1fc9-4e06-9072-849c4c848a5e",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        540,
        1300
      ],
      "parameters": {
        "width": 580,
        "height": 280,
        "content": "### Step 2: The Decoder Ring 🧠\n\nThis is where the magic happens! Think of this node as a translator.\n\nIt carefully reads the commit message you wrote (e.g., \"FF-1196...[auto-pr]...\") and intelligently"
      }
    },
    {
      "id": "d2b4e8e4-1b05-4ee2-b14d-8084fed4f82c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        980,
        820
      ],
      "parameters": {
        "width": 500,
        "height": 300,
        "content": "### Step 3: To PR, or Not to PR? 🤔\n\nThis is a checkpoint that gives you control.\n\nIt asks a simple question: \"Did the developer include the `[auto-pr]` command?\"\n\n- If **YES**, we proceed down the \"Tr"
      }
    },
    {
      "id": "b165e11c-5cfe-426f-997d-3a4df5cb0fe4",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        1600
      ],
      "parameters": {
        "width": 560,
        "height": 300,
        "content": "### Step 4: Closing the Loop in Jira ✅\n\nThis final checkpoint keeps your project manager happy.\n\nIt asks: \"Did the developer include the `[taskcompleted]` command?\"\n\n- If **YES**, the workflow automat"
      }
    },
    {
      "id": "50536438-518e-431c-93a2-9d416b14d5a4",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        460
      ],
      "parameters": {
        "width": 620,
        "height": 320,
        "content": "## 🔧 Quick Setup Required!\n\nWelcome! To make this workflow yours, you just need to do two things:\n\n1.  **Connect Your Accounts:** Click on the GitHub and Jira nodes and select your credentials.\n\n2.  *"
      }
    },
    {
      "id": "7e0eeb44-d1c8-430c-9fab-519662e898cd",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2380,
        1520
      ],
      "parameters": {
        "width": 576,
        "height": 300,
        "content": "# Need more help ?\n\n**We develop tailored workflow to save youe valuable time. Should you have any questions or wish to explore more custom automation solutions, we would be happy to connect.**\n\n### E"
      }
    }
  ],
  "connections": {
    "Github Trigger": {
      "main": [
        [
          {
            "node": "Commit Message Breakdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if PR exists": {
      "main": [
        [
          {
            "node": "Check whether a PR already exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if task exist": {
      "main": [
        [
          {
            "node": "Update task status after PR",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "JIRA Task does not exist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if task exists": {
      "main": [
        [
          {
            "node": "Update the task status without PR",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "JIRA Task does not exist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Request to create PR": {
      "main": [
        [
          {
            "node": "Check if task exist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check for PR commands": {
      "main": [
        [
          {
            "node": "Get task details for PR",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check for task completed command",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get task details for PR": {
      "main": [
        [
          {
            "node": "Check if PR exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Commit Message Breakdown": {
      "main": [
        [
          {
            "node": "Check for PR commands",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Task Details without PR.": {
      "main": [
        [
          {
            "node": "Check if task exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check for task completed command": {
      "main": [
        [
          {
            "node": "Get Task Details without PR.",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Invalid commit message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check whether a PR already exists": {
      "main": [
        [
          {
            "node": "Check if task exist",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Request to create PR",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}