in tools/eksDistroBuildToolingOpsTools/pkg/prManager/prManager.go [112:139]
func (p *PrCreator) getPr(ctx context.Context, opts *GetPrOpts) (*gogithub.PullRequest, error) {
o := &gogithub.PullRequestListOptions{
Head: fmt.Sprintf("%v:%v", p.prRepoOwner, opts.CommitBranch),
Base: opts.BaseBranch,
}
list, r, err := p.client.PullRequests.List(ctx, p.prRepoOwner, p.prRepo, o)
if err != nil {
if r != nil {
logger.V(3).Info("listing pr response", "status code", r.Response.StatusCode)
}
return nil, fmt.Errorf("getting open PR into %v from %v: listing PR: %v", opts.BaseBranch, opts.CommitBranch, err)
}
if len(list) > 1 {
return nil, fmt.Errorf("getting open PR into %v from %v: open PR list is greater than 1, this is impossible or wrong. PR list length: %d", opts.BaseBranch, opts.CommitBranch, len(list))
}
if len(list) == 0 {
return nil, nil
}
prNumber := *list[0].Number
pr, r, err := p.client.PullRequests.Get(ctx, p.prRepoOwner, p.sourceRepo, prNumber)
if err != nil {
if r != nil {
logger.V(3).Info("getting pr response", "status code", r.Response.StatusCode)
}
return nil, fmt.Errorf("getting open PR number %d: %v", prNumber, err)
}
return pr, nil
}