Remove the branch option and replace with just head-branch and base-branch

This commit is contained in:
Josh Dales
2023-01-28 22:30:05 -05:00
parent 2daf35ae4b
commit 231de6bc24
3 changed files with 38 additions and 18 deletions

View File

@@ -1,11 +1,11 @@
test-branch: test-branch:
- branch: "^test/" - head-branch: "^test/"
feature-branch: feature-branch:
- branch: "/feature/" - head-branch: "/feature/"
bug-branch: bug-branch:
- branch: "^bug/|fix/" - head-branch: "^bug/|fix/"
array-branch: array-branch:
- branch: ["^array/"] - head-branch: ["^array/"]

View File

@@ -3,6 +3,38 @@ import * as github from '@actions/github';
type BranchBase = 'base' | 'head'; type BranchBase = 'base' | 'head';
export function toMatchConfigWithBranches(config: any) {
if (!config['head-branch'] || config['base-branch']) {
return config;
}
const branchConfig = {
headBranch: config['head-branch'],
baseBranch: config['base-branch']
};
if (branchConfig.headBranch) {
const patterns = branchConfig.headBranch;
if (typeof patterns === 'string') {
branchConfig.headBranch = [patterns];
}
}
if (branchConfig.baseBranch) {
const patterns = branchConfig.baseBranch;
if (typeof patterns === 'string') {
branchConfig.baseBranch = [patterns];
}
}
return {
...config,
['head-branch']: undefined,
['base-branch']: undefined,
...branchConfig
};
}
export function getBranchName(branchBase?: BranchBase): string | undefined { export function getBranchName(branchBase?: BranchBase): string | undefined {
const pullRequest = github.context.payload.pull_request; const pullRequest = github.context.payload.pull_request;
if (!pullRequest) { if (!pullRequest) {

View File

@@ -3,12 +3,11 @@ import * as github from '@actions/github';
import * as yaml from 'js-yaml'; import * as yaml from 'js-yaml';
import {Minimatch, IMinimatch} from 'minimatch'; import {Minimatch, IMinimatch} from 'minimatch';
import {checkBranch} from './branch'; import {checkBranch, toMatchConfigWithBranches} from './branch';
interface MatchConfig { interface MatchConfig {
all?: string[]; all?: string[];
any?: string[]; any?: string[];
branch?: string[];
headBranch?: string[]; headBranch?: string[];
baseBranch?: string[]; baseBranch?: string[];
} }
@@ -151,14 +150,9 @@ function toMatchConfig(config: StringOrMatchConfig): MatchConfig {
return { return {
any: [config] any: [config]
}; };
} else if (typeof config.branch === 'string') {
return {
...config,
branch: [config.branch]
};
} }
return config; return toMatchConfigWithBranches(config);
} }
function printPattern(matcher: IMinimatch): string { function printPattern(matcher: IMinimatch): string {
@@ -236,12 +230,6 @@ function checkMatch(changedFiles: string[], matchConfig: MatchConfig): boolean {
} }
} }
if (matchConfig.branch !== undefined) {
if (!checkBranch(matchConfig.branch)) {
return false;
}
}
if (matchConfig.headBranch !== undefined) { if (matchConfig.headBranch !== undefined) {
if (!checkBranch(matchConfig.headBranch, 'head')) { if (!checkBranch(matchConfig.headBranch, 'head')) {
return false; return false;