インストールトークンエンドポイント: GitHub 認証トークンをプログラムで発行する方法
TeamCity/GitHub アプリ接続では、TeamCity が GitHub リポジトリにアクセスするための認証トークンを発行できます。これは通常、UI でプロジェクトを作成するか、VCS 認証トークンページで手動でトークンを発行すると自動的に行われます。
<TeamCity_Server_URL/app/oauth/githubapp/installationToken エンドポイントは、UI を使用せずにこれらのトークンを生成する代替手段を提供します。これは、ビルド構成や VCS ルートを REST API 経由で設定する場合に特に便利です。これにより、ルートに必要なトークン ID をプログラムで取得できます。
主なプロパティ
- エンドポイント
/app/oauth/githubapp/installationToken
- リクエストの種類
POST
- ヘッダー
コンテンツタイプ :
application/x-www-form-urlencoded受諾 :
application/json(オプション) X-TC-GitHub-PAT : 個人の GitHub アクセストークン(GitHub ユーザー設定ページで発行されます)を表す US-ASCII 文字列。省略された場合、TeamCity は内部ストレージに保存されている既存のトークンをチェックすることで、ユーザーとその権限を識別しようとします。詳細については、特記事項のセクションを参照してください。
- 本文
次のキーを持つ x-www-form-urlencoded 文字列:
projectId— 新しく発行された認証トークンを所有するプロジェクトの内部 ID。connectionId— 新しいトークンを発行するために使用される GitHub アプリ接続の内部 ID。デフォルトではPROJECT_EXT_INT32形式です。repositoryName— 新しく発行されたトークンがアクセスできるリポジトリの名前。ユーザー名は省略してください(「johndoe/my-repo-name」ではなく「my-repo-name」)。`repositoryName=name1&repositoryName=name2&..." という形式で複数のリポジトリをリストできます。対応する GitHub アプリをインストールした組織またはユーザーが所有するリポジトリの名前のみを受け入れます。
- レスポンス
リクエストが成功すると、次のフィールドを含む JSON ペイロードを含む HTTP 200 "OK" 応答が返されます。
tokenId— 新しく発行されたトークンの完全な ID。permissions— 発行されたトークンのアクセス権限を記述する権限と値のペアのリスト。repositories— このトークンを使用してアクセスできるリポジトリ名の配列。personalAccessTokenSource— ユーザーの個人アクセストークンがX-TC-GitHub-PATヘッダーを介して明示的に提供されたか、TeamCity によって取得されたかに応じて、「USER_PROVIDED」または「TOKEN_STORAGE_LOOKUP」のいずれかを返します。
失敗したリクエストはコード 400「不正なリクエスト」を返します。
以下の cURL サンプルは、「PROJECT_EXT_31」ID を持つ GitHub App 接続を使用して、「sample-java-app-maven」および「HelpLinkGenerator」リポジトリへのアクセス権を持つトークンを発行する方法を示しています。このトークンは、「GitHubMavenJavaApp」ID を持つプロジェクトによって所有されます。
成功した場合、リクエストは次のペイロードを返します。
発行されたトークンは、親プロジェクト設定の VCS 認証トークンタブに表示されます。

特記事項
POSTリクエストを送信するユーザーは、参照先の TeamCity プロジェクトのプロジェクト管理者である必要があります。このプロジェクト(およびその子サブプロジェクト)のみが、新しく発行されたトークンを使用できます。発行されたトークンは、リクエストボディで指定されたリポジトリ名に対してのみアクセス権限を持ちます。任意のユーザー / 組織のリポジトリにアクセスできる無制限のトークンを発行することはできません。
TeamCity は、インストールトークンの権限を、選択された GitHub リポジトリ全体でユーザーが持つ最低レベルに制限します。そのため、ユーザーは事前に対応する GitHub アプリ接続を介して TeamCity にサインインしている必要があります(ログインするか、「新規プロジェクト」ページでリポジトリを一覧表示するなど)。または、
X-TC-GitHub-PATを使用して、ユーザーの個人アクセストークン(PAT)を明示的に指定することもできます。
関連ページ:
接続を構成
TeamCity 接続は、外部サービスへのアクセスに必要な資格情報を保存します。このサードパーティサービスの種類に基づいて、2 つの主要な接続カテゴリがあります。VCS 接続これらの接続は、GitHub、GitLab、Bitbucket クラウドなどの VCS プロバイダーへのアクセスに必要な情報を保存します。これらの接続は、プロジェクト、ビルド構成、パイプラインを最も速く作成する方法を提供します。認証は自動的に処理されるため、リポジトリを選択するだけでビルドステップの設定を開始できます。接続が...
リフレッシュ可能なアクセストークンの管理
TeamCity には、機能上 VCS ホスティングプロバイダーへのアクセスを必要とするエンティティが複数あります:VCS ルート、コミットステータスパブリッシャー、プルリクエスト機能など。これらのエンティティは通常、複数の VCS 認証オプションを提供します。通常のユーザー名 / ログイン資格情報 — この認証方法は最も脆弱であるため、主要な VCS ホスティングプロバイダーによって徐々に廃止されています。個人アクセストークン (PAT) — VCS プロバイダー側で発行され、TeamCity...
TeamCity REST API
TeamCity は、外部アプリケーションを統合し、TeamCity サーバーとのスクリプト相互作用を作成するための RESTAPI を提供します。URL パスを介してリソースにアクセスできます。ブラウザーで URL を開くと、REST API の操作を開始できます。このページには、API を探索するためのいくつかのポインタがあります。詳細については、専用の TeamCity RESTAPI ヘルプに進んでください。TeamCity CLI から REST API リクエストを送信することもできます。...
ロールと権限の管理
TeamCity のユーザーアクセスレベルは、ユーザーに異なるロールを割り当てて、それぞれの権限を付与することによって処理されます。権限とは、ビルドを実行したり、ビルド構成設定を変更したりするなど、特定の操作を実行するための承認です。ロールとは、1 つまたはすべてのプロジェクトでユーザーに付与できる権限のセットであり、プロジェクトや UI のさまざまな機能へのアクセスを制御します。認証モード:TeamCity 認証は、シンプルモードと per-project モードの 2 つのモードをサポートしま...