Dokumentation n8n ProjectVue Automation
Ich würde unbedingt empfehlen, die ganze Automation einmal auf einem komplett leeren und neuen Repository (z.B. n8n-automation-test) zu testen um sicherzugehen, dass alles funktioniert. Dabei ist es wichtig, im Issue Objekt erstellen node statt userToGithub das userToAssignee Objekt für Assignees zu benutzen um nicht alle zu benachrichtigen.
1. GitHub Repository präparieren
- Es sollten vorher keine Issues existieren, da sonst die Issue-Nummer nicht synchron mit ProjectVue ist (oft nicht vermeidbar)
- Alle existierenden Labels und Meilensteine löschen
- GitHub Project aus der Baseprojekt-Vorlage erstellen
- Alle Benutzer (inkl. externe und farbcodedev müssen zum Project hinzugefügt werden (Write Rolle))
- GitHub Project anschließend im Repository verlinken
- Nutzer farbcodedev als Admin zum Repository hinzufügen:
- Über den Add people-Button
- URL:
https://github.com/farbcodegmbh/n8n-automation-test/settings/access
- Alle Nutzer, die in ProjectVue assigned wurden:
- Müssen vorher einen GitHub-Account haben
- Müssen ebenfalls zum Repository hinzugefügt werden (Rolle: Triage)
2. n8n Automation anlegen
- Die n8n Automation "ProjectVue Tickets zu GitHub Issues übertragen Freizeitpass" duplizieren und umbenennen
- In ProjectVue Datenbank richtige project_id für jeweiliges Projekt finden und in folgenden SQL-Query-Nodes anpassen
SQL Query für MeilensteineSQL Query für LabelsSQL Query für IssuesChecken ob nächstes Ticket gleiche Nummer hat
3. GitHub Repository in folgenden n8n-Nodes anpassen
Die folgenden Nodes müssen alle angepasst werden (keinen vergessen!):
Meilensteine hinzufügenLabels hinzufügenDateien auf GitHub hochladen(File Path anpassen)Issues hinzufügenPlatzhalter Issue erstellenIssues closenKommentar hinzufügen
Wichtiger Hinweis
- Unbedingt den File Path im Node
Dateien auf GitHub hochladenanpassen.
Node „Issue Objekt erstellen“
Das Objekt
userToGitHubmuss um die GitHub-Benutzernamen erweitert werden.Beispiel für Kunde Alexander Strobel:
- Wurde vorher auf GitHub angelegt und zum Repo hinzugefügt.
- Nun muss ein neues Key-Value-Pair hinzugefügt werden:
{
"Alexander Strobel": "GITHUB_BENUTZERNAME"
}- Wichtig: Bevor die Automation gestartet wird, sollten alle, die im Projekt auf Tickets assigned sind, ihre Notifications deaktivieren, um hunderte Mails zu vermeiden.
- https://github.com/settings/notifications
- Unter Participating, @mentions and custom: Haken bei On GitHub und Email entfernen
4. Einrichtung der GraphQL-Nodes
Einige API-Funktionen benötigen GitHub GraphQL. Dafür sind folgende Schritte nötig:
Projektnummer herausfinden
- Projekt öffnen und Projektnummer aus der URL lesen
- Beispiel:
https://github.com/orgs/farbcodegmbh/projects/25→ 25
Query zur Ermittlung der Status-IDs und der projectId
Diese Query in einem GraphQL-Client (z. B. Postman, Authorization mit Bearer Token und Personal GitHub Access Token) ausführen:
{
organization(login: "farbcodegmbh") {
projectV2(number: 25) {
id
title
fields(first: 50) {
nodes {
... on ProjectV2SingleSelectField {
id
name
options {
id
name
}
}
}
}
}
}
}Diese Query liefert:
- Die Status IDs der Projekt-Status (z. B.
98236657fürclosed) - Diese IDs müssen im Node
Issue Objekt erstellenim ObjektstatusIDseingetragen werden - Zudem erhält man die projectId (z. B.
PVT_kwDOB7LcBM4BH2L_), die im NodeIssue zu Projekt hinzufügeneingetragen werden muss
Query zur Ermittlung der Projekt-Properties
Diese Query liefert die IDs aller Projektfelder (Properties). Projektnummer anpassen!
{
organization(login: "farbcodegmbh") {
projectV2(number: 20) {
id
title
fields(first: 50) {
nodes {
... on ProjectV2FieldCommon {
id
name
dataType
}
}
}
}
}
}Diese Query liefert:
- IDs der Projekt-Properties (z. B. Status-Feld, Zeitabschätzungs-Feld)
Anpassungen in zwei spezifischen Nodes
Node „Projektstatus anpassen“
projectIdeintragenfieldId= ID des Status-Feldes (aus obiger Query)
Node „Issue Zeitabschätzung hinzufügen“
projectIdeintragenfieldId= ID des Zeitabschätzung-Feldes
