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_url O repositório URL. Forneça o URL correto do repositório cujos parâmetros precisam ser encontrados.
  • repo_token_path Caminho 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:

  1. GitHub Integrado:

    • Tipo SCM: github_integrated
    • API URL: <api_url>
  2. 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 )
    • Repositório GitHub não integrado:
      • URL da API: https://api.github.com
  3. Githospedado:

    • Tipo SCM: hostedgit
    • API URL: https://<repo_server_name>/api/v4 (onde <repo_server_name> é extraído do repositório URL )

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.