GitHubの言語比率計算
知ってましたか?GitHubには、Repositoryごとに使用されている言語の比率を表示(計算)する素晴らしい機能があります。こんな具合に。
実はこの比率と言語は偽造できるんです。
事の発端
まず僕のツイートを見てください。ついでにフォローもしてください。
JSの占有率が嫌過ぎる pic.twitter.com/mD91kKtFQ9
— no monad (@jpnykw) April 20, 2020
これはRust(WebAssembly)とReact+TSで開発しているインタプリタのRepositoryなのですが、メインで使用していないJavaScriptの割合が「一番多い」という由々しき事態がありました。原因はWebAssemblyが吐き出してるjsがminifyされていない(出来ない)ことが原因でした。
これはかなり嫌です、JavaScriptがではなく(ほんまか?)メインで使用していな言語がラベル付されて主張されているのが個人的に嫌だったんです。
出会い
この事があまりに嫌だったのでもう一回、同じようなツイートをしてしまいました。
好みの問題ですが,RustとTS主体で書いてるのにWasmとReact使ってるから「JSが一番書いてあるで!笑笑笑」って表示されるの本当に嫌すぎる pic.twitter.com/rJkoy3zaWk
— no monad (@jpnykw) April 22, 2020
するとディレクトリ単位でignoreできる、というリプをもらいました。ちなみにgitignoreと勘違いしてますがgitattirbutesというファイルのことらしいです。
gitignoreではなくこのへんですねhttps://t.co/GEgIb7aPSr
— ぽんこつ (@ponkotuy) April 22, 2020
分からんそうならもうちょい詳しく解説しますが
linguist
ここに来てついにGitHubの言語比率計算はlinguistというツールが使われていることが判明しました。更には、configファイルを追加することで、あれこれ(例えば特定のディレクトリ以下のファイルを言語比率計算から除外するなど)出来ることが判明しました。
such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language.
あまりに感動したので、座右の銘にしました。WasmによってトランスパイルされたJSを除外することは、まさにピッタリの用途です。
解決
というわけでやっちゃいました。こんな簡単なことだったとは。これにて無事、でかいケツゾロリしました。めでたしめでたし。
ウオー、本当に消えた… pic.twitter.com/aUuBfBm9kO
— no monad (@jpnykw) April 22, 2020