{"nodes":[{"name":"Get latest release","type":"n8n-nodes-base.github","position":[540,340],"parameters":{"limit":1,"resource":"release","operation":"getAll"},"typeVersion":1,"id":"bf7d4605-b066-4c6d-ad34-7fd02f5f081e","notes":"This github node performs automated tasks as part of the workflow."},{"name":"Cron","type":"n8n-nodes-base.cron","position":[240,500],"parameters":{"triggerTimes":{"item":[{"mode":"everyWeek"}]}},"typeVersion":1,"id":"19c51102-b256-4ee7-bdb4-86b214a69123","notes":"This cron node performs automated tasks as part of the workflow."},{"name":"Merge","type":"n8n-nodes-base.merge","position":[740,420],"parameters":{},"typeVersion":1,"id":"14000e84-dd29-4a74-b2e6-42eb2d9f0295","notes":"This merge node performs automated tasks as part of the workflow."},{"name":"No issue for release?","type":"n8n-nodes-base.function","position":[920,420],"parameters":{"functionCode":"const _ = require('lodash')\n\n// differentiate merged inputs (didnt find a way to get both inputs into one function invocation)\nconst releases = _.filter(items, i => _.has(i, 'json.assets'))\nif (releases.length != 1) throw new Error(`Invalid release count: ${releases.length}`)\nconst release = releases[0]\nconst issues = _.without(items, release)\n//console.log({release,issues})\n\n// check if there's an issue for the release\nconst matchingIssue = _.find(issues, i => i.json.title.includes(release.json.tag_name))\n//console.log({release,issues,matchingIssue})\n\nif (matchingIssue)\n  return []\nelse\n  return [release]"},"executeOnce":false,"typeVersion":1,"id":"55245df8-20a5-4d6c-9ce8-d32dfa0f6764","notes":"This function node performs automated tasks as part of the workflow."},{"name":"Create issue","type":"n8n-nodes-base.gitlab","position":[1100,420],"parameters":{"body":"={{$json[\"url\"]}}\n\n{{$json[\"body\"]}}","owner":"txlab","title":"=Upstream release: {{$json[\"tag_name\"]}}","labels":[],"repository":"docker-linkcheck","assignee_ids":[]},"typeVersion":1,"id":"85f9b593-e414-49fc-b00b-0e52e7444acc","notes":"This gitlab node performs automated tasks as part of the workflow."},{"name":"List issues","type":"n8n-nodes-base.gitlab","position":[540,500],"parameters":{"owner":"txlab","resource":"repository","repository":"docker-linkcheck","getRepositoryIssuesFilters":{}},"typeVersion":1,"id":"5e1625b0-67c3-47a5-a4fc-f35eaa7d528b","notes":"This gitlab node performs automated tasks as part of the workflow."},{"id":"error-bf00e6df","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"connections":{},"name":"Github Workflow","description":"Automated workflow: Github Workflow. This workflow processes data and performs automated tasks.","settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"meta":{"instanceId":"workflow-b52b4886","versionId":"1.0.0","createdAt":"2025-09-29T07:07:45.096414","updatedAt":"2025-09-29T07:07:45.096429","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"notes":"Excellent quality workflow: Github Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}