Recuperación de información de repositorio y señales
get_repo_params ()
La función get-repo-params está diseñada para recuperar la información relacionada con el repositorio, cuando se proporciona el repositorio URL y la ruta del token de repositorio.
Parámetro
La función get-repo-params requiere los parámetros siguientes:
repo_urlEl repositorio URL. Proporcione la url correcta del repositorio cuyos parámetros deben encontrarse.repo_token_pathVía de acceso a la señal asociada con el repositorio.
Salida
La función get-repo-params la proporciona la interconexión. La función devuelve la siguiente información:
repo_name: Nombre del repositorio.repo_owner: Usuario o creador del repo.scm_type: Tipo de gestión de control de fuentes del repositorio (Git, GRIT).api_url: API URL vinculada al servicio Git que aloja el repositorio.
Llamada a función
read -r <repo_name> <repo_owner> <scm_type> <api_url> \
< <(get_repo_params "<repo_url>" "<token_path>")
Utilice la variable de guión bajo (_) en el comando de lectura como marcador de posición para una variable cuyo valor se descarta o no se utiliza en partes posteriores del script.
read -r <repo_name> <_> <scm_type> <_> \
< <(get_repo_params "<repo_url>" "<token_path>")
Utilice estas variables como variables de shell en su script.
Ejemplo
### <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 función get_repo_specific_token recupera el token asociado al repositorio URL utilizado anteriormente. Un token de repositorio autentica y autoriza el acceso a un repositorio específico.
Selecciona el valor de la variable (git-token-[repo_name]-[repo_org]) de la tabla de propiedades de entorno.
Ejemplo
let repo_url = <repo_git_url> donde:
<repo_name> = compliance-app
<repo_org> = user_name
Llamada a función
parameter
### repo_url
token=$(get_repo_specific_token "<repo_url>")
Salida:
Se genera la siguiente salida:
echo "$repo_token"
Ejemplo:
### 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 función get_api_url determina el API URL apropiado para diferentes tipos de repositorios de código fuente.
Parámetros:
repo_url: La dirección URL del repositorio de código fuente.
Llamada de función:
api_url=$(get_api_url "<repo_url>")
Valor de retorno:
La función muestra el valor API URL para el repositorio dado.
Ejemplo:
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"
Tipos de SCM y URL de API correspondientes:
-
GitHub Integrado:
- Tipo de SCM:
github_integrated - API URL: <api_url>
- Tipo de SCM:
-
GitHub Consolidado:
- Tipo de SCM:
githubconsolidated - Repositorio GitHub integrado:
- API URL:
https://<repo_server_name>/api/v3(donde<repo_server_name>se extrae del repositorio URL )
- API URL:
- Repositorio GitHub no integrado:
- URL de API:
https://api.github.com
- URL de API:
- Tipo de SCM:
-
Gitalojado:
- Tipo de SCM:
hostedgit - API URL:
https://<repo_server_name>/api/v4(donde<repo_server_name>se extrae del repositorio URL )
- Tipo de SCM:
Si el tipo de SCM no es uno de los tipos soportados, se visualiza un mensaje de aviso.
get_repo_scm_type ()
Esta función determina el tipo de gestión del código fuente (SCM) de un repositorio dado URL.
Parámetro:
repo_url: El URL del repositorio para el que se necesita determinar el tipo de SCM.
Llamada de función:
scm_type=$(get_repo_scm_type "<repo_url>")
Salida:
Una etiqueta que indica la plataforma SCM, que puede ser una de las siguientes:
- Para GitLab-hosted:
gitlab - Para repositorios GitHub-integrated:
github-Para otros casos (tomando como valor predeterminado GitHub):github
Ejemplo de uso:
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repository_url= <repo_url>
result=$(get_repo_scm_type "$repository_url")
echo "SCM Type: $result"
Este ejemplo muestra github como valor de salida porque el repositorio URL proporcionado anteriormente está integrado con GitHub.
get_repo_owner ()
Esta función extrae la información del propietario o subgrupo del repositorio Git URL proporcionado anteriormente.
Parámetro:
repo_url: La dirección URL del repositorio Git.
Llamada de función:
Owner_name=$(get_repo_owner "<repo_url>")
Salida:
- La información del propietario o subgrupo que se extrae del repositorio URL.
Ejemplo de uso:
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repository_url= <repo_url>
owner=$(get_repo_owner "$repository_url")
echo "Repository Owner: $owner"
Este ejemplo muestra user_name como salida porque GitHub aloja el repositorio URL la cuenta o subgrupo "nombre de usuario".
- Si no se encuentra el propietario, extrae el primer segmento de URL como propietario.
get_repo_name ()
Esta función extrae el nombre de un repositorio Git de un repositorio dado URL.
Parámetros:
repo_url: La dirección URL del repositorio Git.
Llamada de función:
Repo_name=$(get_repo_name "<repo_url>")
Salida:
Esta llamada funcional muestra el nombre del repositorio que se extrae del repositorio URL como su salida.
Ejemplo de uso:
source "${ONE_PIPELINE_PATH}/tools/get_repo_params"
repository_url= <repo_url>
repo_name=$(get_repo_name "$repository_url")
echo "Repository Name: $repo_name"
Este ejemplo mostraría compliance-app ya que el repositorio proporcionado URL se llama "compliance-app" en GitHub.
Si no se encuentra el nombre, se intenta utilizar el penúltimo segmento de URL como nombre.