Repository-Informationen und -Tokens abrufen
get_repo_params ()
Die Funktion get-repo-params dient dazu, die Repo-Informationen abzurufen, wenn der Repo URL und der Repo-Token-Pfad angegeben werden.
Parameter
Die Funktion get-repo-params erfordert die folgenden Parameter:
repo_urlDas Repository URL. Geben Sie die korrekte URL des Repo an, dessen Parameter gefunden werden müssen.repo_token_pathPfad zu dem dem Repository zugeordneten Token.
Ausgabe
Die Funktion get-repo-params wird von der Pipeline bereitgestellt. Die Funktion gibt die folgenden Informationen zurück:
repo_name: Name des Repositorys.repo_owner: Benutzer oder Ersteller des Repos.scm_type: Typ der Versionskontrollverwaltung des Projekts (Git, GRIT).api_url: API URL verlinkt mit dem Git Dienst, der das Repo hostet.
Funktionsaufruf
read -r <repo_name> <repo_owner> <scm_type> <api_url> \
< <(get_repo_params "<repo_url>" "<token_path>")
Verwenden Sie die Unterstrichvariable (_) im Lesebefehl als Platzhalter für eine Variable, deren Wert verworfen oder in nachfolgenden Teilen des Skripts nicht verwendet wird.
read -r <repo_name> <_> <scm_type> <_> \
< <(get_repo_params "<repo_url>" "<token_path>")
Verwenden Sie diese Variablen als Shell-Variablen in Ihrem Skript.
Beispiel
### <repo_url> = $EVIDENCE_LOCKER_URL
### <token_path> = ${WORKSPACE}/$EVIDENCE_TOKEN_PATH
source "${ONE_PIPELINE_PATH}"/tools/get_repo_params
read -r EVIDENCE_REPO_NAME EVIDENCE_REPO_ORG EVIDENCE_SCM_TYPE EVIDENCE_API_URL \
< <(get_repo_params "$EVIDENCE_LOCKER_URL" "${WORKSPACE}/$EVIDENCE_TOKEN_PATH")
### Printing the value of EVIDENCE_LOCKER_URL
echo "EVIDENCE_LOCKER_URL $EVIDENCE_LOCKER_URL"
get_repo_specific_token ()
Die Funktion get_repo_specific_token ruft das Token ab, das mit dem zuvor verwendeten Repo URL verbunden ist. Ein Repository-Token authentifiziert und autorisiert den Zugriff auf ein bestimmtes Repo.
Der Wert der Variablen (git-token-[repo_name]-[repo_org]) wird aus der Tabelle mit den Umgebungseigenschaften ausgewählt.
Beispiel
let repo_url = <repo_git_url> Dabei gilt:
<repo_name> = compliance-app
<repo_org> = user_name
Funktionsaufruf
parameter
### repo_url
token=$(get_repo_specific_token "<repo_url>")
Ausgabe:
Folgende Ausgabe wird generiert:
echo "$repo_token"
Beispiel:
### parameter:
# <repo_url>: URL of repo of which token is required.
source "${ONE_PIPELINE_PATH}"/tools/get_repo_params
repo_url= <repo_url>
token=$(get_repo_specific_token "$repo_url")
### Output
# repo_token
echo "Repository Token: $token"
get_api_url ()
Die Funktion get_api_url bestimmt das entsprechende API URL für verschiedene Arten von Quellcode-Repositories.
Parameter:
repo_url: Die URL des Quellcode-Repositorys.
Funktionsaufruf:
api_url=$(get_api_url "<repo_url>")
Rückgabewert:
Die Funktion zeigt den API URL-Wert für das angegebene Repository an.
Beispiel:
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repo_url= <repo_url>
api_url=$(get_api_url "$repo_url")
echo "API URL for $repo_url is: $api_url"
SCM-Typen und entsprechende API-URLs:
-
GitHub Integriert:
- SCM-Typ:
github_integrated - API URL: <api_url>
- SCM-Typ:
-
GitHub konsolidiert:
- SCM-Typ:
githubconsolidated - Integriertes GitHub-Repository:
- API URL:
https://<repo_server_name>/api/v3(wobei<repo_server_name>aus dem Repository URL extrahiert wird)
- API URL:
- Nicht integriertes GitHub-Repository:
- API-URL:
https://api.github.com
- API-URL:
- SCM-Typ:
-
Gehostete Git:
- SCM-Typ:
hostedgit - API URL:
https://<repo_server_name>/api/v4(wobei<repo_server_name>aus dem Repository URL extrahiert wird)
- SCM-Typ:
Wenn der SCM-Typ keiner der unterstützten Typen ist, wird eine Warnung angezeigt.
get_repo_scm_type ()
Diese Funktion ermittelt den Source Code Management (SCM)-Typ eines bestimmten Repositorys URL.
Parameter:
repo_url: Die URL des Repositorys, für das der SCM-Typ ermittelt werden muss.
Funktionsaufruf:
scm_type=$(get_repo_scm_type "<repo_url>")
Ausgabe:
Eine Kennzeichnung, die die SCM-Plattform angibt, die eine der folgenden sein kann:
- Für GitLab-hosted Repositories:
gitlab - Für GitHub-integrated Repositories:
github-Für andere Fälle (standardmäßig GitHub):github
Beispiel:
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repository_url= <repo_url>
result=$(get_repo_scm_type "$repository_url")
echo "SCM Type: $result"
In diesem Beispiel wird github als Ausgabewert angezeigt, da das zuvor bereitgestellte Repository URL mit GitHub integriert ist.
get_repo_owner ()
Diese Funktion extrahiert die Eigentümer- oder Untergruppeninformationen aus dem zuvor bereitgestellten Repository Git URL.
Parameter:
repo_url: Die URL des Git Repository.
Funktionsaufruf:
Owner_name=$(get_repo_owner "<repo_url>")
Ausgabe:
- Die Eigentümer- oder Untergruppeninformationen, die aus dem Repository URL extrahiert werden.
Beispiel:
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repository_url= <repo_url>
owner=$(get_repo_owner "$repository_url")
echo "Repository Owner: $owner"
In diesem Beispiel wird user_name als Ausgabe angezeigt, da GitHub das Repository beherbergt URL das Konto oder die Untergruppe "username".
- Wenn der Besitzer nicht gefunden wird, wird das erste Segment der URL als Besitzer extrahiert.
get_repo_name ()
Diese Funktion extrahiert den Namen eines Git Repositories aus einem gegebenen Repository URL.
Parameter:
repo_url: Die URL des Git Repository.
Funktionsaufruf:
Repo_name=$(get_repo_name "<repo_url>")
Ausgabe:
Dieser Funktionsaufruf zeigt den Namen des Repositorys, der aus dem Repository URL extrahiert wurde, als Ihre Ausgabe an.
Beispiel:
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repository_url= <repo_url>
repo_name=$(get_repo_name "$repository_url")
echo "Repository Name: $repo_name"
Dieses Beispiel würde compliance-app ausgeben, da das bereitgestellte Repository URL auf GitHub "compliance-app" genannt wird.
Wenn der Name nicht gefunden wird, wird versucht, das vorletzte Segment der URL als Name zu verwenden.