func()

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
}