func()

in pkg/event_processor/bitbucket/bitbucket.go [145:178]


func (p *EventProcessor) getPRLatestCommitMessage(
	ctx context.Context,
	codebase *codebaseApi.Codebase,
	repoFullName string,
	prID int,
) (string, error) {
	gitServerToken, err := event_processor.GetGitServerToken(ctx, p.ksClient, codebase)
	if err != nil {
		return "", fmt.Errorf("failed to get git server token for Bitbucket: %w", err)
	}

	commits := getPRCommitsResp{}

	r, err := p.restyClient.R().
		SetContext(ctx).
		ForceContentType("application/json").
		SetHeader("Authorization", fmt.Sprintf("Basic %s", gitServerToken)).
		SetResult(&commits).
		Get(fmt.Sprintf("/repositories/%s/pullrequests/%d/commits?fields=values.message&pagelen=1", repoFullName, prID))

	if err != nil {
		return "", fmt.Errorf("failed to get PR latest commit message: %w", err)
	}

	if r.IsError() {
		return "", fmt.Errorf("failed to get PR latest commit message: %s", r.String())
	}

	if len(commits.Values) == 0 {
		return "", errors.New("pull request doesn't have commits")
	}

	return commits.Values[0].Message, nil
}