GitHub で新規リポジトリを作ろうとすると、リポジトリ名をサジェストされる。
docker contianer の命名規則を思い出した。
せっかくなのでどんな名前が出てくるのか集めてみよう。HTML に含まれているので、スクレイピングの出番。
while :; do curl -H 'Cookie: user_session=xxxx' 'https://github.com/new' | ggrep -oP '(?<=<strong class="reponame-suggestion js-reponame-suggestion">).+(?=</strong>)' sleep 10 done
grep -oP
はワンライナーの頻出テクニック *1。Mac の grep は -P
に対応していないので brew install grep
して使う。
これを動かすと以下のような名前が取れる。
didactic-engine expert-potato solid-giggle furry-succotash supreme-doodle psychic-guacamole crispy-doodle probable-fiesta sturdy-journey stunning-octo-journey glowing-journey fuzzy-barnacle laughing-octo-funicular upgraded-parakeet jubilant-engine psychic-goggles sturdy-octo-couscous crispy-couscous psychic-potato congenial-sniffle
xxx(-yyy)*-zzz
で構成されそう。
xxx の部分は super
, upgraded
, solid
, shiny
, fuzzy
といった形容詞が並ぶ。
(-yyy)* の部分はほとんど octo
。時々 palm
, rotary
, computing
, duper
, free
。稀に super-octo-palm-tree
のように 2 個出てくる。
zzz の部分は tree
, phone
, umbrella
, machine
, enigma
等、名詞っぽい。 特に何かに関連する名詞かどうかは分かんなかった。
repo 名のサジェストして何か意味あるのかな (repo 名に悩んでサジェストに頼る人どれぐらい存在するの?) って思ったけど 100 repo ぐらいあるわ。 https://t.co/0PnC5W4syy
— Takafumi ONAKA (@onk) December 28, 2020
意外と使われている。
ところで何のためにリポジトリを作ろうと思ってたんだっけ……。
300 件ほど集めたのでもうちょっと取れたデータ眺めてみたけど、bug-free
は xxx-yyy ではなくこれで xxx のようだ。まぁ bug だけで接頭語にするとバグ量産してしまいそうだしね。また computing-machine
や palm-tree
、rotary-phone
もこの組み合わせしか無いので yyy-zzz
ではなく zzz 側っぽい。
すると yyy で octo
以外はあと duper
だけなんだけど、これも super
と super-duper
がそれぞれ xxx にありそうだ。
というわけで xxx(-octo)?-zzz
という生成ルールなのではないか。
いやそれが分かったから何だって話だけど。