feat: support short issue links in label workflow (#7814)

This commit is contained in:
Oliver Nordbjerg
2024-04-23 14:24:58 +02:00
committed by GitHub
parent 6d2e20cd85
commit eabd0220c6

View File

@ -8,6 +8,20 @@ function shouldIncludeLabel (label) {
return !isStatus && !isTrackingIssue && !isPreventStale && !isDifficulty;
}
// Get the issue number from an issue link in the forms `<keyword> <issue url>` or `<keyword> #<issue number>`.
function getIssueLink (repoUrl, body) {
const urlPattern = new RegExp(`(close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved) ${repoUrl}/issues/(?<issue_number>\\d+)`, 'i')
const issuePattern = new RegExp(`(close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved) \#(?<issue_number>\\d+)`, 'i')
const urlRe = body.match(urlPattern);
const issueRe = body.match(issuePattern);
if (urlRe?.groups?.issue_number) {
return urlRe.groups.issue_number
} else {
return issueRe?.groups?.issue_number
}
}
module.exports = async ({ github, context }) => {
try {
const prNumber = context.payload.pull_request.number;
@ -15,11 +29,7 @@ module.exports = async ({ github, context }) => {
const repo = context.repo;
const repoUrl = context.payload.repository.html_url;
const pattern = new RegExp(`(close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved) ${repoUrl}/issues/(?<issue_number>\\d+)`, 'i')
const re = prBody.match(pattern);
const issueNumber = re?.groups?.issue_number;
const issueNumber = getIssueLink(repoUrl, prBody);
if (!issueNumber) {
console.log('No issue reference found in PR description.');
return;