InstallationToken エンドポイント: GitHub 認証トークンをプログラムで発行する方法
TeamCity GitHub アプリ 接続は、TeamCity が GitHub リポジトリにアクセスできる認証トークンを発行できます。 これは通常、UI でプロジェクトを作成するか、 VCS 認証トークンページで手動でトークンを発行すると自動的に行われます。
<TeamCity_サーバー_URL/アプリ/oauth/githubapp/installationToken エンドポイントは、UI を使用せずにこれらのトークンを生成する別の方法を提供します。 特に、 REST API 経由でビルド構成と VCS ルートを構成する場合に便利です。これにより、それらのルートに必要なトークン ID をプログラムで取得できます。
主なプロパティ
- エンドポイント
/app/oauth/githubapp/installationToken
- リクエストタイプ
POST
- ヘッダー
Content-Type:
application/x-www-form-urlencodedAccept:
application/json(オプション) X-TC-GitHub-PAT:: 個人の GitHub アクセストークン(GitHub ユーザー設定ページで発行されます)を表す US-ASCII 文字列。 省略した場合、TeamCity は内部ストレージに保存されている既存のトークンを確認して、ユーザーとその権限を識別しようとします。 詳細については、 特記事項 セクションを参照してください。
- 本文
次のキーを持つ x-www-form-urlencoded 文字列:
プロジェクト ID— 新しく発行された認証トークンを所有するプロジェクトの内部 ID。接続 ID— 新しいトークンを発行するために使用される GitHub アプリ接続の内部 ID。 デフォルトではPROJECT_EXT_INT32形式です。リポジトリ名— 新しく発行されたトークンがアクセスできるリポジトリの名前。 ユーザー名は省略してください(「johndoe/my-repo-name」ではなく「my-repo-name」)。 複数のリポジトリを 「repositoryName=name1&repositoryName=name2&...」フォーマットで一覧表示できます。対応する GitHub アプリをインストールした組織またはユーザーが所有するリポジトリの名前のみを受け入れます。
- レスポンス
リクエストが成功すると、次のフィールドを含む JSON ペイロードを含む HTTP 200 "OK" 応答が返されます。
トークン ID— 新しく発行されたトークンの完全な ID。権限— 発行されたトークンのアクセス権限を記述する権限と値のペアのリスト。リポジトリ— このトークンを使用してアクセスできるリポジトリ名の配列。個人用アクセストークンソース— ユーザーの個人用アクセストークンが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)を明示的に指定することもできます。