このプロジェクトについて
RepositoryScannerは、GitHub APIを使用して公開およびプライベートリポジトリから言語統計を読み取り、上位言語のSVGカードをエクスポートするGitHubアカウント分析ツールです。READMEによると、GitHubの言語APIは言語ごとのコードバイト数を返しており、カードのパーセンテージは生の行数ではなく、これらのバイトベースのサイズに基づいています。生成されるカードには、総コードサイズによる上位6言語と、総貢献数、現在のストリーク、最長ストリークという貢献統計が表示されます。Kanagawaの紙とインクにインスパイアされたテーマを採用しており、GitHub Actionsを通じて毎週自動的に更新するように設計されています。
推奨されるセットアップは、リポジトリをフォークし、repoおよびread:userスコープ(公開リポジトリのみで良い場合はpublic_repo)を持つGitHub個人アクセストークンを作成し、GH_TOKEN、GITHUB_USERNAME、およびオプションでEXCLUDED_LANGSのリポジトリシークレットを追加した後、「Update Language Stats」ワークフローを手動で一度実行することです。ワークフローファイルは .github/workflows/update-chart.yaml にあり、毎週日曜日の00:00 UTCに実行され、更新された assets/languages.svg をmainブランチにコミットするように設定されています。また、オンデマンドでの実行もサポートしています。スケジュールは、ワークフローファイルのcron行を編集することで変更可能です。結果として得られるSVGは、raw.githubusercontent.comのURLを使用してプロフィールREADMEに埋め込むことができ、ブラウザのキャッシュを回避するために ?v=1 などのクエリパラメータを任意で追加できます。
ローカル開発については、READMEでPython 3.10以上(3.11を推奨)が推奨されています。コア依存関係は requests と python-dotenv です。設定は .env ファイルまたはシェル環境変数を通じて提供できます。リポジトリルートから python scripts/fetch_languages.py を実行すると、assets/languages.svg が生成されます。Kanagawaのカラーパレットと言語ごとの色は scripts/colors.py で定義されており、SVGのレイアウト詳細は scripts/fetch_languages.py 内で処理されます。また、READMEには GITHUB_USERNAME がメインの変数である一方、後方互換性のために USERNAME もサポートされていることが記されています。GH_TOKEN が設定されていない場合は、公開リポジトリのみが分析され、GitHubの認証なしのレート制限が適用されます。
セキュリティとプライバシーに関する注意点として、本ツールはGitHub APIを使用してリポジトリリストと言語統計を読み取りますが、実際のコード内容は読み取らないことが述べられています。トークンは、ローカル開発ではローカルの .env または環境変数から、ActionsではGitHub Secretsから読み取られ、決してコミットしてはいけません。トラブルシューティングセクションでは、401 UnauthorizedやAPIエラー、フィルタリングされたフォークによる言語データの欠落、除外言語、トークンアクセス、レート制限、およびActionsが無効である、ワークフローパスが間違っている、YAMLが無効である、または変更が期待されるブランチにないためにワークフローが実行されないケースについて説明しています。本プロジェクトはMITライセンスであり、anuraghazra/github-readme-statsに触発され、Kanagawaカラーテーマはrebelot/kanagawa-paper.nvimの影響を受けています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.