Documentation
¶
Index ¶
- Constants
- type FileCommit
- type FileMeta
- type ProjectRole
- type Provider
- func (provider *Provider) APIURL(instanceURL string) string
- func (provider *Provider) CreateFile(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, ...) error
- func (provider *Provider) CreateWebhook(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, ...) (string, error)
- func (provider *Provider) DeleteWebhook(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, ...) error
- func (provider *Provider) FetchRepositoryActiveMemberList(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, ...) ([]*vcs.RepositoryMember, error)
- func (provider *Provider) FetchUserInfo(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, ...) (*vcs.UserInfo, error)
- func (provider *Provider) OverwriteFile(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, ...) error
- func (provider *Provider) PatchWebhook(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, ...) error
- func (provider *Provider) ReadFile(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, ...) (string, error)
- func (provider *Provider) ReadFileMeta(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, ...) (*vcs.FileMeta, error)
- func (provider *Provider) TryLogin(ctx context.Context, oauthCtx common.OauthContext, instanceURL string) (*vcs.UserInfo, error)
- type WebhookCommit
- type WebhookCommitAuthor
- type WebhookInfo
- type WebhookPost
- type WebhookProject
- type WebhookPushEvent
- type WebhookPut
- type WebhookType
Constants ¶
const (
// SecretTokenLength is the length of secret token.
SecretTokenLength = 16
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FileCommit ¶
type FileCommit struct { Branch string `json:"branch"` Content string `json:"content"` CommitMessage string `json:"commit_message"` LastCommitID string `json:"last_commit_id,omitempty"` }
FileCommit is the API message for file commit.
type FileMeta ¶
type FileMeta struct {
LastCommitID string `json:"last_commit_id"`
}
FileMeta is the API message for file metadata.
type ProjectRole ¶
type ProjectRole string
ProjectRole is the role of the project member
const ( ProjectRoleOwner ProjectRole = "Owner" ProjectRoleMaintainer ProjectRole = "Maintainer" ProjectRoleDeveloper ProjectRole = "Developer" ProjectRoleReporter ProjectRole = "Reporter" ProjectRoleGuest ProjectRole = "Guest" ProjectRoleMinimalAccess ProjectRole = "MinimalAccess" ProjectRoleNoAccess ProjectRole = "NoAccess" )
Gitlab Role type
func (ProjectRole) String ¶
func (e ProjectRole) String() string
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider is the GitLab self host provider.
func (*Provider) CreateFile ¶
func (provider *Provider) CreateFile(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, repositoryID string, filePath string, fileCommitCreate vcs.FileCommitCreate) error
CreateFile creates a file.
func (*Provider) CreateWebhook ¶
func (provider *Provider) CreateWebhook(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, repositoryID string, payload []byte) (string, error)
CreateWebhook creates a webhook in a GitLab project.
func (*Provider) DeleteWebhook ¶
func (provider *Provider) DeleteWebhook(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, repositoryID string, webhookID string) error
DeleteWebhook deletes a webhook in a GitLab project.
func (*Provider) FetchRepositoryActiveMemberList ¶
func (provider *Provider) FetchRepositoryActiveMemberList(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, repositoryID string) ([]*vcs.RepositoryMember, error)
FetchRepositoryActiveMemberList fetch all active members of a repository
func (*Provider) FetchUserInfo ¶
func (provider *Provider) FetchUserInfo(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, userID int) (*vcs.UserInfo, error)
FetchUserInfo will fetch user info from GitLab. If userID is set to nil, the user info of the current oauth would be returned.
func (*Provider) OverwriteFile ¶
func (provider *Provider) OverwriteFile(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, repositoryID string, filePath string, fileCommitCreate vcs.FileCommitCreate) error
OverwriteFile overwrite the content of a file.
func (*Provider) PatchWebhook ¶
func (provider *Provider) PatchWebhook(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, repositoryID string, webhookID string, payload []byte) error
PatchWebhook patches a webhook in a GitLab project.
func (*Provider) ReadFile ¶
func (provider *Provider) ReadFile(ctx context.Context, oauthCtx common.OauthContext, instanceURL string, repositoryID string, filePath string, commitID string) (string, error)
ReadFile reads the content of a file.
type WebhookCommit ¶
type WebhookCommit struct { ID string `json:"id"` Title string `json:"title"` Message string `json:"message"` Timestamp string `json:"timestamp"` URL string `json:"url"` Author WebhookCommitAuthor `json:"author"` AddedList []string `json:"added"` }
WebhookCommit is the API message for webhook commit.
type WebhookCommitAuthor ¶
type WebhookCommitAuthor struct {
Name string `json:"name"`
}
WebhookCommitAuthor is the API message for webhook commit author.
type WebhookInfo ¶
type WebhookInfo struct {
ID int `json:"id"`
}
WebhookInfo is the API message for webhook info.
type WebhookPost ¶
type WebhookPost struct { URL string `json:"url"` SecretToken string `json:"token"` // This is set to true PushEvents bool `json:"push_events"` // For now, there is no native dry run DDL support in mysql/postgres. One may wonder if we could wrap the DDL // in a transaction and just not commit at the end, unfortunately there are side effects which are hard to control. // See https://www.postgresql.org/message-id/CAMsr%2BYGiYQ7PYvYR2Voio37YdCpp79j5S%2BcmgVJMOLM2LnRQcA%40mail.gmail.com // So we can't possibly display useful info when reviewing a MR, thus we don't enable this event. // Saying that, delivering a souding dry run solution would be great and hopefully we can achieve that one day. // MergeRequestsEvents bool `json:"merge_requests_events"` PushEventsBranchFilter string `json:"push_events_branch_filter"` // TODO(tianzhou): This is set to false, be lax to not enable_ssl_verification EnableSSLVerification bool `json:"enable_ssl_verification"` }
WebhookPost is the API message for webhook POST.
type WebhookProject ¶
type WebhookProject struct { ID int `json:"id"` WebURL string `json:"web_url"` FullPath string `json:"path_with_namespace"` }
WebhookProject is the API message for webhook project.
type WebhookPushEvent ¶
type WebhookPushEvent struct { ObjectKind WebhookType `json:"object_kind"` Ref string `json:"ref"` AuthorName string `json:"user_name"` Project WebhookProject `json:"project"` CommitList []WebhookCommit `json:"commits"` }
WebhookPushEvent is the API message for webhook push event.
type WebhookPut ¶
type WebhookPut struct { URL string `json:"url"` PushEventsBranchFilter string `json:"push_events_branch_filter"` }
WebhookPut is the API message for webhook PUT.
type WebhookType ¶
type WebhookType string
WebhookType is the gitlab webhook type.
const ( // WebhookPush is the webhook type for push. WebhookPush WebhookType = "push" )
func (WebhookType) String ¶
func (e WebhookType) String() string