ステータス発行者のコミット
Commit Status Publisher is a build feature that posts build statuses to the VCS provider. This allows you to track the code health from the repository page, and quickly navigate to related TeamCity builds to inspect detailed build logs.

Supported VCS providers:
GitHub(英語) (プルリクエストのビルドステータスもサポートされています)
Azure DevOps (サポートされるステータス: 保留中、成功、失敗、エラー)
Gerrit コードレビューツール 2.6+
Perforce ヘリックススウォーム
For GitHub, GitLab, Space, Bitbucket Server and Bitbucket Cloud, Perforce Helix Swarm, and Azure DevOps, Commit Status Publisher updates the commit status in the version control system as soon as the build is added to the queue, providing you with the most up-to-date information.
共通設定
- VCS ルート
The VCS ルート that carries out all TeamCity-to-VCS communication operations. This can be a separate VCS root, or the one that your build configuration/pipeline already uses to check out repository files.
- 出版社
The type of your VCS. Other Commit Status Publisher settings vary depending on this setting.
- サーバー URL
The URL of your VCS server. Use the default value for public services and enter a custom URL for on-premises solutions. For example,
https://api.github.comfor GitHub.com andhttp[s]://<host>[:<port>]/api/v3for GitHub Enterprise.- Auth settings
These settings specify how Commit Status Publisher should authenticate to your VCS before it can post build statuses. You can click the 接続のテスト button at the dialog's bottom to verify your current settings are valid.
For most of the VCS providers, you have the following options:
Password — the classic username/password credentials pair. Note that most of the providers gradually deprecate this auth mode as least secure.
アクセストークン — authenticate using the personal access token that you should manually issue on the VCS side. For certain providers (for example, GitHub), you can click the magic wand button to let TeamCity automatically retrieve the access token using a pre-configured OAuth 接続 :

