Documentation
¶
Index ¶
- func HashPayload(secret string, payloadBody []byte) string
- func IsValidPayload(secret, headerHash string, payload []byte) bool
- func Validate(secret, headerHash string, payload []byte) error
- type Client
- func (c *Client) CanUserWriteToRepo(user git.User) (bool, error)
- func (c *Client) DeleteWebhook(id int) error
- func (c *Client) GetUserInfo(userName 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(_ git.IssueType, issueNo int, body string) error
- func (c *Client) RegisterWebhook(url string) error
- func (c *Client) SetCommitStatus(integrationJob *cicdv1.IntegrationJob, context string, ...) error
- type Comment
- type CommentBody
- type CommitStatusBody
- type IssueCommentWebhook
- type PullRequest
- type PullRequestReviewCommentWebhook
- type PullRequestReviewWebhook
- type PullRequestWebhook
- type PushWebhook
- type RegistrationWebhookBody
- type RegistrationWebhookBodyConfig
- type Repo
- type User
- type UserInfo
- type UserPermission
- type WebhookEntry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HashPayload ¶
HashPayload hashes the payload
func IsValidPayload ¶
IsValidPayload validates the webhook payload
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 github
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 Comment ¶ added in v0.2.0
type Comment struct {
Body string `json:"body"`
CreatedAt *metav1.Time `json:"created_at"`
UpdatedAt *metav1.Time `json:"updated_at"`
}
Comment is a comment payload
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 IssueCommentWebhook ¶ added in v0.2.0
type IssueCommentWebhook struct {
Action string `json:"action"`
Comment Comment `json:"comment"`
Issue struct {
PullRequest struct {
URL string `json:"url"`
} `json:"pull_request"`
} `json:"issue"`
Repo Repo `json:"repository"`
Sender User `json:"sender"`
}
IssueCommentWebhook is a github-specific issue_comment webhook body
type PullRequest ¶ added in v0.2.0
type PullRequest struct {
Title string `json:"title"`
Number int `json:"number"`
State string `json:"state"`
URL string `json:"html_url"`
User User `json:"user"`
Head struct {
Ref string `json:"ref"`
Sha string `json:"sha"`
} `json:"head"`
Base struct {
Ref string `json:"ref"`
} `json:"base"`
}
PullRequest is a pull request info
type PullRequestReviewCommentWebhook ¶ added in v0.2.0
type PullRequestReviewCommentWebhook struct {
Action string `json:"action"`
Comment Comment `json:"comment"`
PullRequest PullRequest `json:"pull_request"`
Repo Repo `json:"repository"`
Sender User `json:"sender"`
}
PullRequestReviewCommentWebhook is a github-specific pull_request_review_comment webhook body
type PullRequestReviewWebhook ¶ added in v0.2.0
type PullRequestReviewWebhook struct {
Action string `json:"action"`
Review struct {
Body string `json:"body"`
SubmittedAt *metav1.Time `json:"submitted_at"`
} `json:"review"`
PullRequest PullRequest `json:"pull_request"`
Repo Repo `json:"repository"`
Sender User `json:"sender"`
}
PullRequestReviewWebhook is a github-specific pull_request_review webhook body
type PullRequestWebhook ¶
type PullRequestWebhook struct {
Action string `json:"action"`
Number int `json:"number"`
Sender User `json:"sender"`
PullRequest PullRequest `json:"pull_request"`
Repo Repo `json:"repository"`
}
PullRequestWebhook is a github-specific pull-request event webhook body
type PushWebhook ¶
type PushWebhook struct {
Ref string `json:"ref"`
Repo Repo `json:"repository"`
Sender User `json:"sender"`
Sha string `json:"after"`
}
PushWebhook is a github-specific push event webhook body
type RegistrationWebhookBody ¶
type RegistrationWebhookBody struct {
Name string `json:"name"`
Active bool `json:"active"`
Events []string `json:"events"`
Config RegistrationWebhookBodyConfig `json:"config"`
}
RegistrationWebhookBody is a request body for registering webhook to remote git server
type RegistrationWebhookBodyConfig ¶
type RegistrationWebhookBodyConfig struct {
URL string `json:"url"`
ContentType string `json:"content_type"`
InsecureSsl string `json:"insecure_ssl"`
Secret string `json:"secret"`
}
RegistrationWebhookBodyConfig is a config for the webhook
type Repo ¶
type Repo struct {
Name string `json:"full_name"`
URL string `json:"html_url"`
Owner struct {
ID string `json:"login"`
} `json:"owner"`
Private bool `json:"private"`
}
Repo structure for webhook event
type UserInfo ¶ added in v0.1.4
type UserInfo struct {
ID int `json:"id"`
UserName string `json:"login"`
Email string `json:"email"`
}
UserInfo is a body of user get API
type UserPermission ¶ added in v0.2.0
type UserPermission struct {
Permission string `json:"permission"`
}
UserPermission is a user's permission on a repository
type WebhookEntry ¶
type WebhookEntry struct {
ID int `json:"id"`
Config struct {
URL string `json:"url"`
} `json:"config"`
}
WebhookEntry is a body of list of registered webhooks