Page tree
Skip to end of metadata
Go to start of metadata

Ein Git-Repository kann angebunden werden um Skripte aus Git in YUNA benutzen zu können

Aktuell kann ein einzelnes Git-Repository angebunden werden. Im Scriptmanager werden anschließend alle Dateien zur Auswahl bereitgestellt, deren Dateiname auf ".r", ".R" oder ".py" endet.

Config.yaml

Es ist üblicherweise nicht notwendig die Standardkonfiguration anzupassen.

ParameterTypDefaultBeschreibung
repositoryStorageDirectoryString"/tmp/eoda/yuna/repositories"Der Pfad unter dem das Repository abgelegt wird. Wird automatisch angelegt, falls noch nicht vorhanden.
requestTimeoutInteger180

Die Zeit in Sekunden nach der eine Anfrage von YUNA an Git abgebrochen wird.

Dieser Wert sollte nicht über 300 liegen.

checkoutTimeoutInteger600Die Zeit in Sekunden nach der das Klonen eines Git Repositories abgebrochen wird.
Beispiel
de.eoda.dse.portal.gitrepo.provider.GitRepoServiceProvider: {
  repositoryStorageDirectory: "/tmp/eoda/yuna/repositories",
  requestTimeout: 180,
  checkoutTimeout: 600
}

Schritt für Schritt Erklärung:

Bevor in YUNA Skripte aus einem Git-Repository ausgewählt werden können, muss zunächst über die REST-API eine Git-Origin angelegt werden.

Eine Git-Origin ist ein Objekt, das alle nötigen Informationen zur Anbindung eines Git-Repositories an YUNA enhtält.

Git-Origin über REST anlegen

POST/backend/de.eoda.dse.portal.gitrepo.rest.origin/
Body
{
    "name": "testRepo",
    "pvKey": "-----BEGIN RSA PRIVATE KEY-----\nMyPrivateKey\n-----END RSA PRIVATE KEY-----",
    "repositoryAdress": "git@gitlab.local.eoda.de:DSE/testrepositoryforjgit.git",
	"branchReference": "refs/heads/myBranchName",
    "description": "repository to test with"
}

(info) Das Feld branchReference muss nicht mit angegeben werden. Fehlt das Feld wird standardmäßig der Branch Master verwendet.

Hinweise zum Private-Key

Alle Zeilenumbrüche im Private-Key müssen durch \n ersetzt werden.

Der Private-Key muss mit dem Verfahren RSA im PEM Format generiert werden.
Beispiel für die Generierung eines enstsprechenden Schlüsselpaars mit OpenSSH:

ssh-keygen -t rsa -m PEM

Erfolg

Code: 200
Typ: Application/Json
Inhalt: gitOrigin

Die Git-Origin wurde angelegt

Fehler

Code: 400
Die angegebene ID existiert nicht

Code: 400
Es gab ein Problem mit der Verbindung zum Git-Repository

Code: 400

Malformed input or input contains unmappable characters
Esliegt ein Fehler mit der Zeichenkodierung des YUNA-Servers vor. Dies wird durch Sonderzeichen in den Dateinamen im angebundenen Repository ausgelöst. Das Problem kann auf folgendem Weg behoben werden:

  1. Angelegte Git-Origin wieder löschen via DELETE-Request
  2. Auf dem YUNA Server die korrekte Kodierung sicherstellen: 

    export LC_CTYPE=de_DE.UTF-8
  3. Git-Origin erneut via POST-Request anlegen
Code: 500
Es gab ein Problem bei dem Zugriff auf das Dateisystem

Ein Skript aus Git in YUNA verwenden

Wurde die Git-Origin korrekt angelegt, können über den Skriptmanager auch Scripte aus Git ausgewählt werden. Sollten wider Erwarten keine Skripte angezeigt werden, liegt dies meistens an einer fehlerhaften Git-Origin.

Hier kann immer die aktuellste Version des jeweiligen Skripts aus Git, sowie ältere Versionen, die zuvor bereits ausgewählt wurden, ausgewählt werden

Git Skripte

Aus Git importierte Skripte sind in YUNA nicht editierbar.

Weitere Endpunkte

Abrufen der Git-Origin

GET/backend/de.eoda.dse.portal.gitrepo.rest.origin/
Erfolg

Code: 200
Typ: Application/Json
Inhalt: gitOrigin

Aktualisieren einer Git-Origin

PUT/backend/de.eoda.dse.portal.gitrepo.rest.origin/{id}
URL-Parameterid - die ID der Git-Origin die aktualisiert werden soll
Body
{
    "name": "updatedTestRepo",
    "pvKey": "-----BEGIN RSA PRIVATE KEY-----\nMyPrivateKey\n-----END RSA PRIVATE KEY-----",
    "repositoryAdress": "git@gitlab.local.eoda.de:DSE/testrepositoryforjgit.git",
	"branchReference": "refs/heads/myBranchName",
    "description": "repository to test with"
}

(info) Das Feld branchReference muss nicht mit angegeben werden. Fehlt das Feld wird standardmäßig der Branch Master verwendet.

Erfolg

Code: 200
Typ: Application/Json
Inhalt: gitOrigin

Die Git-Origin wurde aktualisiert

Fehler

Code: 400
Die angegebene ID existiert nicht

Code: 400
Es gab ein Problem mit der Verbindung zum Git-Repository
Code: 500
Es gab ein Problem bei dem Zugriff auf das Dateisystem

Löschen einer Git-Origin

DELETE/backend/de.eoda.dse.portal.gitrepo.rest.origin/{id}
URL-Parameterid - die ID der Git-Origin die gelöscht werden soll
Erfolg

Code: 200
Typ: Text/Plain
Inhalt: Die gelöschte ID

Die Git-Origin und das dazugehörige lokale Verzeichnis wurde gelöscht

Fehler

Code: 400
Die angegebene ID existiert nicht

Code: 500
Es gab ein Problem bei dem Zugriff auf das Dateisystem



  • No labels