LoginSignup
0
0

More than 3 years have passed since last update.

Chromiumの全バージョン一覧が欲しい

Posted at

忙しい人へ

git -c 'versionsort.suffix=-' ls-remote --tags --sort='v:refname' https://chromium.googlesource.com/chromium/src

これでタグとコミットハッシュの両方が出るので、適切にこねくり回せばバージョン一覧が出る。

背景

youtube-dlには、UA偽装のためにChromeのバージョン一覧を持っています。ですが、見て頂いても分かる通り、バージョンが68〜76?と非常に古いのです。1
Windows版のChromeであれば自動更新機能があり、この機能によって古いバージョンのChromeは比較的早く置き換えられていきます。それを考えれば、今更60番台のChromeのUAが来たら即ブロックされかねません。こういったこともあり、バージョン一覧を新しいものに交換しようと考えました。

やったこと

最初、Chromiumのリポジトリをcloneしようとしたのですが、リポジトリ全部cloneすると23 GBにもなります。大きすぎます。2
cloneすればgit tag -lで全部列挙できますが、大きすぎるので諦めました。

結論

少し調べていると、cloneしないでtag一覧を取得する方法がありました。
こんなコマンドになります。

git -c 'versionsort.suffix=-' ls-remote --tags --sort='v:refname' https://chromium.googlesource.com/chromium/src

というかこれってgit ls-remoteで出来たんですね...

出力の一例は次のようになります。

$ git -c 'versionsort.suffix=-' ls-remote --tags --sort='v:refname' https://chromium.googlesource.com/chromium/src
05197078e4761dde56f8dc8884050bf862344425        refs/tags/3.0.195.25
75894f416826f37475ca17e92f5853b0f84ac3ee        refs/tags/3.0.195.27

各行がtag一個を指しており、コミットハッシュ\tタグ参照名の形式で表示されます。3
これを適切に解析すれば、23 GBを消費すること無くtag一覧を取得できます。


  1. 確かにバージョンは古いですが、これらのChromeが必要という訳ではありません。よって、これを原因として何らかの脆弱性に直結するようなことはありません。 

  2. GitHub Actionsで自動化したい場合、GitHub-hosted runnerでは入り切りません。 

  3. このため、出力をそのままTSVとして使うことも可能です。知らんけど。 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0