- allow an Transformer[] beside a Transformer

This commit is contained in:
Mike Penz
2023-06-18 16:19:21 +00:00
committed by GitHub
parent 236a880ab7
commit cd529e7057
5 changed files with 72 additions and 44 deletions
Generated Vendored
+34 -20
View File
@@ -25745,17 +25745,17 @@ const moment_1 = __importDefault(__nccwpck_require__(9623));
const commits_1 = __nccwpck_require__(5789);
exports.EMPTY_PULL_REQUEST_INFO = {
number: 0,
title: "",
htmlURL: "",
baseBranch: "",
title: '',
htmlURL: '',
baseBranch: '',
mergedAt: undefined,
createdAt: (0, moment_1.default)(),
mergeCommitSha: "",
author: "",
repoName: "",
mergeCommitSha: '',
author: '',
repoName: '',
labels: [],
milestone: "",
body: "",
milestone: '',
body: '',
assignees: [],
requestedReviewers: [],
approvedReviewers: [],
@@ -26364,18 +26364,31 @@ class Tags {
const filteredTags = filterTags(
// retrieve the tags from the API
yield this.getTags(owner, repo, maxTagsToFetch), tagResolver);
// check if a transformer was defined
const tagTransformer = (0, regexUtils_1.validateTransformer)(tagResolver.transformer);
let transformedTags;
if (tagTransformer != null) {
core.debug(`️ Using configured tagTransformer`);
transformedTags = transformTags(filteredTags, tagTransformer);
// check if a transformer, legacy handling, transform single value input to array
let tagTransfomers = undefined;
if (!Array.isArray(tagTransfomers)) {
if (tagTransfomers !== undefined) {
tagTransfomers = [tagTransfomers];
}
}
else {
transformedTags = filteredTags;
else if (tagResolver.transformer !== undefined) {
tagTransfomers = tagResolver.transformer;
}
let transformed = false;
let transformedTags = filteredTags;
if (tagTransfomers !== undefined && tagTransfomers.length > 0) {
for (const transformer of tagTransfomers) {
const tagTransformer = (0, regexUtils_1.validateTransformer)(transformer);
if (tagTransformer != null) {
core.debug(`️ Using configured tagTransformer (${transformer.pattern})`);
transformedTags = transformTags(transformedTags, tagTransformer);
transformed = true;
}
}
}
// sort tags, apply additional information (e.g. if tag is a pre release)
let tags = prepareAndSortTags(transformedTags, tagResolver);
if (tagTransformer != null) {
if (transformed) {
// restore the original name, after sorting
tags = filteredTags.map(function (tag) {
if (tag.hasOwnProperty('tmp')) {
@@ -26515,9 +26528,10 @@ function semVerTags(tags) {
core.debug(`⚠️ dropped tag ${tag.name} because it is not a valid semver tag`);
}
else {
tag.preRelease = semver.prerelease(tag.name, {
loose: true
}) != null;
tag.preRelease =
semver.prerelease(tag.name, {
loose: true
}) != null;
}
return isValid;
});
Generated Vendored
+1 -1
View File
File diff suppressed because one or more lines are too long
+8 -8
View File
@@ -38,17 +38,17 @@ export interface CommentInfo {
export const EMPTY_PULL_REQUEST_INFO: PullRequestInfo = {
number: 0,
title: "",
htmlURL: "",
baseBranch: "",
title: '',
htmlURL: '',
baseBranch: '',
mergedAt: undefined,
createdAt: moment(),
mergeCommitSha: "",
author: "",
repoName: "",
mergeCommitSha: '',
author: '',
repoName: '',
labels: [],
milestone: "",
body: "",
milestone: '',
body: '',
assignees: [],
requestedReviewers: [],
approvedReviewers: [],
+28 -14
View File
@@ -3,7 +3,7 @@ import * as github from '@actions/github'
import * as semver from 'semver'
import {Octokit, RestEndpointMethodTypes} from '@octokit/rest'
import {SemVer} from 'semver'
import {RegexTransformer, TagResolver} from './types'
import {RegexTransformer, TagResolver, Transformer} from './types'
import {createCommandManager} from './gitHelper'
import moment from 'moment'
import {validateTransformer} from './regexUtils'
@@ -147,20 +147,33 @@ export class Tags {
tagResolver
)
// check if a transformer was defined
const tagTransformer = validateTransformer(tagResolver.transformer)
let transformedTags: TagInfo[]
if (tagTransformer != null) {
core.debug(`️ Using configured tagTransformer`)
transformedTags = transformTags(filteredTags, tagTransformer)
} else {
transformedTags = filteredTags
// check if a transformer, legacy handling, transform single value input to array
let tagTransfomers: Transformer[] | undefined = undefined
if (!Array.isArray(tagTransfomers)) {
if (tagTransfomers !== undefined) {
tagTransfomers = [tagTransfomers]
}
} else if (tagResolver.transformer !== undefined) {
tagTransfomers = tagResolver.transformer as Transformer[]
}
let transformed = false
let transformedTags: TagInfo[] = filteredTags
if (tagTransfomers !== undefined && tagTransfomers.length > 0) {
for (const transformer of tagTransfomers) {
const tagTransformer = validateTransformer(transformer)
if (tagTransformer != null) {
core.debug(`️ Using configured tagTransformer (${transformer.pattern})`)
transformedTags = transformTags(transformedTags, tagTransformer)
transformed = true
}
}
}
// sort tags, apply additional information (e.g. if tag is a pre release)
let tags = prepareAndSortTags(transformedTags, tagResolver)
if (tagTransformer != null) {
if (transformed) {
// restore the original name, after sorting
tags = filteredTags.map(function (tag) {
if (tag.hasOwnProperty('tmp')) {
@@ -298,9 +311,10 @@ function semVerTags(tags: TagInfo[]): TagInfo[] {
if (!isValid) {
core.debug(`⚠️ dropped tag ${tag.name} because it is not a valid semver tag`)
} else {
tag.preRelease = semver.prerelease(tag.name, {
loose: true
}) != null
tag.preRelease =
semver.prerelease(tag.name, {
loose: true
}) != null
}
return isValid
})
+1 -1
View File
@@ -36,7 +36,7 @@ export interface Sort {
export interface TagResolver {
method: string // semver, sort
filter?: Regex // the regex to filter the tags, prior to sorting
transformer?: Transformer // transforms the tag name using the regex, run after the filter
transformer?: Transformer | Transformer[] // transforms the tag name using the regex, run after the filter
}
export interface Regex {