Gitメタデータの提供
テスト実行時にAxe WatcherがGit情報を収集する方法を制御する
Axe Watcherはアクセシビリティの結果をテストされたGitコミットにリンクし、Axe Developer Hubでブランチやビルドにまたがる問題を追跡できるようにします。デフォルトでは、WatcherはローカルGitバイナリを使用して、この情報を自動的に収集します。また、収集を完全に無効にしたり、自身でメタデータを提供したりすることもできます。
自動収集(デフォルト)
git 設定が提供されない場合、Watcher はローカルリポジトリから現在のブランチ、コミット SHA、作成者、およびその他の Git フィールドを自動検出します。追加の設定は必要ありません。
このプロジェクトで初めてセッションが成功すると、自動検出されたリポジトリがプロジェクトのロックされたリポジトリになります。その後、異なるリポジトリに対する実行は拒否されます。実行が拒否されました: データの形式またはリポジトリがプロジェクトと一致しませんを参照してください。
Git収集の無効化
環境にGitバイナリがない場合、またはテスト実行にGitデータを関連付けたくない場合、収集を完全に無効にすることができます。
プロジェクトが既にGitにロックされている場合、コレクションを無効にしてもGitなしのセッションは作成されず、代わりに実行が拒否されます。Gitなしの実行は、別のGitなしでロックされたプロジェクトに送信してください。
(JavaScript/TypeScript)git プロパティをAxeConfigurationのfalseに設定します。
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
projectId: process.env.AXE_DEVELOPER_HUB_PROJECT_ID,
git: false
}(Java)AxeWatcherOptionsのsetGit(false)を呼び出します:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("AXE_DEVELOPER_HUB_API_KEY"))
.setProjectId(System.getenv("AXE_DEVELOPER_HUB_PROJECT_ID"))
.setGit(false);明示的なメタデータの提供
一部のCI設定では、テストがテスト対象のリポジトリとは別の専用のQAリポジトリで実行されます。その場合、自動検出はコードリポジトリではなくQAリポジトリからメタデータを収集してしまい、Axe Developer Hubで誤解を招く結果を生じます。正しいメタデータを明示的に提供する必要があります。
浅いクローンやリポジトリがデタッチされたHEAD状態にある場合など、自動検出が信頼できない場合にも明示的なメタデータは役立ちます。
明示的なメタデータが提供されると、そのテスト実行では自動検出が完全にスキップされます。省略したフィールドは全てnullとして送信されます。
以下のフィールドが利用可能です。
branch、commitSha、およびurlはgitfulフィールドです。プロジェクトがまだデータの形状にロックされていない場合、3つすべてが含まれていないセッションはGitlessとして記録され、以降プロジェクトはGitlessにロックされます。一度プロジェクトがGitにロックされると、3つのうちどれかが欠けているセッションは吸収時に拒否されます:結果は保存されません。拒否メッセージとその解決方法については実行が拒否されました:データの形状またはリポジトリがプロジェクトに一致していませんを参照してください。残りのフィールドはオプションです。
| フィールド(JavaScript/TypeScript) | メソッド(Java) | Gitful | 説明 |
|---|---|---|---|
branch |
setBranch() |
はい | 現在のブランチ名 |
commitAuthor |
setCommitAuthor() |
いいえ | 著者表示名。省略された場合、Axe Developer Hub では著者は利用不可能として表示されます。 |
commitEmail |
setCommitEmail() |
いいえ | 著者のメールアドレス。 |
commitMessage |
setCommitMessage() |
いいえ | 完全なコミットメッセージ。省略された場合、Axe Developer Hub ではコミットメッセージは利用不可能として表示されます。 |
commitSha |
setCommitSha() |
はい | フルまたは略式のコミットハッシュ |
defaultBranch |
setDefaultBranch() |
いいえ | デフォルトブランチ名(例:main)。このフィールドがないと、Axe Developer Hub はどのブランチがデフォルトか識別できないため、デフォルトブランチに対するフィーチャーブランチの比較は利用できなくなります。 |
isDirty |
setIsDirty() |
いいえ | 未コミットの変更がある場合はtrue |
tag |
setTag() |
いいえ | 現在のタグ(例:v1.2.3) |
url |
setUrl() |
はい | リポジトリのリモートURL |
(JavaScript/TypeScript)AxeConfigurationのgitプロパティにGitConfigオブジェクトを渡します。具体的な環境変数名は使用している 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)AxeWatcherGitInfoインスタンスを作成し、AxeWatcherOptionsのsetGitInfo()に渡します:
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"));実行が拒否されました: データの形式またはリポジトリがプロジェクトと一致しません
プロジェクトが初めてセッションを成功裏に取り込んだ時点で、そのデータ形式(GitまたはGitなし)と、Gitプロジェクトの場合はリポジトリがロックされます。ロックと一致しない実行は取り込み時に拒否され、結果は保存されません。
一般的な原因:
- 別のリポジトリまたはテストスイートが同じプロジェクトを指しています。 すでに別のリポジトリにロックされているプロジェクトではなく、独自のプロジェクトに送信してください。
- 浅いクローン、デタッチドHEAD状態、または
originリモートが欠落しているために、リポジトリURL、ブランチ、またはコミットSHAが削除されています、Gitの実行がGitなしに見えるようになります。CI専用のガイダンスについては、CI環境でのAxe Watcherを参照してください。 - すでにGitにロックされているプロジェクトで、Gitデータ収集が無効化されました。
git: falseを使用して実行を送信してもプロジェクトはGitなしに変換されず、その実行は拒否されます。Gitなしの実行は、別のGitなしにロックされたプロジェクトに送信してください。
正確な拒否メッセージについては、トラブルシューティングで実行が拒否されましたを参照してください。
関連情報
- (JavaScript/TypeScript)
AxeConfiguration.git - (Java)
AxeWatcherOptions.setGitInfo() - (Java)
AxeWatcherGitInfo - CI環境でAxe Watcherを使用する
