- 書いたときのバージョン
go-gh: v1.2.1
v2のリリースもされているがまだ移行していない…
自分で作ったGitHubCLI拡張の中でgo-gh
というライブラリのCurrentRepository()
を使っている
この関数は今いるディレクトリのリポジトリの情報を取得するもの
拡張の機能上必要だったので使っているが、環境によって値が変わるのでテストを書き始めるとこの辺をうまくしないと環境依存でテストが失敗してしまう
どうしようかと調べたらすぐ出てきた
gh package - github.com/cli/go-gh - Go Packages
CurrentRepository()は、環境変数GH_REPOの値を尊重し、フォールバックとしてgitリモート設定から読み込む。
いつもはフォールバックとしてのGitリモート設定から読んでいたわけだ
環境変数でGH_REPO
を指定すれば指定した値に差し替えられる
swfz/gh-annotations
のディレクトリで適当なファイルを作って試してみた
- repo.go
package main
import (
"fmt"
"github.com/cli/go-gh"
)
func main() {
repo, _ := gh.CurrentRepository()
fmt.Printf("%#v\n", repo)
}
- GH_REPOなし
$ go run repo.go
repository.repo{host:"github.com", owner:"swfz", name:"gh-annotations"}
- GH_REPOあり
$ GH_REPO=cli/cli go run repo.go
repository.repo{host:"github.com", owner:"cli", name:"cli"}
テスト書くならモックしないとなーとは思っていたものの先延ばしにしていたが思ったより簡単だった