Skip to content

Commit 4e3ecf8

Browse files
kaylieEBBYK
authored andcommitted
Fix: Include pull requests in git ref search (#4411)
**Summary** Fixes #4369, a regression from previous refactor. Include `pull` requests in ref search and test for it later when it's called by github resolver. *BEFORE* ![before](https://user-images.githubusercontent.com/18429494/30309691-7aeabe2e-9741-11e7-8e34-c75413b83d99.png) *AFTER* ![after](https://user-images.githubusercontent.com/18429494/30309693-7dcc3528-9741-11e7-8a74-bc7585fd6177.png) **Test plan** Added a unit test in `git/git-ref-resolver.js`
1 parent 1fde50a commit 4e3ecf8

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

__tests__/util/git/git-ref-resolver.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ test('resolveVersion', async () => {
2727
refs.set('refs/tags/v1.1.0', '37d5ed001dc4402d5446911c4e1cb589449e7d8d');
2828
refs.set('refs/tags/v2.2.0', 'e88209b9513544a22fc3f8660e3d829281dc2c9f');
2929
refs.set('refs/tags/both', 'f0dbab0a4345a64f544af37e24fc8187176936a4');
30+
refs.set('refs/pull/100/head', '6e97e0159f10c275f227d0f067d99f2a97331cef');
3031
const emptyRefs: GitRefs = new Map();
3132
const git = new GitMock();
3233

@@ -69,6 +70,10 @@ test('resolveVersion', async () => {
6970
sha: '37d5ed001dc4402d5446911c4e1cb589449e7d8d',
7071
ref: 'refs/tags/v1.1.0',
7172
});
73+
expect(await resolve('100/head')).toEqual({
74+
sha: '6e97e0159f10c275f227d0f067d99f2a97331cef',
75+
ref: 'refs/pull/100/head',
76+
});
7277
// not-existing sha
7378
expect(await resolve('0123456')).toEqual(null);
7479

src/util/git/git-ref-resolver.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ type Names = {tags: Array<string>, heads: Array<string>};
2121

2222
const REF_TAG_PREFIX = 'refs/tags/';
2323
const REF_BRANCH_PREFIX = 'refs/heads/';
24+
const REF_PR_PREFIX = 'refs/pull/';
2425

2526
// This regex is designed to match output from git of the style:
2627
// ebeb6eafceb61dd08441ffe086c77eb472842494 refs/tags/v0.21.0
2728
// and extract the hash and ref name as capture groups
28-
const GIT_REF_LINE_REGEXP = /^([a-fA-F0-9]+)\s+(refs\/(?:tags|heads)\/.*)$/;
29+
const GIT_REF_LINE_REGEXP = /^([a-fA-F0-9]+)\s+(refs\/(?:tags|heads|pull)\/.*)$/;
2930

3031
const COMMIT_SHA_REGEXP = /^[a-f0-9]{5,40}$/;
3132
const REF_NAME_REGEXP = /^refs\/(tags|heads)\/(.+)$/;
@@ -62,6 +63,9 @@ const tryVersionAsFullRef = ({version, refs}: ResolveVersionOptions): ?ResolvedS
6263
const tryVersionAsTagName = ({version, refs}: ResolveVersionOptions): ?ResolvedSha =>
6364
tryRef(refs, `${REF_TAG_PREFIX}${version}`);
6465

66+
const tryVersionAsPullRequestNo = ({version, refs}: ResolveVersionOptions): ?ResolvedSha =>
67+
tryRef(refs, `${REF_PR_PREFIX}${version}`);
68+
6569
const tryVersionAsBranchName = ({version, refs}: ResolveVersionOptions): ?ResolvedSha =>
6670
tryRef(refs, `${REF_BRANCH_PREFIX}${version}`);
6771

@@ -112,6 +116,7 @@ const VERSION_RESOLUTION_STEPS: Array<(ResolveVersionOptions) => ?ResolvedSha |
112116
tryVersionAsGitCommit,
113117
tryVersionAsFullRef,
114118
tryVersionAsTagName,
119+
tryVersionAsPullRequestNo,
115120
tryVersionAsBranchName,
116121
tryVersionAsSemverRange,
117122
tryWildcardVersionAsDefaultBranch,

0 commit comments

Comments
 (0)