Go 言語(以下 golang)の最新リリース・バージョンを取得するエンドポイントが知りたい。
golang 本体の更新をパッケージマネージャでなく俺様スクリプトで行っているため、バージョン情報を cURL などで取得できるエンドポイントが欲しかったのです。
ぶっちゃけ https://go.dev/dl/ を覗きに行けばいいのですが、スクレイピングするのも面倒です。
golang 最新リリースバージョン 確認 curl
でググっても、スクレイピングしろだの、https://go.dev/VERSION?m=text
を使った方法だの、ピンポイントでヒットしなかったので、自分のググラビリティとして。
TL; DR (今北産業)
-
Go の最新リリース・バージョン確認用 URL エンドポイントが提供されている
-
https://go.dev/dl/?mode=json
-
-
レスポンスは JSON なので
jq
コマンドなどで抜き出す必要がある最初のstableバージョンを抜き出すLATEST=$(curl -sSL https://go.dev/dl/?mode=json | jq -r ['.[] | select(.stable == true)'][0].version)
実行例$ curl -sSL https://go.dev/dl/?mode=json | jq -r ['.[] | select(.stable == true)'][0].version go1.22.4
-
オンラインで動作をみる @ paiza.IO
-
オンラインで動作をみる @ paiza.IO
-
よく見かける
https://go.dev/VERSION?m=text
は、https://go.dev/
のバックエンドで動いている golang のバージョン1で、最新と異なることがある
ちなみに、最新ではないものの go.dev
のドキュメントで生成されるサンプルの動作と合わせたい場合は、https://go.dev/VERSION?m=text
の最初の行だけを取り出すと、バージョンを合わせられます。
CURRENT=$(curl -s https://go.dev/VERSION?m=text | head -n 1)
$ curl -s https://go.dev/VERSION?m=text | head -n 1
go1.22.1
参考文献
- URL for latest stable Go release @ StackOverflow
- Hitting curl https://go.dev/VERSION?m=text returns a go version package which is not available to download | Issue #51135 | Golang @ GitHub