2024年5月24日金曜日

go-github で GitHub の最新リリースタグを取得する

よくあるやつ。

Google が Go 用の GitHub クライアントを公開しているのでそれを利用する

プロジェクト作成

go mod init で作成。

go mod init github.com/mikoto2000/TIL/golang/github/go-github/firststep

ライブラリ追加

go get で追加。

go get github.com/google/go-github/v62

実装

コマンドライン引数にユーザー名とリポジトリを受け取り、そのリポジトリの latest タグを返却する。

■ main.go

package main

import (
    "context"
    "fmt"
    "log"
    "os"

    "github.com/google/go-github/v62/github"
)

/**
 * コマンドライン引数のひとつ目にユーザー名、ふたつ目にリポジトリ名を渡す。
 *
 * latest タグの取得に成功した場合、タグ名を標準出力へ出力する。
 * latest タグの取得に失敗した場合、エラーを出力し、終了コード 1 で終了する。
 */
func main() {
    ctx := context.Background()
    client := github.NewClient(nil)

    owner := os.Args[1]
    repo := os.Args[2]

    release, _, err := client.Repositories.GetLatestRelease(ctx, owner, repo)
    if err != nil {
        log.Fatalf("Error getting latest release: %v", err)
    }

    fmt.Printf("%s\n", release.GetTagName())
}

動作確認

ぱっと見取得できているように見える。

$ ./firststep mikoto2000 devcontainer.vim
v0.6.1
$ ./firststep mikoto2000 devcontainer.vima
2024/05/24 03:13:10 Error getting latest release: GET https://api.github.com/repos/mikoto2000/devcontainer.vima/releases/latest: 404 Not Found []

以上。

参考資料

0 件のコメント:

コメントを投稿