Skip to content

Commit 0a410a3

Browse files
committed
Add support for parsing GitHub API PR URLs
1 parent 74102d8 commit 0a410a3

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

utils/github.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,14 @@ func ParseGitHubPRString(prString string) (string, int, error) {
3535

3636
var parts []string
3737

38-
if strings.HasPrefix(strings.ToLower(prString), "https://github.com/") && strings.Contains(prString, "/pull/") {
38+
if strings.HasPrefix(strings.ToLower(prString), "https://api.github.com/") && strings.Contains(prString, "/pulls/") {
39+
// Input is a PR API URL like this: https://api.github.com/repos/Graylog2/graylog2-server/pulls/9309
40+
u, err := neturl.Parse(prString)
41+
if err != nil {
42+
return "", 0, errors.Wrapf(err, "couldn't parse GitHub pull request API URL <%s>", prString)
43+
}
44+
parts = strings.SplitN(strings.TrimPrefix(u.Path, "/repos/"), "/pulls/", 2)
45+
} else if strings.HasPrefix(strings.ToLower(prString), "https://github.com/") && strings.Contains(prString, "/pull/") {
3946
// Input is a PR URL like this: https://github.com/Graylog2/graylog2-server/pull/9692
4047
u, err := neturl.Parse(prString)
4148
if err != nil {

utils/github_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ func TestParseGitHubPRString(t *testing.T) {
162162
}{
163163
{"Graylog2/graylog2-server#123", "Graylog2/graylog2-server", 123, false},
164164
{"https://github.com/Graylog2/graylog-plugin-collector/pull/9692", "Graylog2/graylog-plugin-collector", 9692, false},
165+
{"https://api.github.com/repos/Graylog2/graylog2-server/pulls/9309", "Graylog2/graylog2-server", 9309, false},
165166
{"https://github.com/Graylog2/graylog-plugin-collector/pull/", "", 0, true},
166167
{"https://github.com/9692", "", 0, true},
167168
{"https://example.com/Graylog2/graylog-plugin-collector/pull/9692", "", 0, true},

0 commit comments

Comments
 (0)