Public Form Auto Triage
Workflow automatisé avec 12 nodes incluant : stickyNote, webhook, @n8n/langchain.textSplitterCharacterTextSplitter, @n8...
Ce workflow n8n est conçu pour automatiser le suivi des nouvelles releases sur un dépôt GitHub et créer automatiquement une issue correspondante sur GitLab si aucune issue n'existe déjà. En effectuant cette vérification chaque semaine, il garantit que les équipes de développement restent informées des dernières mises à jour logicielles, ce qui favorise la collaboration et la gestion efficace des versions. Ce processus rationalisé permet d'économiser du temps précieux et de minimiser les erreurs humaines en assurant une documentation complète et à jour des nouvelles fonctionnalités ou correctifs introduits dans chaque release.
Ce workflow n8n est conçu pour automatiser le suivi des nouvelles releases sur un dépôt GitHub et créer automatiquement une issue correspondante sur GitLab si aucune issue n'existe déjà. En effectuant cette vérification chaque semaine, il garantit que les équipes de développement restent informées des dernières mises à jour logicielles, ce qui favorise la collaboration et la gestion efficace des versions. Ce processus rationalisé permet d'économiser du temps précieux et de minimiser les erreurs humaines en assurant une documentation complète et à jour des nouvelles fonctionnalités ou correctifs introduits dans chaque release.
| Node | Type | Description |
|---|---|---|
| Get latest release | github | Traitement des données |
| Cron | cron | Traitement des données |
| Merge | merge | Fusion de plusieurs branches de données |
| No issue for release? | function | Transformation de données avec code personnalisé |
| Create issue | gitlab | Traitement des données |
| List issues | gitlab | Traitement des données |
{
"nodes": [
{
"name": "Get latest release",
"type": "n8n-nodes-base.github",
"position": [
540,
340
],
"parameters": {
"limit": 1,
"resource": "release",
"operation": "getAll"
},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
240,
500
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyWeek"
}
]
}
},
"typeVersion": 1
},
{
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
740,
420
],
"parameters": [],
"typeVersion": 1
},
{
"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
},
{
"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
},
{
"name": "List issues",
"type": "n8n-nodes-base.gitlab",
"position": [
540,
500
],
"parameters": {
"owner": "txlab",
"resource": "repository",
"repository": "docker-linkcheck",
"getRepositoryIssuesFilters": []
},
"typeVersion": 1
}
],
"connections": {
"Cron": {
"main": [
[
{
"node": "Get latest release",
"type": "main",
"index": 0
},
{
"node": "List issues",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "No release for issue?",
"type": "main",
"index": 0
}
]
]
},
"Start": {
"main": [
[
{
"node": "Get latest release",
"type": "main",
"index": 0
},
{
"node": "List issues",
"type": "main",
"index": 0
}
]
]
},
"List issues": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Get latest release": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"No release for issue?": {
"main": [
[
{
"node": "Create issue",
"type": "main",
"index": 0
}
]
]
}
}
}
Workflow automatisé avec 12 nodes incluant : stickyNote, webhook, @n8n/langchain.textSplitterCharacterTextSplitter, @n8...
Workflow automatisé avec 12 nodes incluant : stickyNote, webhook, @n8n/langchain.textSplitterCharacterTextSplitter, @n8...
Workflow automatisé avec 12 nodes incluant : stickyNote, webhook, @n8n/langchain.textSplitterCharacterTextSplitter, @n8...