Recuperando informações e tokens do repositório
get_repo_params ()
A função get-repo-params foi projetada para recuperar as informações relacionadas ao repositório, quando fornecidos o repositório URL e o caminho do token Repo.
Parâmetro
A função get-repo-params requer os seguintes parâmetros:
repo_urlO repositório URL. Forneça o URL correto do repositório cujos parâmetros precisam ser encontrados.repo_token_pathCaminho para o token associado ao repositório..
Saída
A função get-repo-params é fornecida pelo pipeline.. A função retorna as seguintes informações:
repo_name: Nome do repositório.repo_owner: Usuário ou criador do repositório.scm_type: tipo de gerenciamento de controle de origem do repositório (Git, GRIT).api_url: API URL vinculada ao serviço Git que hospeda o repositório.
Chamada de função
read -r <repo_name> <repo_owner> <scm_type> <api_url> \
< <(get_repo_params "<repo_url>" "<token_path>")
Use a variável de sublinhado (_) no comando read como um espaço reservado para uma variável cujo valor esteja sendo descartado ou não seja usado em partes subsequentes do script.
read -r <repo_name> <_> <scm_type> <_> \
< <(get_repo_params "<repo_url>" "<token_path>")
Use essas variáveis como variáveis de shell em seu script.
Exemplo
### <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 ()
A função get_repo_specific_token recupera o token que está associado ao repositório URL usado anteriormente. Um token de repositório autentica e autoriza o acesso a um repositório específico.
Ele seleciona o valor da variável (git-token-[repo_name]-[repo_org]) da tabela de propriedades de ambiente.
Exemplo
let repo_url = <repo_git_url> em que:
<repo_name> = compliance-app
<repo_org> = user_name
Chamada de função
parameter
### repo_url
token=$(get_repo_specific_token "<repo_url>")
Saída:
A saída a seguir é gerada:
echo "$repo_token"
Exemplo:
### 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 ()
A função get_api_url determina o API URL apropriado para diferentes tipos de repositórios de código-fonte.
Parâmetros:
repo_url: O endereço URL do repositório de código-fonte.
Chamada de função:
api_url=$(get_api_url "<repo_url>")
Valor de retorno:
A função exibe o valor API URL para o repositório fornecido.
Exemplo:
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 SCM e URLs de API correspondentes:
-
GitHub Integrado:
- Tipo SCM:
github_integrated - API URL: <api_url>
- Tipo SCM:
-
GitHub Consolidado:
- Tipo SCM:
githubconsolidated - Repositório GitHub integrado:
- API URL:
https://<repo_server_name>/api/v3(onde<repo_server_name>é extraído do repositório URL )
- API URL:
- Repositório GitHub não integrado:
- URL da API:
https://api.github.com
- URL da API:
- Tipo SCM:
-
Githospedado:
- Tipo SCM:
hostedgit - API URL:
https://<repo_server_name>/api/v4(onde<repo_server_name>é extraído do repositório URL )
- Tipo SCM:
Se o tipo de SCM não for um dos tipos suportados, uma mensagem de aviso será exibida
get_repo_scm_type ()
Essa função determina o tipo de gerenciamento de código-fonte (SCM) de um determinado repositório URL.
Parâmetro:
repo_url: O endereço URL do repositório para o qual o tipo de SCM precisa ser determinado.
Chamada de função:
scm_type=$(get_repo_scm_type "<repo_url>")
Saída:
Um rótulo que indica a plataforma SCM, que pode ser uma das seguintes:
- Para repositórios GitLab-hosted:
gitlab - Para repositórios GitHub-integrated:
github-Para outros casos (o padrão é GitHub):github
Exemplo 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 exemplo exibe github como valor de saída porque o repositório URL fornecido anteriormente está integrado a GitHub.
get_repo_owner ()
Essa função extrai as informações do proprietário ou do subgrupo do repositório Git URL fornecido anteriormente.
Parâmetro:
repo_url: O URL do repositório Git.
Chamada de função:
Owner_name=$(get_repo_owner "<repo_url>")
Saída:
- As informações do proprietário ou do subgrupo que são extraídas do repositório URL.
Exemplo 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 exemplo exibe user_name como saída porque GitHub hospeda o repositório URL a conta ou subgrupo "username".
- Se o proprietário não for encontrado, ele extrai o primeiro segmento do site URL como o proprietário.
get_repo_name ()
Essa função extrai o nome de um repositório Git de um determinado repositório URL.
Parâmetros:
repo_url: O URL do repositório Git.
Chamada de função:
Repo_name=$(get_repo_name "<repo_url>")
Saída:
Essa chamada funcional exibe o nome do repositório que é extraído do repositório URL como sua saída.
Exemplo 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 exemplo produziria compliance-app, pois o repositório fornecido URL é denominado "compliance-app" em GitHub.
Se o nome não for encontrado, ele tentará usar o penúltimo segmento do site URL como o nome.