Skip to content

Commit a2e3d6d

Browse files
Merge pull request #247 from technote-space/release/v1.1.8
Release/v1.1.8
2 parents 84643e2 + a13fec4 commit a2e3d6d

File tree

5 files changed

+70
-65
lines changed

5 files changed

+70
-65
lines changed

__tests__/context-helper.test.ts

Lines changed: 2 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import {
77
import { testEnv, getContext } from '@technote-space/github-action-test-helper';
88
import { Logger, ContextHelper } from '../src';
99

10-
const {isRelease, isPush, isPr, isIssue, isCron, isCustomEvent, isCreateTag} = ContextHelper;
11-
const {getGitUrl, getRepository, getTagName, getSender, removeToken, showActionInfo} = ContextHelper;
10+
const {isRelease, isPush, isPr, isIssue, isCron, isCustomEvent, isCreateTag} = ContextHelper;
11+
const {getGitUrl, getRepository, getTagName, getSender, showActionInfo} = ContextHelper;
1212

1313
describe('isRelease', () => {
1414
it('should return true', () => {
@@ -222,52 +222,6 @@ describe('getSender', () => {
222222
});
223223
});
224224

225-
describe('removeToken', () => {
226-
it('should remove token', () => {
227-
expect(removeToken({})).toEqual({});
228-
expect(removeToken({
229-
test1: {
230-
token: 'test',
231-
},
232-
test2: 2,
233-
test3: {
234-
test: 3,
235-
236-
},
237-
})).toEqual({
238-
test1: {},
239-
test2: 2,
240-
test3: {
241-
test: 3,
242-
},
243-
});
244-
expect(removeToken({
245-
token: 'test',
246-
test1: {
247-
token: 'test',
248-
test2: 2,
249-
test3: 3,
250-
test4: {
251-
test5: {
252-
token: 'test',
253-
test6: 6,
254-
},
255-
},
256-
},
257-
})).toEqual({
258-
test1: {
259-
test2: 2,
260-
test3: 3,
261-
test4: {
262-
test5: {
263-
test6: 6,
264-
},
265-
},
266-
},
267-
});
268-
});
269-
});
270-
271225
describe('showActionInfo', () => {
272226
beforeEach(() => {
273227
Logger.resetForTesting();

__tests__/utils.test.ts

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { Utils } from '../src';
66
const {getWorkspace, getActor, escapeRegExp, getRegExp, getPrefixRegExp, getSuffixRegExp, useNpm, versionCompare, getOctokit} = Utils;
77
const {isSemanticVersioningTagName, isPrRef, getPrMergeRef, getBoolValue, replaceAll, getPrHeadRef, arrayChunk, sleep} = Utils;
88
const {getBranch, getRefForUpdate, uniqueArray, getBuildInfo, split, getArrayInput, generateNewPatchVersion, getPrBranch} = Utils;
9-
const {isBranch, isTagRef, normalizeRef, trimRef, getTag, getRefspec, getRemoteRefspec, getLocalRefspec} = Utils;
9+
const {isBranch, isTagRef, normalizeRef, trimRef, getTag, getRefspec, getRemoteRefspec, getLocalRefspec, mask} = Utils;
1010

1111
jest.useFakeTimers();
1212

@@ -548,3 +548,54 @@ describe('getLocalRefspec', () => {
548548
expect(getLocalRefspec('refs/pull/123/merge')).toBe('pull/123/merge');
549549
});
550550
});
551+
552+
describe('mask', () => {
553+
it('should remove token', () => {
554+
expect(mask({})).toEqual({});
555+
expect(mask({
556+
test1: {
557+
token: 'test',
558+
},
559+
test2: 2,
560+
test3: {
561+
test: 3,
562+
563+
},
564+
})).toEqual({
565+
test1: {
566+
token: '***'
567+
},
568+
test2: 2,
569+
test3: {
570+
test: 3,
571+
},
572+
});
573+
expect(mask({
574+
abc: 'test',
575+
test1: {
576+
abc: 'test',
577+
test2: 2,
578+
test3: 3,
579+
test4: {
580+
test5: {
581+
abc: 'test',
582+
test6: 6,
583+
},
584+
},
585+
},
586+
}, 'abc')).toEqual({
587+
abc: '***',
588+
test1: {
589+
abc: '***',
590+
test2: 2,
591+
test3: 3,
592+
test4: {
593+
test5: {
594+
abc: '***',
595+
test6: 6,
596+
},
597+
},
598+
},
599+
});
600+
});
601+
});

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@technote-space/github-action-helper",
3-
"version": "1.1.7",
3+
"version": "1.1.8",
44
"description": "Helper to filter GitHub Action.",
55
"author": {
66
"name": "Technote",

src/context-helper.ts

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import path from 'path';
22
import { Context } from '@actions/github/lib/context';
33
import { Logger } from './index';
4-
import { getAccessToken, getActor, getBuildInfo } from './utils';
4+
import { getAccessToken, getActor, getBuildInfo, mask } from './utils';
55

66
export const isRelease = (context: Context): boolean => 'release' === context.eventName;
77

@@ -29,18 +29,6 @@ export const getGitUrlWithToken = (context: Context, token?: string | undefined)
2929

3030
export const getGitUrl = (context: Context, accessTokenRequired = true): string => getGitUrlWithToken(context, getAccessToken(accessTokenRequired));
3131

32-
export const removeToken = (value: object): object => {
33-
Object.keys(value).forEach(key => {
34-
if (typeof value[key] === 'object') {
35-
value[key] = removeToken(value[key]);
36-
} else if ('token' === key) {
37-
delete value[key];
38-
}
39-
});
40-
41-
return value;
42-
};
43-
4432
export const showActionInfo = (rootDir: string, logger: Logger, context: Context): void => {
4533
const info = getBuildInfo(path.resolve(rootDir, 'build.json'));
4634
const tagName = getTagName(context);
@@ -76,9 +64,9 @@ export const showActionInfo = (rootDir: string, logger: Logger, context: Context
7664
logger.log('repo: %s', context.repo.repo);
7765
logger.log();
7866
logger.startProcess('Dump context');
79-
console.log(removeToken(context));
67+
console.log(mask(context));
8068
logger.startProcess('Dump Payload');
81-
console.log(removeToken(context.payload));
69+
console.log(mask(context.payload));
8270
logger.endProcess();
8371
logger.log(separator);
8472
logger.log();

src/utils.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,3 +167,15 @@ export const versionCompare = (version1: string, version2: string, checkDifferen
167167
};
168168
return compare(splitVersion(version1.replace(/^v/, '')), splitVersion(version2.replace(/^v/, '')));
169169
};
170+
171+
export const mask = (value: object, target = 'token'): object => {
172+
Object.keys(value).forEach(key => {
173+
if (typeof value[key] === 'object') {
174+
value[key] = mask(value[key], target);
175+
} else if (target === key) {
176+
value[key] = '***';
177+
}
178+
});
179+
180+
return value;
181+
};

0 commit comments

Comments
 (0)