概要
copilot の無料枠を使い切ったかどうか確認するのに使えます
公式のイメージはないので自分でビルドします
また copilot/metrics の API を内部で使っているのですがこの API は Github エンタープライズ or 組織 にしか使えないので個人では使えません
環境
- macOS 15.3
- docker 27.5.1
事前準備
- Enterprise または organization に対して、[Copilot metrics API access] ポリシーを有効にする必要があります
- パーソナルアクセストークンを取得します
ビルド
-
git clone https://github.com/github-copilot-resources/copilot-metrics-viewer.git
-
cd copilot-metrics-viewer/
-
docker build -t copilot-metrics-viewer .
.env 修正
リポジトリ内にデフォルトの .env があるのでそれを流用すれば OK です
NUXT_GITHUB_TOKEN を修正しましょう
パーソナルアクセストークンに必要な権限は以下です
- copilot
- manage_billing:copilot
- manage_billing:enterprise
- read:enterprise
- read:org
その他の設定はデフォルトのままです
今回個人用で誰でも使えるようなアプリではないので NUXT_OAUTH_GITHUB_CLIENT_ID 関連はコメントアウトします
NUXT_PUBLIC_IS_DATA_MOCKED=false にします
NUXT_PUBLIC_GITHUB_ORG は自身が所属する組織IDを入力します
- vim .env
# Determines if mocked data should be used instead of making API calls.
NUXT_PUBLIC_IS_DATA_MOCKED=false
# Determines the scope of the API calls.
# Can be 'enterprise' or 'organization' to target API calls to an enterprise or an organization respectively.
NUXT_PUBLIC_SCOPE=organization
# Determines the enterprise or organization name to target API calls.
NUXT_PUBLIC_GITHUB_ORG=xxx
NUXT_PUBLIC_GITHUB_ENT=
# Determines the team name if exists to target API calls.
NUXT_PUBLIC_GITHUB_TEAM=
NUXT_PUBLIC_USING_GITHUB_AUTH=false
# Determines the GitHub Personal Access Token to use for API calls.
# Create with scopes copilot, manage_billing:copilot or manage_billing:enterprise, read:enterprise AND read:org
NUXT_GITHUB_TOKEN=ghp_xxx
NUXT_SESSION_PASSWORD=something_long_and_random_thats_at_least_32_characters
# for Github OAuth
# NUXT_OAUTH_GITHUB_CLIENT_ID=
# NUXT_OAUTH_GITHUB_CLIENT_SECRET=
# to use a corporate proxy
# HTTP_PROXY=http://proxy.company.com:8080
起動
-
docker run -p 8080:80 --env-file ./.env copilot-metrics-viewer
動作確認
localhost:8080 にアクセスするとメトリックスが表示されます
最後に
Github エンタープライズ or 組織配下でないと取得できないので結構ハードルが高いかもです
個人の利用で取得する方法はないのだろうか