{
  "name": "Generate your GitLab year-in-review wrapped report automatically",
  "nodes": [
    {
      "id": "8e0b0b30-e1af-43a8-9024-7080102a795a",
      "name": "GitLab Wrapped Form",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        3008,
        -176
      ]
    },
    {
      "id": "14751144-3de8-457c-9fd7-b3c9e4dc4781",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        3232,
        -176
      ]
    },
    {
      "id": "0715a87d-c26f-4ffe-a585-e3cc2d88b54a",
      "name": "Wait for CI/CD",
      "type": "n8n-nodes-base.wait",
      "position": [
        5472,
        -80
      ]
    },
    {
      "id": "79f41700-fdee-4d9c-99ec-13b1460e57cd",
      "name": "Check Pipeline Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5696,
        -160
      ]
    },
    {
      "id": "95b44757-5e9e-4697-a51c-0ae3de2ad675",
      "name": "Pipeline Complete?",
      "type": "n8n-nodes-base.if",
      "position": [
        5920,
        -80
      ]
    },
    {
      "id": "c2a6222f-4581-4b9a-9802-04a3007610fd",
      "name": "Set token env var",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4576,
        -80
      ]
    },
    {
      "id": "4d5f41e1-088d-4bc6-8155-2cd5755058f7",
      "name": "Set Username env var",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4800,
        -80
      ]
    },
    {
      "id": "26f9a830-821a-44eb-89c9-49a2f41fde29",
      "name": "Set Year env var",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5024,
        -80
      ]
    },
    {
      "id": "82137f38-5ea2-43e1-831c-9c932c83d541",
      "name": "Trigger Pipeline",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5248,
        -80
      ]
    },
    {
      "id": "740583df-1b32-432f-ac64-1170c3b62261",
      "name": "Search Existing Fork",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3904,
        16
      ]
    },
    {
      "id": "c282e0d5-d6e4-4cae-80a6-c72374c53e5e",
      "name": "Try to fork",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3904,
        -176
      ]
    },
    {
      "id": "c581d68c-3cc4-4dbf-85ca-0e814b4497ed",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        4128,
        -80
      ]
    },
    {
      "id": "a0b6d183-78b7-46ae-a4d5-5b798838aa86",
      "name": "set ProjectId",
      "type": "n8n-nodes-base.code",
      "position": [
        4352,
        -80
      ]
    },
    {
      "id": "4ac34498-8995-486f-a39d-aa4210328b63",
      "name": "Validate PAT Owner",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3456,
        -176
      ]
    },
    {
      "id": "9d3928ea-ba95-478f-a764-55c47cdd0578",
      "name": "Is PAT Owner invalid?",
      "type": "n8n-nodes-base.if",
      "position": [
        3680,
        -176
      ]
    },
    {
      "id": "b2b2f532-f906-4e23-ad26-bcc0a5a3710a",
      "name": "No Operation, to not leak private Projects",
      "type": "n8n-nodes-base.noOp",
      "position": [
        3840,
        -512
      ]
    },
    {
      "id": "ef29d97b-77f3-4c1e-822b-05aab38763a9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2528,
        -720
      ],
      "parameters": {
        "width": 400,
        "height": 820,
        "content": "### How it works\nThis workflow generates your personalized GitLab Wrapped, a year-in-review of your GitLab contributions.\n\nPowered by https://gitlab.com/michaelangelorivera/gitlab-wrapped by https://g"
      }
    },
    {
      "id": "dbbda209-5390-4517-9e61-61e1a60c04ac",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2992,
        0
      ],
      "parameters": {
        "width": 340,
        "height": 140,
        "content": "## 📋 Form Input\nCollects user credentials and preferences to generate the wrapped report."
      }
    },
    {
      "id": "1a562656-c126-4e87-8f47-cc3264996f01",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3488,
        -336
      ],
      "parameters": {
        "width": 280,
        "height": 140,
        "content": "## 🔐 Security Validation\nEnsures the PAT token does not belong to the specified user to prevent unauthorized access to private projects."
      }
    },
    {
      "id": "78f6dc4b-2c55-48fa-8545-790ffda55d91",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3824,
        176
      ],
      "parameters": {
        "width": 308,
        "height": 120,
        "content": "## 🍴 Fork Setup\nCreates or finds your fork of the gitlab-wrapped project to run the generation pipeline."
      }
    },
    {
      "id": "b67d65ba-dbed-4ef5-a877-ec9dc892680b",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4624,
        64
      ],
      "parameters": {
        "width": 540,
        "height": 140,
        "content": "## ⚙️ CI/CD Configuration\nConfigures environment variables in your fork to pass settings to the pipeline."
      }
    },
    {
      "id": "86a72ddd-6207-4d79-b8f1-52919305fe68",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5504,
        -272
      ],
      "parameters": {
        "width": 420,
        "height": 104,
        "content": "## 🚀 Pipeline Execution\nTriggers the wrapped generation pipeline and monitors it until completion (polls every 2 minutes)."
      }
    },
    {
      "id": "5a1e5e5d-c397-492c-aeb2-130dc2583bf4",
      "name": "Wrapped available at https://YOUR_USERNAME.gitlab.io/gitlab-wrapped",
      "type": "n8n-nodes-base.noOp",
      "position": [
        6144,
        -80
      ]
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "set ProjectId",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Try to fork": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "set ProjectId": {
      "main": [
        [
          {
            "node": "Set token env var",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for CI/CD": {
      "main": [
        [
          {
            "node": "Check Pipeline Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Year env var": {
      "main": [
        [
          {
            "node": "Trigger Pipeline",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger Pipeline": {
      "main": [
        [
          {
            "node": "Wait for CI/CD",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set token env var": {
      "main": [
        [
          {
            "node": "Set Username env var",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pipeline Complete?": {
      "main": [
        [
          {
            "node": "Wrapped available at https://YOUR_USERNAME.gitlab.io/gitlab-wrapped",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait for CI/CD",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate PAT Owner": {
      "main": [
        [
          {
            "node": "Is PAT Owner invalid?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GitLab Wrapped Form": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Existing Fork": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Set Username env var": {
      "main": [
        [
          {
            "node": "Set Year env var",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Pipeline Status": {
      "main": [
        [
          {
            "node": "Pipeline Complete?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is PAT Owner invalid?": {
      "main": [
        [
          {
            "node": "No Operation, to not leak private Projects",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Search Existing Fork",
            "type": "main",
            "index": 0
          },
          {
            "node": "Try to fork",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "Validate PAT Owner",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}