in pkg/gitprovider/github.go [126:165]
func (c *GitHubClient) GetWebHook(
ctx context.Context,
githubURL,
token,
projectID string,
webHookRef string,
) (*WebHook, error) {
owner, repo, err := parseProjectID(projectID)
if err != nil {
return nil, err
}
c.restyClient.HostURL = githubURL
webHook := &gitHubWebHook{}
resp, err := c.restyClient.
R().
SetContext(ctx).
SetAuthToken(token).
SetPathParams(map[string]string{
ownerPathParam: owner,
repoPathParam: repo,
"hook-id": webHookRef,
}).
SetResult(webHook).
Get("/repos/{owner}/{repo}/hooks/{hook-id}")
if err != nil {
return nil, fmt.Errorf("failed to get GitHub web hook: %w", err)
}
if resp.StatusCode() == http.StatusNotFound {
return nil, fmt.Errorf("failed to get GitHub web hook: %w", ErrWebHookNotFound)
}
if resp.IsError() {
return nil, fmt.Errorf("failed to get GitHub web hook: %s", resp.String())
}
return convertWebhook(webHook), nil
}