2025年2月12日水曜日

copilot-metrics-viewer を使ってみる

copilot-metrics-viewer を使ってみる

概要

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 組織配下でないと取得できないので結構ハードルが高いかもです
個人の利用で取得する方法はないのだろうか

参考サイト

0 件のコメント:

コメントを投稿