in internal/github/find-pr.go [27:48]
func (s *BackportPRNumber) FindPullRequestID(pr *github.PullRequest) (int, error) {
patterns := []string{`backport #(\d+)`, `cherry-pick of #(\d+)`, `cherry-pick of PR #(\d+)`}
rDigit, _ := regexp.Compile(`(\d+)`)
for _, label := range pr.Labels {
if label.GetName() == "backport" {
for _, p := range patterns {
regexPattern, _ := regexp.Compile(p)
backport := regexPattern.FindString(pr.GetTitle())
if backport == "" {
backport = regexPattern.FindString(*pr.Body)
}
PRNumber, err := strconv.Atoi(rDigit.FindString(backport))
if err == nil {
return PRNumber, err
}
}
}
}
return -1, ErrStrategyFailed
}