Documentation
¶
Overview ¶
Package vcsprovider is responsible for VCS providers
Index ¶
Constants ¶
View Source
const ( GithubAPIURL = "https://api.github.com" GithubHTTPURL = "https://github.com" )
Variables ¶
This section is empty.
Functions ¶
func NewService ¶
func NewService(opts Options) *service
Types ¶
type CreateOptions ¶
type Service ¶
type Service interface {
CreateVCSProvider(ctx context.Context, opts CreateOptions) (*VCSProvider, error)
UpdateVCSProvider(ctx context.Context, id string, opts UpdateOptions) (*VCSProvider, error)
GetVCSProvider(ctx context.Context, id string) (*VCSProvider, error)
ListVCSProviders(ctx context.Context, organization string) ([]*VCSProvider, error)
ListAllVCSProviders(ctx context.Context) ([]*VCSProvider, error)
// ListVCSProvidersByGithubAppInstall lists VCS providers using the
// credentials of a particular github app installation.
ListVCSProvidersByGithubAppInstall(ctx context.Context, installID int64) ([]*VCSProvider, error)
DeleteVCSProvider(ctx context.Context, id string) (*VCSProvider, error)
// GetVCSClient combines retrieving a vcs provider and construct a cloud
// client from that provider.
//
// TODO: rename vcs provider to vcs client; the central purpose of the vcs
// provider is, after all, to construct a vcs client.
GetVCSClient(ctx context.Context, providerID string) (vcs.Client, error)
BeforeDeleteVCSProvider(l hooks.Listener[*VCSProvider])
}
type UpdateOptions ¶ added in v0.1.11
type VCSProvider ¶
type VCSProvider struct {
ID string
Name string
CreatedAt time.Time
Organization string // name of OTF organization
Hostname string // hostname of github/gitlab etc
Kind vcs.Kind // github/gitlab etc. Not necessary if GithubApp is non-nil.
Token *string // personal access token.
GithubApp *github.InstallCredentials // mutually exclusive with Token.
// contains filtered or unexported fields
}
VCSProvider provides authenticated access to a VCS.
func (*VCSProvider) LogValue ¶
func (t *VCSProvider) LogValue() slog.Value
LogValue implements slog.LogValuer.
func (*VCSProvider) String ¶
func (t *VCSProvider) String() string
String provides a human meaningful description of the vcs provider, using the name if set; otherwise a name is constructed using both the underlying cloud kind and the auth kind.
func (*VCSProvider) Update ¶ added in v0.1.11
func (t *VCSProvider) Update(opts UpdateOptions) error
type VCSProviderService ¶
type VCSProviderService Service
Alias services so they don't conflict when nested together in struct
Click to show internal directories.
Click to hide internal directories.