Documentation
¶
Index ¶
- func Validate(secret, headerToken string) error
- type Client
- func (c *Client) CanUserWriteToRepo(user git.User) (bool, error)
- func (c *Client) DeleteWebhook(id int) error
- func (c *Client) GetUserInfo(userID string) (*git.User, error)
- func (c *Client) ListWebhook() ([]git.WebhookEntry, error)
- func (c *Client) ParseWebhook(header http.Header, jsonString []byte) (*git.Webhook, error)
- func (c *Client) RegisterComment(issueType git.IssueType, issueNo int, body string) error
- func (c *Client) RegisterWebhook(uri string) error
- func (c *Client) SetCommitStatus(integrationJob *cicdv1.IntegrationJob, context string, ...) error
- type CommentBody
- type CommitStatusBody
- type MergeRequestWebhook
- type NoteHook
- type Project
- type PushWebhook
- type RegistrationWebhookBody
- type User
- type UserInfo
- type UserPermission
- type WebhookEntry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client struct {
IntegrationConfig *cicdv1.IntegrationConfig
K8sClient client.Client
}
Client is a gitlab client struct
func (*Client) CanUserWriteToRepo ¶ added in v0.2.0
CanUserWriteToRepo decides if the user has write permission on the repo
func (*Client) DeleteWebhook ¶
DeleteWebhook deletes registered webhook
func (*Client) GetUserInfo ¶ added in v0.1.4
GetUserInfo gets a user's information
func (*Client) ListWebhook ¶
func (c *Client) ListWebhook() ([]git.WebhookEntry, error)
ListWebhook lists registered webhooks
func (*Client) ParseWebhook ¶
ParseWebhook parses a webhook body for gitlab
func (*Client) RegisterComment ¶ added in v0.2.0
RegisterComment registers comment to an issue
func (*Client) RegisterWebhook ¶
RegisterWebhook registers our webhook server to the remote git server
func (*Client) SetCommitStatus ¶
func (c *Client) SetCommitStatus(integrationJob *cicdv1.IntegrationJob, context string, state git.CommitStatusState, description, targetURL string) error
SetCommitStatus sets commit status for the specific commit
type CommentBody ¶ added in v0.2.0
type CommentBody struct {
Body string `json:"body"`
}
CommentBody is a body structure for creating new comment
type CommitStatusBody ¶
type CommitStatusBody struct {
State string `json:"state"`
TargetURL string `json:"target_url"`
Description string `json:"description"`
Context string `json:"context"`
}
CommitStatusBody is an API body for setting commits' status
type MergeRequestWebhook ¶
type MergeRequestWebhook struct {
Kind string `json:"kind"`
User User `json:"user"`
ObjectAttribute struct {
Title string `json:"title"`
ID int `json:"id"`
BaseRef string `json:"target_branch"`
HeadRef string `json:"source_branch"`
LastCommit struct {
Sha string `json:"id"`
} `json:"last_commit"`
State string `json:"state"`
Action string `json:"action"`
} `json:"object_attributes"`
Project Project `json:"project"`
}
MergeRequestWebhook is a gitlab-specific merge-request event webhook body
type NoteHook ¶ added in v0.2.0
type NoteHook struct {
User User `json:"user"`
Project Project `json:"project"`
ObjectAttributes struct {
Note string `json:"note"`
AuthorID int `json:"author_id"`
CreatedAt gitlabTime `json:"created_at"`
UpdatedAt gitlabTime `json:"updated_at"`
} `json:"object_attributes"`
MergeRequest struct {
ID int `json:"id"`
Title string `json:"title"`
State string `json:"state"`
URL string `json:"url"`
AuthorID int `json:"author_id"`
SourceBranch string `json:"source_branch"`
TargetBranch string `json:"target_branch"`
LastCommit struct {
ID string `json:"id"`
} `json:"last_commit"`
} `json:"merge_request"`
}
NoteHook is a gitlab-specific issue comment webhook body
type PushWebhook ¶
type PushWebhook struct {
Kind string `json:"object_kind"`
Ref string `json:"ref"`
Project Project `json:"project"`
UserName string `json:"user_name"`
UserID int `json:"user_id"`
Sha string `json:"after"`
}
PushWebhook is a gitlab-specific push event webhook body
type RegistrationWebhookBody ¶
type RegistrationWebhookBody struct {
EnableSSLVerification bool `json:"enable_ssl_verification"`
ConfidentialIssueEvents bool `json:"confidential_issues_events"`
ConfidentialNoteEvents bool `json:"confidential_note_events"`
DeploymentEvents bool `json:"deployment_events"`
ID string `json:"id"`
IssueEvents bool `json:"issues_events"`
JobEvents bool `json:"job_events"`
MergeRequestEvents bool `json:"merge_requests_events"`
NoteEvents bool `json:"note_events"`
PipeLineEvents bool `json:"pipeline_events"`
PushEvents bool `json:"push_events"`
TagPushEvents bool `json:"tag_push_events"`
WikiPageEvents bool `json:"wiki_page_events"`
URL string `json:"url"`
Token string `json:"token"`
}
RegistrationWebhookBody is a body for requesting webhook registration for the remote git server
type UserInfo ¶ added in v0.1.4
type UserInfo struct {
ID int `json:"id"`
UserName string `json:"username"`
PublicEmail string `json:"public_email"`
Email string `json:"email"`
}
UserInfo is a body of user get API
type UserPermission ¶ added in v0.2.0
type UserPermission struct {
AccessLevel int `json:"access_level"`
}
UserPermission is a user's permission on a repository
type WebhookEntry ¶
WebhookEntry is a body of list of registered webhooks