Documentation
¶
Overview ¶
Package cloud provides types for use with cloud providers.
Index ¶
- type Client
- type ClientOptions
- type Cloud
- type CloudOAuthConfig
- type Config
- type CreateWebhookOptions
- type Credentials
- type DeleteWebhookOptions
- type EventHandler
- type GetRepoTarballOptions
- type GetWebhookOptions
- type HandleEventOptions
- type ListRepositoriesOptions
- type ListTagsOptions
- type OAuthConfigs
- type Repo
- type Service
- type SetStatusOptions
- type Team
- type UpdateWebhookOptions
- type User
- type VCSEvent
- type VCSEventType
- type VCSPullEvent
- type VCSPullEventAction
- type VCSPushEvent
- type VCSStatus
- type VCSTagEvent
- type VCSTagEventAction
- type Webhook
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
GetUser(ctx context.Context) (*User, error)
// ListRepositories lists repositories accessible to the current user.
ListRepositories(ctx context.Context, opts ListRepositoriesOptions) ([]Repo, error)
GetRepository(ctx context.Context, identifier string) (Repo, error)
// GetRepoTarball retrieves a .tar.gz tarball of a git repository
GetRepoTarball(ctx context.Context, opts GetRepoTarballOptions) ([]byte, error)
// CreateWebhook creates a webhook on the cloud provider, returning the
// provider's unique ID for the webhook.
CreateWebhook(ctx context.Context, opts CreateWebhookOptions) (string, error)
UpdateWebhook(ctx context.Context, opts UpdateWebhookOptions) error
GetWebhook(ctx context.Context, opts GetWebhookOptions) (Webhook, error)
DeleteWebhook(ctx context.Context, opts DeleteWebhookOptions) error
SetStatus(ctx context.Context, opts SetStatusOptions) error
// ListTags lists git tags on a repository. Each tag should be prefixed with
// 'tags/'.
ListTags(ctx context.Context, opts ListTagsOptions) ([]string, error)
}
type ClientOptions ¶
type ClientOptions struct {
Hostname string
SkipTLSVerification bool
Credentials
}
ClientOptions are options for constructing a cloud client
type Cloud ¶
type Cloud interface {
NewClient(context.Context, ClientOptions) (Client, error)
EventHandler
}
Cloud is an external provider of various cloud services e.g. identity provider, VCS repositories etc.
type CloudOAuthConfig ¶
CloudOAuthConfig is the configuration for a cloud provider and its OAuth configuration.
type Config ¶
Config is configuration for a cloud provider
func (*Config) HTTPClient ¶
type CreateWebhookOptions ¶
type CreateWebhookOptions struct {
Identifier string // repo identifier, <owner>/<repo>
Secret string // secret string for generating signature
Endpoint string // otf's external-facing host[:port]
Events []VCSEventType
}
type Credentials ¶
type Credentials struct {
// tokens are mutually-exclusive - at least one must be specified
OAuthToken *oauth2.Token
PersonalToken *string
}
Credentials are credentials for a cloud client
type DeleteWebhookOptions ¶
type DeleteWebhookOptions struct {
Identifier string // Repository identifier, <owner>/<repo>
ID string // vcs' webhook ID
}
DeleteWebhookOptions are options for deleting a webhook.
type EventHandler ¶
type EventHandler interface {
// HandleEvent extracts a cloud-specific event from the http request, converting it into a
// VCS event. Returns nil if the event is to be ignored.
HandleEvent(w http.ResponseWriter, r *http.Request, opts HandleEventOptions) VCSEvent
}
EventHandler handles incoming events
type GetRepoTarballOptions ¶
type GetWebhookOptions ¶
type GetWebhookOptions struct {
Identifier string // Repository identifier, <owner>/<repo>
ID string // vcs' webhook ID
}
GetWebhookOptions are options for retrieving a webhook.
type HandleEventOptions ¶
type ListRepositoriesOptions ¶
type ListRepositoriesOptions struct {
PageSize int
}
type ListTagsOptions ¶
type ListTagsOptions struct {
Identifier string // repo identifier, <owner>/<repo>
Prefix string // only list tags that start with this string
}
ListTagsOptions are options for listing tags on a vcs repository
type OAuthConfigs ¶
type OAuthConfigs []*CloudOAuthConfig
func (OAuthConfigs) Configs ¶
func (cfgs OAuthConfigs) Configs() []Config
Configs returns the list of cloud configs from a list of cloud oauth configs
type Repo ¶
type Repo struct {
Identifier string `schema:"identifier,required"` // <repo_owner>/<repo_name>
Branch string `schema:"branch,required"` // default branch
}
Repo is a VCS repository belonging to a cloud
func NewTestModuleRepo ¶
func NewTestRepo ¶
func NewTestRepo() Repo
type SetStatusOptions ¶
type SetStatusOptions struct {
Workspace string
Identifier string // <owner>/<repo>
Ref string // git ref
Status VCSStatus
TargetURL string
Description string
}
SetStatusOptions are options for setting a status on a VCS repo
type UpdateWebhookOptions ¶
type UpdateWebhookOptions struct {
ID string // vcs' webhook ID
CreateWebhookOptions
}
type User ¶
type User struct {
Name string
Organizations []string // org memberships
Teams []Team // team memberships
}
User is a user account on a cloud provider.
type VCSEvent ¶
type VCSEvent any
VCSEvent is a VCS event received from a cloud, e.g. a commit event from github
type VCSEventType ¶
type VCSEventType int
const ( VCSPullEventType VCSEventType = iota VCSPushEventType )
type VCSPullEvent ¶
type VCSPullEvent struct {
WebhookID uuid.UUID
Action VCSPullEventAction
Identifier string // repo identifier, <owner>/<repo>
CommitSHA string
Branch string // head branch
}
VCSPullEvent occurs when an action is carried out on a pull request
type VCSPullEventAction ¶
type VCSPullEventAction string
const ( VCSPullEventOpened VCSPullEventAction = "opened" VCSPullEventClosed VCSPullEventAction = "closed" // closed without merging VCSPullEventMerged VCSPullEventAction = "merged" VCSPullEventUpdated VCSPullEventAction = "updated" )
type VCSPushEvent ¶
type VCSPushEvent struct {
WebhookID uuid.UUID
Identifier string // repo identifier, <owner>/<repo>
CommitSHA string
Branch string
}
VCSPushEvent occurs when a commit is pushed to a repo.
type VCSTagEvent ¶
type VCSTagEvent struct {
WebhookID uuid.UUID
Identifier string // repo identifier, <owner>/<repo>
CommitSHA string
Tag string
Action VCSTagEventAction
}
VCSTagEvent occurs when a tag is created or deleted on a repo.
type VCSTagEventAction ¶
type VCSTagEventAction string
const ( VCSTagEventCreatedAction VCSTagEventAction = "created" VCSTagEventDeletedAction VCSTagEventAction = "deleted" )