- allow an Transformer[] beside a Transformer
This commit is contained in:
+34
-20
@@ -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;
|
||||
});
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -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
@@ -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
|
||||
})
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user