func()

in pkg/gitprovider/github.go [168:207]


func (c *GitHubClient) GetWebHooks(
	ctx context.Context,
	githubURL,
	token,
	projectID string,
) ([]*WebHook, error) {
	owner, repo, err := parseProjectID(projectID)
	if err != nil {
		return nil, err
	}

	c.restyClient.HostURL = githubURL

	var gitHubWebHooks []*gitHubWebHook

	resp, err := c.restyClient.
		R().
		SetContext(ctx).
		SetAuthToken(token).
		SetPathParams(map[string]string{
			ownerPathParam: owner,
			repoPathParam:  repo,
		}).
		SetResult(&gitHubWebHooks).
		Get("/repos/{owner}/{repo}/hooks")
	if err != nil {
		return nil, fmt.Errorf("failed to get GitHub web hooks: %w", err)
	}

	if resp.IsError() {
		return nil, fmt.Errorf("failed to get GitHub web hooks: %s", resp.String())
	}

	webHooks := make([]*WebHook, len(gitHubWebHooks))
	for i, webHook := range gitHubWebHooks {
		webHooks[i] = convertWebhook(webHook)
	}

	return webHooks, nil
}