GitHubプロファイルをFIFA Ultimate Teamのサッカーカードに変身させる方法
ほとんどのGitHubプロファイルは同じに見える。味気ない緑のコミットグリッド、少しばかりの標準的なプログラミング言語バッジ、2000年代中期そのままのビューカウンター。数日前、GitFutプロジェクトを見つけました。この問題を予想外の方法解决的するプロジェクトです。開発者のアクティビティを、99までのレーティング、フィールド上のポジション、トロフィーのセットを備えた本格的なFIFA Ultimate Team形式のプレイヤーカードに変えます。
プロジェクト作者のYounesfdjは、緻密なスポーツアナリストのようにこの問題にアプローチしました。このサービスは数字を捏造することも、アンケートへの回答を求めることもありません。GitHubのGraphQL APIにリクエストを送り、アカウント履歴をダウンロードして、指標を6つのサッカー属性にマッピングします。
6つの属性とポジション計算
通常のコード行数ではなく、サービスはオープンソースや作業リポジトリへの実際のコントリビューションを評価します。各サッカー属性は特定のアクションに関連付けられています:
- PAC(スピード)は、直近の暦年におけるコミット数に基づいて計算されます。より定期的にコードをプッシュするほど、スピードは高くなります。
- SHO(シュート)は、リポジトリが獲得したスター数に依存します。
- PAS(パス)は、チームワークを反映し、送信したプルリクエストとフォロワー数を組み合わせます。
- DRI(ドリブル)は、ポートフォリオ内のプログラミング言語の多様性を示します。
- DEF(ディフェンス)は、実施したコードレビュー数とクローズしたイシュー数に基づきます。
- PHY(フィジカル)は、アカウントの存続期間全体における総コントリビューション量を評価します。
基本属性は88という上限があります。90以上のカテゴリに食い込み、Icon статусになるには、成功した1年では不十分です。長年にわたる一貫した作業とコミュニティへの実際のインパクトが必要です。
ポジションの決定は興味深い方法で行われます。アルゴリズムはステータスバランスを見ます:スターと人気リリースに集中している開発者は攻撃側(STまたはRW)に送られ、イシューをクローズしてレビューを行うのが好きな人はディープライイングプレイメーカーになります。
コミットスパムからの保護
любойGitHubレーティングの主な問題は、スパムボットと自動コミットです。GitFutは数学的にこれを解決しました。
年間アクティビティはすべて対数公式で加重されます:
yearScore = 4·log(commits) + 3·log(PRs) + 3·log(reviews) + 2·log(issues) + 2·log(private)
対数はすぐに飽和します。スクリプトが空のリポジトリに20,000のコミットを生成しても、17.2ポイントしか寄与しません。一方、1年間で800のコミット、80のPR、80のレビュー、40のイシューを持つ実際の開発者は26ポイントを得ます。多様なアクティビティは、馬鹿げたカウンター詰めよりもアルゴリズムによってずっと高く評価されます。
トロフィールームとゴールデンプレス
カードが80以上のオーバオール評価を超えている場合、プロファイルは受賞資格を失います:
- Ballon d'Or。キャリア平均を大幅に上回った暦年に授与されます。少なくとも2,000のコントリビューションを蓄積し、中央値より1.2倍高い結果を示す必要があります。
- WC Golden Ball。実際のワールドカップ大会(2010年から2026年)中の生産性急増に対して与えられます。古い大会ほど要件は控えめです。2010年ではコミットを持っているだけでアカウントが目立っていたためです。
- Golden Boot。現在のフォームのための動的トロフィーです。Shooting評価が80以上の攻撃的ポジションに保持されます。最新のレポジトリでのスターが落ちると、ブーツは別の人に渡されます。
- World Cup Trophy。プロフィールにSpainが記載されているすべての開発者向けの特別なカップです(サービスの設定ではWC-2026の勝者)。
プロファイルページのトロフィーはプリベイクドスプライト(スクリプト bake-award-sprites.ts)を使用して表示されるため、ブラウザは重い3Dエンジンを読み込む必要はありません。
カードを表のプロファイルに埋め込む方法
カードはオンザフライで生成され、静的画像として配信されます。プロファイルのMarkdownに1行追加するだけです:
[](https://gitfut.com/YOUR_USERNAME)
画像はRedisでキャッシュされ、コードをプッシュしてレビューを収集すると更新されます。カードの国旗の変更を強制したい場合は、URLにパラメータを追加できます: ?country=KZ または ?country=RS。
プロジェクトはコンパクトなスタックを使用しています:Next.js、TypeScript、スタイリング用のTailwind、GraphQL API応答のキャッシュ用のRedis。
このプロジェクトは誰のためか
GitFutは厳格なエンタープライズ面接に合格するのには役立たないかもしれませんが、つまらないREADMEウィジェットの優れた代替品です。プロジェクトは魂込めて作られており、数式はチームワークを正直に考慮しており、受賞システムは定期的にプルリクエストをクローズする楽しみに加わります。ウェブサイトにアクセスしてユーザー名を入力し、アルゴリズムがどのポジションを割り当てるか確認してください。
関連プロジェクト


