Fornecendo Metadados Git

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Controle como o Axe Watcher coleta informações do Git para suas execuções de teste

Not for use with personal data

O Axe Watcher vincula os resultados de acessibilidade ao commit Git que foi testado, permitindo que você rastreie problemas entre branches e builds no Axe Developer Hub. Por padrão, o Watcher coleta essas informações automaticamente usando o binário local do Git. Você também pode desativar a coleta completamente ou fornecer os metadados você mesmo.

Coleta Automática (Padrão)

Quando nenhuma configuração de git é fornecida, o Watcher detecta automaticamente o ramo atual, o SHA do commit, o autor e outros campos do Git a partir do repositório local. Nenhuma configuração adicional é necessária.

Se esta for a primeira sessão bem-sucedida do projeto, o repositório detectado automaticamente torna-se o repositório bloqueado do projeto. Execuções posteriores em um repositório diferente são rejeitadas. Consulte Execução Rejeitada: Formato dos Dados ou Repositório Não Correspondem ao Projeto.

Desativando a Coleta do Git

Se o seu ambiente não possui o binário do Git, ou se você não deseja que os dados do Git sejam associados a uma execução de teste, você pode desativar a coleta completamente.

important

Se o projeto já estiver bloqueado para Git, desativar a coleta não produzirá mais uma sessão sem Git: a execução é rejeitada. Envie execuções sem Git para um projeto separado, bloqueado sem Git.

(JavaScript/TypeScript) Defina a propriedade git para false no seu AxeConfiguration:

axe: {
  apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
  projectId: process.env.AXE_DEVELOPER_HUB_PROJECT_ID,
  git: false
}

(Java) Chame setGit(false) no seu AxeWatcherOptions:

AxeWatcherOptions options = new AxeWatcherOptions()
    .setApiKey(System.getenv("AXE_DEVELOPER_HUB_API_KEY"))
    .setProjectId(System.getenv("AXE_DEVELOPER_HUB_PROJECT_ID"))
    .setGit(false);

Fornecendo Metadados Explícitos

Algumas configurações de CI executam testes em um repositório de QA dedicado que é separado do repositório sob teste. Nesses casos, a detecção automática recolheria metadados do repositório de QA em vez do repositório de código, produzindo resultados enganosos no Axe Developer Hub. Você precisa fornecer os metadados corretos explicitamente.

Metadados explícitos também são úteis quando a detecção automática é pouco confiável, por exemplo, em clones superficiais ou quando o repositório está em um estado de HEAD destacado.

note

Quando os metadados explícitos são fornecidos, a detecção automática é completamente ignorada para essa execução de teste. Qualquer campo que você omitir será transmitido como null.

Os seguintes campos estão disponíveis.

branch, commitSha e url são os campos gitful. Se o projeto ainda não estiver vinculado a uma forma de dados, uma sessão submetida sem todos os três é registrada como Gitless, e o projeto é bloqueado para Gitless daqui em diante. Uma vez que um projeto está bloqueado no Git, uma sessão faltando qualquer um dos três é rejeitada na ingestão: os resultados não são salvos. Veja Execução Rejeitada: Forma de Dados ou Repositório Não Coincide com o Projeto para a mensagem de rejeição e como resolvê-la. Os campos restantes são opcionais.

Campo (JavaScript/TypeScript) Método (Java) Gitful Descrição
branch setBranch() sim Nome da branch atual
commitAuthor setCommitAuthor() não Nome de exibição do autor. Se omitido, o autor aparece como indisponível no Axe Developer Hub.
commitEmail setCommitEmail() não Endereço de e-mail do autor.
commitMessage setCommitMessage() não Mensagem completa do commit. Se omitida, a mensagem do commit aparece como indisponível no Axe Developer Hub.
commitSha setCommitSha() sim Hash completo ou abreviado do commit
defaultBranch setDefaultBranch() não Nome padrão do ramo (por exemplo, main). Sem este campo, o Axe Developer Hub não pode identificar qual ramo é o padrão, portanto, comparações de branches de recursos contra o ramo padrão não estarão disponíveis.
isDirty setIsDirty() não true se houver alterações não confirmadas
tag setTag() não Tag atual (por exemplo, v1.2.3)
url setUrl() sim URL remoto do repositório

(JavaScript/TypeScript) Passe um objeto GitConfig para a propriedade git no seu AxeConfiguration. Os nomes específicos das variáveis de ambiente dependem da sua plataforma de CI:

axe: {
  apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
  projectId: process.env.AXE_DEVELOPER_HUB_PROJECT_ID,
  git: {
    commitSha: process.env.GIT_COMMIT,
    branch: process.env.GIT_BRANCH,
    url: process.env.GIT_URL,
    commitAuthor: process.env.GIT_AUTHOR_NAME,
    commitEmail: process.env.GIT_AUTHOR_EMAIL,
    commitMessage: process.env.GIT_COMMIT_MESSAGE,
    defaultBranch: 'main'
  }
}

(Java) Crie uma instância de AxeWatcherGitInfo e passe-a para setGitInfo() no seu AxeWatcherOptions:

AxeWatcherOptions options = new AxeWatcherOptions()
    .setApiKey(System.getenv("AXE_DEVELOPER_HUB_API_KEY"))
    .setProjectId(System.getenv("AXE_DEVELOPER_HUB_PROJECT_ID"))
    .setGitInfo(new AxeWatcherGitInfo()
        .setCommitSha(System.getenv("GIT_COMMIT"))
        .setBranch(System.getenv("GIT_BRANCH"))
        .setUrl(System.getenv("GIT_URL"))
        .setCommitAuthor(System.getenv("GIT_AUTHOR_NAME"))
        .setCommitEmail(System.getenv("GIT_AUTHOR_EMAIL"))
        .setCommitMessage(System.getenv("GIT_COMMIT_MESSAGE"))
        .setDefaultBranch("main"));

Execução Rejeitada: Formato dos Dados ou Repositório Não Correspondem ao Projeto

Uma vez que um projeto tenha processado sua primeira sessão bem-sucedida, seu formato de dados (Git ou sem Git) e, para projetos Git, seu repositório, são bloqueados. Uma execução que não corresponder ao bloqueio é rejeitada durante a ingestão, e os resultados não são salvos.

Causas comuns:

  • Um segundo repositório ou suíte de testes está apontado para o mesmo projeto. Envie-o para seu próprio projeto, em vez de para aquele já bloqueado para um repositório diferente.
  • Um clone superficial, estado detachado de HEAD, ou a falta de um origin remoto está removendo a URL do repositório, ramo ou SHA do commit, fazendo uma execução do Git parecer sem Git. Veja Axe Watcher em Ambientes de Integração Contínua (CI) para orientações específicas de CI.
  • A coleta de dados do Git foi desabilitada em um projeto já bloqueado para o Git. Enviar uma execução com git: false não converte mais o projeto para sem Git; a execução é rejeitada. Envie execuções sem Git para um projeto separado, bloqueado para sem Git.

Consulte Execução Rejeitada na seção de Solução de Problemas para a mensagem exata de rejeição.

Veja Também