Fornecendo Metadados Git
Controle como o Axe Watcher coleta informações do Git para suas execuções de teste
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.
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.
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
originremoto 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: falsenã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
- (JavaScript/TypeScript)
AxeConfiguration.git - (Java)
AxeWatcherOptions.setGitInfo() - (Java)
AxeWatcherGitInfo - Use o Axe Watcher em Ambientes de Integração Contínua (CI)
