Code Tempo と GitHub の関係
Code Tempo は GitHub のデータを活用して開発活動を可視化するサービスです。 このページでは、GitHub との連携方法、取得するデータの範囲、セキュリティポリシーについて説明します。
GitHub OAuth 認証
Code Tempo は GitHub OAuth を使用してユーザー認証を行います。 ログイン時に GitHub の認証画面が表示され、以下の権限(スコープ)へのアクセスを許可いただきます。
read:user
GitHub プロフィール情報(ユーザー名、アバター)の読み取り
user:email
メールアドレスの読み取り(ログイン識別用)
repo
リポジトリデータ(コミット、PR、Issue)の読み取り。プライベートリポジトリの分析に必要
read:org
所属する Organization の情報の読み取り
read:project
GitHub Projects v2 のデータ読み取り
repo スコープについて: GitHub OAuth の仕様上、リポジトリの読み取り専用スコープ(read:repo)は存在しません。 そのため repo スコープを要求していますが、Code Tempo はリポジトリへの書き込みは一切行いません。
取得するデータの範囲
Code Tempo は GitHub の GraphQL API および REST API を使用して、以下のデータを読み取り専用で取得します。
コミット履歴
コミット数、日時、作者情報。開発活動量やコントリビューター分析に使用
Pull Request
PR のオープン/マージ/クローズ、レビュー情報。サイクルタイムや効率分析に使用
Issue
Issue の作成/クローズ状況。ブロッカー検出やプロジェクト進捗に使用
GitHub Projects
プロジェクトのアイテム、ステータス、フィールド情報。進捗追跡に使用
GitHub Actions
ワークフロー実行履歴。デプロイ頻度の計測に使用
ブランチ情報
ブランチの一覧と最終更新日時。ステイルブランチ検出に使用
Code Tempo が行わないこと
Code Tempo は分析・可視化に特化したサービスです。 以下の操作は一切行いません。
コードの変更・書き込み
リポジトリへのコミット、プッシュ、ブランチ作成、ファイル変更は行いません。
Issue / PR の作成・変更
Issue や Pull Request の作成、コメント、ラベル付け、クローズは行いません。
リポジトリ設定の変更
Webhook、ブランチ保護ルール、コラボレーター設定などの変更は行いません。
第三者へのデータ共有
取得したデータを外部サービスや第三者に提供・販売することはありません。
データの保存と利用
アクセストークンの管理
GitHub アクセストークンはサーバーサイドの暗号化された JWT に保存され、ブラウザには送信されません。セッションは 24 時間で有効期限が切れます。
分析データのキャッシュ
API レスポンスは一時的にキャッシュされ、パフォーマンス向上に使用されます。キャッシュは自動的に更新・期限切れとなります。
最小限のデータ保持
ユーザーアカウント情報(GitHub ID、ログイン名、メールアドレス)のみをデータベースに保存します。リポジトリのソースコード自体は保存しません。
プライベートリポジトリについて
プライベートリポジトリのデータも、パブリックリポジトリと同じポリシーで取り扱います。
- プライベートリポジトリのデータは、そのリポジトリにアクセス権を持つユーザーにのみ表示されます
- 分析データは他のユーザーと共有されません
- ソースコードの内容自体は取得・保存しません(メタデータのみ使用)
リポジトリの選択はリポジトリの選択と管理ページから変更できます。不要なリポジトリはいつでも分析対象から外せます。
GitHub API のレート制限
GitHub API にはリクエスト数の制限(レート制限)があります。 Code Tempo はこの制限を考慮して設計されています。
GraphQL API
1 時間あたり 5,000 ポイント。複雑なクエリほど多くのポイントを消費します。
REST API
1 時間あたり 5,000 リクエスト。デプロイ頻度やブランチ情報の取得に使用します。
レート制限に達した場合、一時的にデータの取得が遅延する可能性があります。 通常の利用では問題になることはほとんどありません。
連携の解除
Code Tempo との連携はいつでも解除できます。GitHub のSettings → Applications → Authorized OAuth Apps から Code Tempo を取り消すと、アクセストークンが無効化され、Code Tempo はデータを取得できなくなります。