Skip to content

Commit 98669ae

Browse files
authored
Merge pull request #97 from crazy-max/fix-pr-event
Fix `pull_request_target` event
2 parents 013e892 + 85f4f73 commit 98669ae

File tree

3 files changed

+80
-40
lines changed

3 files changed

+80
-40
lines changed

__tests__/meta.test.ts

+65-28
Original file line numberDiff line numberDiff line change
@@ -619,36 +619,36 @@ describe('push', () => {
619619
],
620620
[
621621
'push18',
622-
'event_push.env',
623-
{
624-
images: ['org/app', 'ghcr.io/user/app'],
625-
tags: [
626-
`type=ref,event=branch`,
627-
`type=sha,format=long`
628-
],
629-
} as Inputs,
630-
{
631-
main: 'dev',
632-
partial: ['sha-90dd6032fac8bda1b6c4436a2e65de27961ed071'],
633-
latest: false
634-
} as Version,
635-
[
636-
'org/app:dev',
637-
'org/app:sha-90dd6032fac8bda1b6c4436a2e65de27961ed071',
638-
'ghcr.io/user/app:dev',
639-
'ghcr.io/user/app:sha-90dd6032fac8bda1b6c4436a2e65de27961ed071'
622+
'event_push.env',
623+
{
624+
images: ['org/app', 'ghcr.io/user/app'],
625+
tags: [
626+
`type=ref,event=branch`,
627+
`type=sha,format=long`
640628
],
641-
[
642-
"org.opencontainers.image.title=Hello-World",
643-
"org.opencontainers.image.description=This your first repo!",
644-
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
645-
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
646-
"org.opencontainers.image.version=dev",
647-
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
648-
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
649-
"org.opencontainers.image.licenses=MIT"
650-
]
629+
} as Inputs,
630+
{
631+
main: 'dev',
632+
partial: ['sha-90dd6032fac8bda1b6c4436a2e65de27961ed071'],
633+
latest: false
634+
} as Version,
635+
[
636+
'org/app:dev',
637+
'org/app:sha-90dd6032fac8bda1b6c4436a2e65de27961ed071',
638+
'ghcr.io/user/app:dev',
639+
'ghcr.io/user/app:sha-90dd6032fac8bda1b6c4436a2e65de27961ed071'
651640
],
641+
[
642+
"org.opencontainers.image.title=Hello-World",
643+
"org.opencontainers.image.description=This your first repo!",
644+
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
645+
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
646+
"org.opencontainers.image.version=dev",
647+
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
648+
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
649+
"org.opencontainers.image.licenses=MIT"
650+
]
651+
]
652652
])('given %p with %p event', tagsLabelsTest);
653653
});
654654

@@ -1840,6 +1840,43 @@ describe('pr', () => {
18401840
"org.opencontainers.image.revision=f24900bfcfee76d8055c8421a164c7e57ad20e68",
18411841
"org.opencontainers.image.licenses=MIT"
18421842
]
1843+
],
1844+
[
1845+
'pr09',
1846+
'event_pull_request_target.env',
1847+
{
1848+
images: ['org/app'],
1849+
tags: [
1850+
`type=ref,event=tag`,
1851+
`type=ref,event=pr`,
1852+
`type=ref,event=branch`,
1853+
`type=sha`,
1854+
`type=sha,format=long`
1855+
]
1856+
} as Inputs,
1857+
{
1858+
main: 'pr-8',
1859+
partial: [
1860+
'sha-f24900b',
1861+
'sha-f24900bfcfee76d8055c8421a164c7e57ad20e68'
1862+
],
1863+
latest: false
1864+
} as Version,
1865+
[
1866+
'org/app:pr-8',
1867+
'org/app:sha-f24900b',
1868+
'org/app:sha-f24900bfcfee76d8055c8421a164c7e57ad20e68'
1869+
],
1870+
[
1871+
"org.opencontainers.image.title=Hello-World",
1872+
"org.opencontainers.image.description=This your first repo!",
1873+
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
1874+
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
1875+
"org.opencontainers.image.version=pr-8",
1876+
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
1877+
"org.opencontainers.image.revision=f24900bfcfee76d8055c8421a164c7e57ad20e68",
1878+
"org.opencontainers.image.licenses=MIT"
1879+
]
18431880
]
18441881
])('given %p with %p event', tagsLabelsTest);
18451882
});

dist/index.js

+7-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/meta.ts

+8-6
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ export class Meta {
2727
private readonly date: Date;
2828

2929
constructor(inputs: Inputs, context: Context, repo: ReposGetResponseData) {
30+
// Needs to override Git reference with pr ref instead of upstream branch ref
31+
// for pull_request_target event
32+
if (/pull_request_target/.test(context.eventName)) {
33+
context.ref = `refs/pull/${context.payload.number}/merge`;
34+
}
35+
3036
this.inputs = inputs;
3137
this.context = context;
3238
this.repo = repo;
@@ -191,15 +197,11 @@ export class Meta {
191197
}
192198

193199
private procRefPr(version: Version, tag: tcl.Tag): Version {
194-
let ref = this.context.ref;
195-
if (/pull_request_target/.test(this.context.eventName)) {
196-
ref = `refs/pull/${this.context.payload.number}/merge`;
197-
}
198-
if (!/^refs\/pull\//.test(ref)) {
200+
if (!/^refs\/pull\//.test(this.context.ref)) {
199201
return version;
200202
}
201203

202-
const vraw = this.setValue(ref.replace(/^refs\/pull\//g, '').replace(/\/merge$/g, ''), tag);
204+
const vraw = this.setValue(this.context.ref.replace(/^refs\/pull\//g, '').replace(/\/merge$/g, ''), tag);
203205
return Meta.setVersion(version, vraw, this.flavor.latest == 'auto' ? false : this.flavor.latest == 'true');
204206
}
205207

0 commit comments

Comments
 (0)