Extraction des informations et des jetons du référentiel
get_repo_params ()
La fonction get-repo-params est conçue pour récupérer les informations relatives au repo, lorsqu'on lui fournit le repo URL et le chemin du jeton Repo.
Paramètre
La fonction get-repo-params requiert les paramètres suivants:
repo_urlLe référentiel URL. Fournir l'url correcte du repo dont les paramètres doivent être trouvés.repo_token_pathChemin d'accès au jeton associé au référentiel.
Sortie
La fonction get-repo-params est fournie par le pipeline. La fonction renvoie les informations suivantes :
repo_name: Nom du référentiel.repo_owner: Utilisateur ou créateur du repo.scm_type: Type de gestion du contrôle de source du repo (Git, GRIT).api_url: API URL liée au service Git qui héberge le repo.
Appel de fonction
read -r <repo_name> <repo_owner> <scm_type> <api_url> \
< <(get_repo_params "<repo_url>" "<token_path>")
Utilisez la variable de soulignement (_) dans la commande de lecture comme un espace réservé pour une variable dont la valeur est rejetée ou n'est pas utilisée dans les parties suivantes du script.
read -r <repo_name> <_> <scm_type> <_> \
< <(get_repo_params "<repo_url>" "<token_path>")
Utilisez ces variables comme variables shell dans votre script.
Exemple
### <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 ()
La fonction get_repo_specific_token récupère le jeton associé au repo URL utilisé précédemment. Un jeton de dépôt authentifie et autorise l'accès à un dépôt spécifique.
Il sélectionne la valeur de la variable (git-token-[repo_name]-[repo_org]) dans la table des propriétés d'environnement.
Exemple
let repo_url = <repo_git_url> où :
<repo_name> = compliance-app
<repo_org> = user_name
Appel de fonction
parameter
### repo_url
token=$(get_repo_specific_token "<repo_url>")
Sortie :
La sortie suivante est générée :
echo "$repo_token"
Exemple :
### 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 ()
La fonction get_api_url détermine le API URL approprié pour différents types de dépôts de code source.
Paramètres :
repo_url: Le site URL du dépôt de code source.
Appel de fonction:
api_url=$(get_api_url "<repo_url>")
Valeur de retour:
La fonction affiche la valeur API URL pour le référentiel donné.
Exemple :
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"
Types SCM et URL d'API correspondantes:
-
GitHub intégré:
- Type SCM:
github_integrated - API URL: <api_url>
- Type SCM:
-
GitHub Consolidé:
- Type SCM:
githubconsolidated - Référentiel GitHub intégré:
- API URL:
https://<repo_server_name>/api/v3(où<repo_server_name>est extrait du référentiel URL )
- API URL:
- Référentiel GitHub non intégré:
- Adresse URL de l'API :
https://api.github.com
- Adresse URL de l'API :
- Type SCM:
-
Githébergé:
- Type SCM:
hostedgit - API URL:
https://<repo_server_name>/api/v4(où<repo_server_name>est extrait du référentiel URL )
- Type SCM:
Si le type SCM n'est pas l'un des types pris en charge, un message d'avertissement s'affiche.
get_repo_scm_type ()
Cette fonction détermine le type de gestion du code source (SCM) d'un référentiel donné URL.
Paramètre :
repo_url: Le site URL du référentiel pour lequel le type de SCM doit être déterminé.
Appel de fonction:
scm_type=$(get_repo_scm_type "<repo_url>")
Sortie :
Une étiquette indiquant la plate-forme SCM, qui peut être l'une des suivantes :
- Pour les dépôts hébergés par GitLab-hosted:
gitlab - Pour les dépôts GitHub-integrated:
github-Pour les autres cas ( GitHubpar défaut):github
Exemple d'utilisation :
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repository_url= <repo_url>
result=$(get_repo_scm_type "$repository_url")
echo "SCM Type: $result"
Cet exemple affiche github comme valeur de sortie parce que le référentiel URL fourni précédemment est intégré à GitHub.
get_repo_owner ()
Cette fonction extrait les informations relatives au propriétaire ou au sous-groupe du référentiel Git URL fourni précédemment.
Paramètre :
repo_url: Le URL du référentiel Git.
Appel de fonction:
Owner_name=$(get_repo_owner "<repo_url>")
Sortie :
- Les informations sur le propriétaire ou le sous-groupe qui sont extraites du référentiel URL.
Exemple d'utilisation :
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repository_url= <repo_url>
owner=$(get_repo_owner "$repository_url")
echo "Repository Owner: $owner"
Cet exemple affiche user_name en sortie car GitHub héberge le référentiel URL le compte ou le sous-groupe "nom d'utilisateur".
- Si le propriétaire n'est pas trouvé, il extrait le premier segment du site URL en tant que propriétaire.
get_repo_name ()
Cette fonction extrait le nom d'un référentiel Git d'un référentiel donné URL.
Paramètres :
repo_url: Le URL du référentiel Git.
Appel de fonction:
Repo_name=$(get_repo_name "<repo_url>")
Sortie :
Cet appel fonctionnel affiche en sortie le nom du référentiel extrait du référentiel URL.
Exemple d'utilisation :
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repository_url= <repo_url>
repo_name=$(get_repo_name "$repository_url")
echo "Repository Name: $repo_name"
Cet exemple produirait compliance-app puisque le référentiel fourni URL est nommé "compliance-app" sur GitHub.
Si le nom n'est pas trouvé, il tente d'utiliser l'avant-dernier segment du site URL comme nom.