Documentation
¶
Overview ¶
Package cmd は ghs の Cobra コマンド定義を集約します。
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Version = "dev"
Version はビルド時に -ldflags で書き換えられる想定のバージョン文字列です。
Functions ¶
Types ¶
type App ¶
type App struct {
Cfg *config.Config
ResolveToken TokenResolver
NewLister ListerFactory
Prompter ui.Prompter
Clone CloneFunc
Stdout io.Writer
// CLI フラグ由来の挙動。
UseSSH bool
BaseDirOver string
}
App はメインフローの依存をまとめた DI コンテナです。 テストでは各フィールドを fake に差し替えることでフロー全体を検証できます。
func NewDefaultApp ¶
NewDefaultApp は本番用デフォルトの依存をセットした App を返します。
type CloneFunc ¶
type CloneFunc func(dest cloner.Destination, opts cloner.Options) error
CloneFunc はクローン処理の差し替えポイントです。
type ListerFactory ¶
type ListerFactory func(ctx context.Context, token string) RepoLister
ListerFactory はトークンを受け取って RepoLister を生成する関数の型です。
type RepoLister ¶
type RepoLister interface {
ListOwners(ctx context.Context) ([]string, error)
ListRepositories(ctx context.Context, owner string) ([]ghapi.Repository, error)
}
RepoLister は ghs のメインフローが GitHub から必要とする操作の最小限の契約です。 consumer 側 (このパッケージ) でインターフェースを定義することで、 テストでは fake、本番では *ghapi.Client に差し替えられます。
Click to show internal directories.
Click to hide internal directories.