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
}