Otherwise, issue with correct permissions manually. For example, for GitHub:
Classic GitHub tokens:
public_repoandrepo:statusfor public repositories;repofor private repositories. See also: OAuth アプリのスコープ(英語)。Fine-grained tokens: Add the
Commit Statusespermission with the "Read and write" access type. This permission can only be added for tokens with the "All repositories" or "Only select repositories" access type. See also: きめ細かな個人アクセストークンに必要な権限(英語)。
リフレッシュ可能なアクセストークン — use short-lived tokens acquired by TeamCity from a required VCS provider via existing OAuth/App connections (as opposed to static PAT tokens issued manually by users on a VCS hosting side). See the following article for more information on generating and using refreshable tokens: リフレッシュ可能なアクセストークンの管理。
VCS ルート認証情報を使用する — TeamCity は、VCS ルート設定から認証情報を抽出しようとします。このオプションは、トークン (静的 / 個人またはリフレッシュ可能 /OAuth) を使用して認証を通過し、HTTP(S) フェッチ URL を使用してリポジトリを取得する VCS ルート向けに設計されています。関連する VCS ルートが匿名または標準のユーザー名とパスワードによる認証を採用している場合、または SSH フェッチ URL を使用している場合は、他のオプションを選択してください。
- Build name
The custom build name displayed in the status message. Allows you to include
%parameter_name%parameter references. For example, overview section image shows statuses generated with the following custom build name:Integration tests (build #%build.number%, %teamcity.agent.jvm.os.name%)This setting is available for all Git-based providers: Azure DevOps, Bitbucket Cloud, Bitbucket Server and Data Center, GitHub (the "Status check name" setting), GitLab ("External job name"), and JetBrains Space ("Display name").
プロバイダー固有の構成
GitHub
When using manually issued access tokens, make sure to provide sufficient permissions:
Classic GitHub tokens:
public_repoandrepo:statusfor public repositories;repofor private repositories. See also: OAuth アプリのスコープ(英語)。Fine-grained tokens: Add the
Commit Statusespermission with the "Read and write" access type. This permission can only be added for tokens with the "All repositories" or "Only select repositories" access type. See also: きめ細かな個人アクセストークンに必要な権限(英語)。
ブランチを保護し、検証済みのプルリクエストのみがマージされるようにするには、GitHub リポジトリ設定でブランチ保護ルール(英語)を作成します。TeamCity ビルドを必須のステータスチェックとして設定すると、要求された変更のビルドが正常に完了するまで、GitHub はプルリクエストのマージを許可しません。
VCS ルートが App Token を使用して GitHub に接続する場合、コミットステータスパブリッシャー機能を設定しなくても、GitHub チェック API(英語) を利用して Markdown 形式のビルドステータスを自動的に投稿できます。詳細については、この記事を参照してください: GitHub が Webhook トリガーをチェック。
GitLab
GitLab 認証情報と GitLab プロジェクトは次のように設定する必要があります。
資格情報は、プロジェクトの開発者、保守者、所有者のロールを持つユーザーに属している必要があります。
保護されたブランチのコミットステータスを変更できるようにするには、GitLab ユーザーがプッシュ可能リストに含まれている必要があります。
プロジェクトの GitLab プロジェクト可視性(英語)設定で、CI/CD オプション (または古い GitLab バージョンではパイプラインオプション) が有効になっていることを確認します。
GitLab API URL フィールドは、http[s]://<hostname>[:<port>]/api/v4 形式の URL を受け入れます。このフィールドはオプションです。空白のままにすると、TeamCity は VCS ルート設定で指定されたフェッチ URL に対応する値を使用します。
Bitbucket クラウド
Bitbucket クラウドに接続できるようにするには、TeamCity サーバーの URL が完全修飾ドメイン名(FQDN)であることを確認します(例: http://myteamcity.domain.com:8111 (英語))。 http://myteamcity:8111 (英語) などの短い名前は、Bitbucket API によって拒否されます。
Bitbucket サーバー
ブランチを保護し、検証済みのプルリクエストのみがマージされるようにするには、Bitbucket リポジトリ設定で必須ビルド(英語)を指定します。TeamCity ビルドを必須ビルドとして設定するには、Bitbucket で必要なビルドを追加するページを開き、ビルドを追加フィールドにビルド構成 ID をビルドキーとして指定します。この場合、Bitbucket では、要求された変更のビルドが正常に完了するまで、プルリクエストのマージは許可されません。
JetBrains Space
バージョン 2023.11 以降、事前定義された Space のつながりによってセットアップされた TeamCity ビルド構成では、ビルドステータスをポストするために構成されたコミットステータスパブリッシャーは必要ありません。
スペース接続を使用してプロジェクトをセットアップすると、TeamCity はスペースコミット数およびブランチタブの自動化セクションにビルド関連のコメントを自動的に投稿します。

Commit Status Publisher 機能を手動で設定することもできます。次の場合は手動セットアップを選択できます。
カスタムの発行者名やスペースプロジェクトキーを設定したい場合。
TeamCity はビルドステータスを自動的に公開できません (たとえば、カスタム構成で JetBrains Space のオンプレミスインスタンスを利用している場合にこれが発生する可能性があります)。
コミットステータスパブリッシャーを手動で設定するには、定義済みの Space のつながりが必要です。適切な接続がなく、プロジェクトが手動で作成されたか、リポジトリ URL から作成された場合は、プロジェクト設定 | 接続に移動して新しい接続を作成してください。
次に、ビルド構成の設定で:
機能を構築するを開き、ステータス発行者のコミットビルド機能を追加します。
JetBrains Space パブリッシャーと作成された接続を選択します。
Space でこのサービスに表示される名前を指定します。
設定を保存します。
Perforce ヘリックススウォーム
Perforce シェルフファイルの変更でビルドが実行された場合(英語)、TeamCity はそのステータスをコメントとして Perforce HelixSwarm のそれぞれのコードレビューに報告できます。

詳細については、ヘルプ記事 Perforce Helix Swarm との統合を参照してください。
Gerrit
コミットステータスパブリッシャーは、Gerrit バージョン 2.6+ をサポートしています。以前の Gerrit バージョンとの統合を構成するには、サポートにお問い合わせください。
Publish Pipeline Run Statuses
Commit Status Publisher is one of the most frequently used build configuration features, as it is easy to configure and provides a clear benefit of improving the overall observability. For that reason, we have natively integrated this functionality in pipelines: enable the リポジトリにステータスを公開する toggle in the repository settings and TeamCity will do the rest.

VCS チェックアウトルールでの CommitStatusPublisher の使用
ビルドの VCS ルートにチェックアウトルールが構成されている場合、Commit Status Publisher は、これらのルールに準拠するコミットのみを考慮します。つまり、ビルド開始前に行われた最後のコミットがチェックアウトルールを満たさない場合、ビルドステータスのラベルは付けられません。代わりに、最後の満足のいくコミットの横にステータスが表示されます。
ビルドの最後のコミットの横にビルドステータスを表示する必要がある場合(プルリクエストなど)、このコミットが VCS ルートのスコープに含まれるようにチェックアウトルールを調整できます。または、これが繰り返し発生する問題である場合は、ビルドチェーンを次のように再配置することを検討してください。
チェックアウトルールを使用してメインビルドを構成します。
ビルド手順とチェックアウトルールを使用せずに、ステータスパブリッシャーのコミット機能を使用してユーティリティ複合ビルドを構成します。
複合ビルドで、メインビルドへのスナップショットの依存関係を構成します。
このようなチェーンの範囲では、コミットステータスパブリッシャーはチェックアウトルールに拘束されず、ビルドステータスは最後のコミットの横に表示されます。
Kotlin DSL
In Kotlin DSL , configure the jetbrains.buildServer.configs.kotlin.buildFeatures.CommitStatusPublisher object inside the features block of a buildType instance to set up your commit status publisher.
See this link for more information: CommitStatusPublisher | Kotlin DSL docs(英語).
トラブルシューティング
TeamCity は、Commit Status Publisher ビルド機能に関連するイベントを teamcity-commit-status.log ファイルに書き込みます。「debug-commit-status」プリセットを適用して、DEBUG レベルのイベントをこのログに含めます。
サンプル
以下の例は、プルリクエストに含まれる変更を含むビルドのステータスを TeamCity から GitHub に送信するように構成する方法を示しています。
プルリクエストビルド機能を使用して、プルリクエストブランチを構成します。または、VCS ルートでブランチ仕様を構成し、プルリクエストブランチが含まれていることを確認することで、ブランチを利用できるようにすることもできます (関連するブログ投稿(英語)も参照してください)。
Commit StatusPublisher ビルド機能を追加します。
デフォルトの接続されているすべての VCS ルートオプションを使用して、接続されているすべての VCS ルートのコミットのステータスを公開します
パブリッシャーとして GitHub を選択し、接続の詳細と資格情報を指定して、接続をテストします。

設定を保存してください。
ソースコードへの変更をコミットし、GitHub でプルリクエストを作成してから、TeamCity で変更を加えたビルドを実行します。コミットステータスパブリッシャーは、プルリクエストの変更を加えたビルドのステータスを通知します。
チェックが以下であるかどうかが表示されます。
進行中
失敗した
成功した
コミットステータスにカーソルを合わせると、ビルドの概要が表示されます
ビルドステータスアイコンまたは詳細リンクをクリックすると、TeamCity でビルド結果ページが開きます。この情報は、プルリクエストの詳細のコミット数タブでも確認できます。
前のページと同様に、ビルドステータスアイコンをクリックすると、TeamCity UI にビルド結果ページが開きます。
関連ページ:
ビルド機能を追加する
ビルド機能は、追加の機能を有効にするために任意のビルド構成に追加できる機能です。例: ステータス発行者のコミットビルド機能は、コードファイルを保存する VCS に TeamCity ビルド結果を公開し、調査自動割り当ては最新の変更によってビルドが壊れたユーザーを識別し、これらの問題を解決するタスクを自動的に割り当てます。構成されたビルド機能は、削除することなくいつでも一時的に無効にできます。TeamCity ビルドの特徴:TeamCity には、構成に追加できる次のビルド機能が付属しています。A...
コミットステータスの表示
プロジェクトが外部 CI サーバーと統合されている場合、または CI/CD の内部自動化ジョブを使用している場合は、コミットごとにどのビルドが成功したか失敗したかを確認し、失敗した自動化タスクに関する詳細情報を取得できます。さらに詳細な情報が必要な場合は、外部サービスへのリンクもあります。誰かがコミットを行い、ビルドシステムがビルドを実行すると、コミットリストのコミットの横に、一般的な自動化ステータスを示すアイコンが表示されます。- 保留、実行、が失敗しました、は成功しました、コミット(ビルド)...
VCS ルートの設定
VCS ルートは、TeamCity ←→ VCS リポジトリ通信の基礎です。この不可欠な要素は、リポジトリのチェックアウト、コードソースのタグ付け、ビルドステータスの VCS への返信など、さまざまな操作を実行するために必要な VCS プロバイダーへの接続を定義します。VCS ルートには次の情報が保存されます。TeamCity がリモートファイルをプルおよびプッシュするために使用する URL を取得してプッシュします。ブランチ情報: TeamCity が追跡する必要があるリポジトリブランチのリスト...
接続を構成
TeamCity 接続は、外部サービスへのアクセスに必要な資格情報を保存します。このサードパーティサービスの種類に基づいて、2 つの主要な接続カテゴリがあります。VCS 接続これらの接続は、GitHub、GitLab、Bitbucket クラウドなどの VCS プロバイダーへのアクセスに必要な情報を保存します。これらの接続は、プロジェクト、ビルド構成、パイプラインを最も速く作成する方法を提供します。認証は自動的に処理されるため、リポジトリを選択するだけでビルドステップの設定を開始できます。接続が...
リフレッシュ可能なアクセストークンの管理
TeamCity には、機能上 VCS ホスティングプロバイダーへのアクセスを必要とするエンティティが複数あります:VCS ルート、コミットステータスパブリッシャー、プルリクエスト機能など。これらのエンティティは通常、複数の VCS 認証オプションを提供します。通常のユーザー名 / ログイン資格情報 — この認証方法は最も脆弱であるため、主要な VCS ホスティングプロバイダーによって徐々に廃止されています。個人アクセストークン (PAT) — VCS プロバイダー側で発行され、TeamCity...
ビルドパラメーターの設定
パラメーターは、TeamCity 設定およびビルドスクリプトの構文を介して参照するペアです。パラメーター部分は、生の値 () にすることも、別のパラメーターへの参照 () を含めることもできます。パラメーター型:TeamCity は 3 種類のパラメーターをサポートしています。構成パラメーター — ビルド構成内で設定を共有することを主な目的とするパラメーター。これらのパラメーターを使用して、テンプレートから作成された構成やレシピを使用する構成をカスタマイズすることもできます。TeamCity は...