Open2

aqua で任意の endpoint から version list を取得する

Shunsuke SuzukiShunsuke Suzuki

https://github.com/aquaproj/aqua/issues/682

https://github.com/aquaproj/aqua/pull/3269

  • バージョンリストを取得する
    • endpoint によってはバージョンだけでなく release note なども取得できる
  • HTTP
    • Method: とりあえず GET のみ
    • 認証が必要なエンドポイントはサポートしない
    • query: 一旦サポートしない
    • body: GET なので考えなくて良い
    • header: 一旦サポートしない
  • 最新バージョンを取得
    • バージョンリストから最新バージョンを取得でも良いが、最新バージョンを取得する endpoint がある場合もある
  • どうやって response body をパースするか
    • 行指向: 行ごとにパースする (Go Module Proxy なんかはそう)
    • version だけ返す場合と、 release note などのメタデータを含む object を返す場合がある
    • JSON
      • JSONPath
        • シンプル
        • release note なども返したい場合、複数の JSONPath を記述する感じ
      • Expr
        • 表現力が少々弱い(といっても JSONPath よりは上?)ので難しい場合もあるかも
      • Jsonnet
        • 自由度が高いが複雑
Shunsuke SuzukiShunsuke Suzuki

結局この機能を必要とするツールが殆ど無い気がする
https://github.com/aquaproj/aqua/issues/682#issuecomment-2487059483

ないのに実装しても仕方がない。
一方で Go Module Proxy については数が少ないものの一応あるのでサポートしても良いかもしれない。
その場合、無理に汎用的な API にしなくても現状の go_version_path みたいな悪く言えば場当たり的なもの(けどシンプルで良い気もする) で十分では。

https://github.com/aquaproj/aqua/pull/3269