- introduce branch (head ref) as data point in the PullRequestInfo object

- expand extractor to allow using the `branch` -> e.g. to extract the label
This commit is contained in:
Mike Penz
2022-07-27 17:19:50 +02:00
parent 0e96047683
commit c4a63d86ad
5 changed files with 18 additions and 6 deletions
Generated Vendored
+1
View File
@@ -690,6 +690,7 @@ const mapPullRequest = (pr, status = 'open') => {
title: pr.title,
htmlURL: pr.html_url,
baseBranch: pr.base.ref,
branch: pr.head.ref,
createdAt: (0, moment_1.default)(pr.created_at),
mergedAt: pr.merged_at ? (0, moment_1.default)(pr.merged_at) : null,
mergeCommitSha: pr.merge_commit_sha || '',
Generated Vendored
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -40,11 +40,12 @@ export interface Transformer extends Regex {
export interface Extractor extends Transformer {
on_property?:
| ('title' | 'author' | 'milestone' | 'body')[]
| ('title' | 'author' | 'milestone' | 'body' | 'branch')[]
| 'title'
| 'author'
| 'milestone'
| 'body'
| 'branch'
| undefined // retrieve the property to extract the value from
method?: 'replace' | 'match' | undefined // the method to use to extract the value, `match` will not use the `target` property
on_empty?: string | undefined // in case the regex results in an empty string, this value is gonna be used instead (only for label_extractor currently)
+2
View File
@@ -9,6 +9,7 @@ export interface PullRequestInfo {
title: string
htmlURL: string
baseBranch: string
branch?: string
createdAt: moment.Moment
mergedAt: moment.Moment | null
mergeCommitSha: string
@@ -227,6 +228,7 @@ const mapPullRequest = (
title: pr.title,
htmlURL: pr.html_url,
baseBranch: pr.base.ref,
branch: pr.head.ref,
createdAt: moment(pr.created_at),
mergedAt: pr.merged_at ? moment(pr.merged_at) : null,
mergeCommitSha: pr.merge_commit_sha || '',
+12 -4
View File
@@ -462,12 +462,18 @@ function extractValues(
if (extractor.onProperty !== undefined) {
let results: string[] = []
const list: ('title' | 'author' | 'milestone' | 'body' | 'status')[] =
extractor.onProperty
const list: (
| 'title'
| 'author'
| 'milestone'
| 'body'
| 'status'
| 'branch'
)[] = extractor.onProperty
// eslint-disable-next-line @typescript-eslint/prefer-for-of
for (let i = 0; i < list.length; i++) {
const prop = list[i]
let value: string = pr[prop]
let value: string | undefined = pr[prop]
if (value === undefined) {
core.warning(
`⚠️ the provided property '${extractor.onProperty}' for \`${extractor_usecase}\` is not valid`
@@ -514,7 +520,9 @@ function extractValuesFromString(
export interface RegexTransformer {
pattern: RegExp | null
target: string
onProperty?: ('title' | 'author' | 'milestone' | 'body')[] | undefined
onProperty?:
| ('title' | 'author' | 'milestone' | 'body' | 'status' | 'branch')[]
| undefined
method?: 'replace' | 'match' | undefined
onEmpty?: string | undefined
}