Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1754cd4b9e | ||
|
|
03c184259a | ||
|
|
5f0139347a | ||
|
|
58a98867a7 | ||
|
|
9216b0cec2 | ||
|
|
0e3a6c3e99 | ||
|
|
e86678fe3a | ||
|
|
35d5a4d79f | ||
|
|
887f93673c |
61
HISTORY.md
61
HISTORY.md
@@ -1,5 +1,66 @@
|
||||
# Changelog
|
||||
|
||||
# [44.4.0](https://github.com/tj-actions/changed-files/compare/v44.3.0...v44.4.0) - (2024-05-08)
|
||||
|
||||
## <!-- 0 -->🚀 Features
|
||||
|
||||
- Reduce the default fetch_depth from 50 to 25 and increase fetch_missing_history_max_retries ([#2060](https://github.com/tj-actions/changed-files/issues/2060)) ([44ce9f4](https://github.com/tj-actions/changed-files/commit/44ce9f434167298fce8f9edf203176c014d51ed8)) - (Tonye Jack)
|
||||
|
||||
## <!-- 1 -->🐛 Bug Fixes
|
||||
|
||||
- **deps:** Update dependency @octokit/rest to v20.1.1 ([396e5a5](https://github.com/tj-actions/changed-files/commit/396e5a51d5444a68abd0ca86795e40144b22875a)) - (renovate[bot])
|
||||
- **deps:** Update dependency yaml to v2.4.2 ([1c5b7dc](https://github.com/tj-actions/changed-files/commit/1c5b7dc5f490a91e3ffe2a80a32b6ec53fee8627)) - (renovate[bot])
|
||||
|
||||
## <!-- 16 -->➕ Add
|
||||
|
||||
- Added missing changes and modified dist assets.
|
||||
([c393672](https://github.com/tj-actions/changed-files/commit/c393672835f5e9934c60b73f14af88cbb3eb9d6d)) - (GitHub Action)
|
||||
- Added missing changes and modified dist assets.
|
||||
([15fa7fb](https://github.com/tj-actions/changed-files/commit/15fa7fb9550e318cd8c7889812750e3baf85741a)) - (GitHub Action)
|
||||
|
||||
## <!-- 26 -->🔄 Update
|
||||
|
||||
- Updated README.md ([#2068](https://github.com/tj-actions/changed-files/issues/2068))
|
||||
|
||||
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> ([0c82494](https://github.com/tj-actions/changed-files/commit/0c82494d634648c00ea121dc17d3c790888d84b7)) - (tj-actions[bot])
|
||||
- Updated README.md ([#2061](https://github.com/tj-actions/changed-files/issues/2061))
|
||||
|
||||
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com> ([cee950d](https://github.com/tj-actions/changed-files/commit/cee950d7423ea9b9e2f1398edb7c203aa8e3b6a8)) - (tj-actions[bot])
|
||||
- Updated README.md ([#2059](https://github.com/tj-actions/changed-files/issues/2059))
|
||||
|
||||
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com> ([7b65c37](https://github.com/tj-actions/changed-files/commit/7b65c377b1a5352050b3f1765e89e8c1498b7151)) - (tj-actions[bot])
|
||||
- Update action.yml ([532b66a](https://github.com/tj-actions/changed-files/commit/532b66aa5cdd78ac95381a5837593c4e2c1cc689)) - (Tonye Jack)
|
||||
- Updated README.md ([#2057](https://github.com/tj-actions/changed-files/issues/2057))
|
||||
|
||||
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com> ([461ea4f](https://github.com/tj-actions/changed-files/commit/461ea4f9bf72cc903116a1f7832c259517033c4f)) - (tj-actions[bot])
|
||||
|
||||
## <!-- 7 -->⚙️ Miscellaneous Tasks
|
||||
|
||||
- **deps:** Update dependency @types/node to v20.12.11 ([a29e8b5](https://github.com/tj-actions/changed-files/commit/a29e8b565651ce417abb5db7164b4a2ad8b6155c)) - (renovate[bot])
|
||||
- **deps:** Update codacy/codacy-analysis-cli-action action to v4.4.1 ([5a12705](https://github.com/tj-actions/changed-files/commit/5a127050b23a670857f37c398ad95d4258ad2cd9)) - (renovate[bot])
|
||||
- **deps:** Update dependency @types/node to v20.12.10 ([5819343](https://github.com/tj-actions/changed-files/commit/581934340b529e43033415c4777d68fef0a77728)) - (renovate[bot])
|
||||
- **deps:** Update dependency @types/node to v20.12.9 ([5587afb](https://github.com/tj-actions/changed-files/commit/5587afbef7d18ac15b8dcb6728b4cef8dd65a3ca)) - (renovate[bot])
|
||||
- **deps:** Lock file maintenance ([0f039f3](https://github.com/tj-actions/changed-files/commit/0f039f361bfe87006120af15e65aca81bbf83a85)) - (renovate[bot])
|
||||
- **deps:** Update tj-actions/verify-changed-files action to v20 ([#2079](https://github.com/tj-actions/changed-files/issues/2079)) ([6d4230d](https://github.com/tj-actions/changed-files/commit/6d4230d4f04050b0b2748f51b7e45411c80556fb)) - (renovate[bot])
|
||||
- **deps:** Update dependency @types/lodash to v4.17.1 ([1711887](https://github.com/tj-actions/changed-files/commit/1711887607a8b90e5a2c940b679d755bfb77d002)) - (renovate[bot])
|
||||
- **deps:** Update dependency eslint-plugin-jest to v28.5.0 ([47a2d62](https://github.com/tj-actions/changed-files/commit/47a2d62412bf64a49abd7b7679f33b424ceca288)) - (renovate[bot])
|
||||
- **deps:** Update dependency eslint-plugin-jest to v28.4.0 ([c73b12c](https://github.com/tj-actions/changed-files/commit/c73b12cc6d5217a79bf78cf8a07ffc67de3ee4ad)) - (renovate[bot])
|
||||
- **deps-dev:** Bump @types/node from 20.12.7 to 20.12.8 ([#2074](https://github.com/tj-actions/changed-files/issues/2074)) ([41ce994](https://github.com/tj-actions/changed-files/commit/41ce994be96a740b53ae11ecbf86d1619a7bd640)) - (dependabot[bot])
|
||||
- **deps:** Lock file maintenance ([192e174](https://github.com/tj-actions/changed-files/commit/192e174507517360f2917c06114bc29c1b6f87cc)) - (renovate[bot])
|
||||
- **deps:** Update typescript-eslint monorepo to v7.8.0 ([5e85e31](https://github.com/tj-actions/changed-files/commit/5e85e31a0187e8df23b438284aa04f21b55f1510)) - (renovate[bot])
|
||||
- **deps:** Lock file maintenance ([7871e84](https://github.com/tj-actions/changed-files/commit/7871e848ad730c5f0f07beb4b552d981666d0113)) - (renovate[bot])
|
||||
- **deps:** Update tj-actions/eslint-changed-files action to v25 ([#2069](https://github.com/tj-actions/changed-files/issues/2069)) ([4765b9f](https://github.com/tj-actions/changed-files/commit/4765b9f7755d935bfd5b817fd54c1644a3e353e6)) - (renovate[bot])
|
||||
- **deps:** Update dependency eslint-plugin-jest to v28.3.0 ([7d02310](https://github.com/tj-actions/changed-files/commit/7d02310f6e619682280fc882083625c6fdea15a8)) - (renovate[bot])
|
||||
- **deps:** Update peter-evans/create-pull-request action to v6.0.5 ([0df48f8](https://github.com/tj-actions/changed-files/commit/0df48f84094b1c181560c74c366be7aa482f69f9)) - (renovate[bot])
|
||||
- **deps:** Update typescript-eslint monorepo to v7.7.1 ([b76e23c](https://github.com/tj-actions/changed-files/commit/b76e23c88a5fd49bbf61e0ed56e3bf863400619c)) - (renovate[bot])
|
||||
- **deps:** Lock file maintenance ([549c203](https://github.com/tj-actions/changed-files/commit/549c203ec243ad37c57a0aacc725543b643c2c9b)) - (renovate[bot])
|
||||
|
||||
## <!-- 9 -->⬆️ Upgrades
|
||||
|
||||
- Upgraded to v44.3.0 ([#2058](https://github.com/tj-actions/changed-files/issues/2058))
|
||||
|
||||
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com> ([d9384bb](https://github.com/tj-actions/changed-files/commit/d9384bba72acecf39972b06ec7f323d370f357fb)) - (tj-actions[bot])
|
||||
|
||||
# [44.3.0](https://github.com/tj-actions/changed-files/compare/v44.2.0...v44.3.0) - (2024-04-18)
|
||||
|
||||
## <!-- 0 -->🚀 Features
|
||||
|
||||
@@ -674,6 +674,15 @@ Support this project with a :star:
|
||||
# Default: "false"
|
||||
skip_initial_fetch: ''
|
||||
|
||||
# Tags pattern to ignore.
|
||||
# Type: string
|
||||
tags_ignore_pattern: ''
|
||||
|
||||
# Tags pattern to include.
|
||||
# Type: string
|
||||
# Default: "*"
|
||||
tags_pattern: ''
|
||||
|
||||
# GitHub token used to fetch
|
||||
# changed files from Github's API.
|
||||
# Type: string
|
||||
|
||||
@@ -235,6 +235,15 @@ inputs:
|
||||
description: "Use POSIX path separator `/` for output file paths on Windows."
|
||||
required: false
|
||||
default: "false"
|
||||
tags_pattern:
|
||||
description: "Tags pattern to include."
|
||||
required: false
|
||||
default: "*"
|
||||
tags_ignore_pattern:
|
||||
description: "Tags pattern to ignore."
|
||||
required: false
|
||||
default: ""
|
||||
|
||||
|
||||
outputs:
|
||||
added_files:
|
||||
|
||||
30
dist/index.js
generated
vendored
30
dist/index.js
generated
vendored
@@ -1055,7 +1055,11 @@ const getSHAForNonPullRequestEvent = (_j) => __awaiter(void 0, [_j], void 0, fun
|
||||
}
|
||||
else if (isTag) {
|
||||
core.debug('Getting previous SHA for tag...');
|
||||
const { sha, tag } = yield (0, utils_1.getPreviousGitTag)({ cwd: workingDirectory });
|
||||
const { sha, tag } = yield (0, utils_1.getPreviousGitTag)({
|
||||
cwd: workingDirectory,
|
||||
tagsPattern: inputs.tagsPattern,
|
||||
tagsIgnorePattern: inputs.tagsIgnorePattern
|
||||
});
|
||||
previousSha = sha;
|
||||
targetBranch = tag;
|
||||
}
|
||||
@@ -1388,7 +1392,9 @@ exports.DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS = {
|
||||
dirNamesDeletedFilesIncludeOnlyDeletedDirs: false,
|
||||
excludeSubmodules: false,
|
||||
fetchMissingHistoryMaxRetries: 10,
|
||||
usePosixPathSeparator: false
|
||||
usePosixPathSeparator: false,
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: ''
|
||||
};
|
||||
|
||||
|
||||
@@ -1610,6 +1616,14 @@ const getInputs = () => {
|
||||
const usePosixPathSeparator = core.getBooleanInput('use_posix_path_separator', {
|
||||
required: false
|
||||
});
|
||||
const tagsPattern = core.getInput('tags_pattern', {
|
||||
required: false,
|
||||
trimWhitespace: false
|
||||
});
|
||||
const tagsIgnorePattern = core.getInput('tags_ignore_pattern', {
|
||||
required: false,
|
||||
trimWhitespace: false
|
||||
});
|
||||
const inputs = {
|
||||
files,
|
||||
filesSeparator,
|
||||
@@ -1651,6 +1665,8 @@ const getInputs = () => {
|
||||
dirNamesDeletedFilesIncludeOnlyDeletedDirs,
|
||||
excludeSubmodules,
|
||||
usePosixPathSeparator,
|
||||
tagsPattern,
|
||||
tagsIgnorePattern,
|
||||
// End Not Supported via REST API
|
||||
dirNames,
|
||||
dirNamesExcludeCurrentDir,
|
||||
@@ -2604,12 +2620,18 @@ const cleanShaInput = (_5) => __awaiter(void 0, [_5], void 0, function* ({ sha,
|
||||
return stdout.trim();
|
||||
});
|
||||
exports.cleanShaInput = cleanShaInput;
|
||||
const getPreviousGitTag = (_6) => __awaiter(void 0, [_6], void 0, function* ({ cwd }) {
|
||||
const getPreviousGitTag = (_6) => __awaiter(void 0, [_6], void 0, function* ({ cwd, tagsPattern, tagsIgnorePattern }) {
|
||||
const { stdout } = yield exec.getExecOutput('git', ['tag', '--sort=-creatordate'], {
|
||||
cwd,
|
||||
silent: !core.isDebug()
|
||||
});
|
||||
const tags = stdout.trim().split('\n');
|
||||
let tags = stdout.trim().split('\n');
|
||||
if (tagsPattern) {
|
||||
tags = tags.filter(tag => micromatch_1.default.isMatch(tag, tagsPattern));
|
||||
}
|
||||
if (tagsIgnorePattern) {
|
||||
tags = tags.filter(tag => !micromatch_1.default.isMatch(tag, tagsIgnorePattern));
|
||||
}
|
||||
if (tags.length < 2) {
|
||||
core.warning('No previous tag found');
|
||||
return { tag: '', sha: '' };
|
||||
|
||||
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@tj-actions/changed-files",
|
||||
"version": "44.3.0",
|
||||
"version": "44.4.0",
|
||||
"description": "Github action to retrieve all (added, copied, modified, deleted, renamed, type changed, unmerged, unknown) files and directories.",
|
||||
"main": "lib/main.js",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -53,6 +53,8 @@ exports[`getInputs should correctly parse boolean inputs 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": "false",
|
||||
"skipInitialFetch": "true",
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "*",
|
||||
"token": "",
|
||||
"until": "",
|
||||
"usePosixPathSeparator": "false",
|
||||
@@ -113,6 +115,8 @@ exports[`getInputs should correctly parse numeric inputs 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "",
|
||||
"token": "",
|
||||
"until": "",
|
||||
"usePosixPathSeparator": false,
|
||||
@@ -171,6 +175,8 @@ exports[`getInputs should correctly parse string inputs 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "",
|
||||
"token": "token",
|
||||
"until": "",
|
||||
"usePosixPathSeparator": false,
|
||||
@@ -231,6 +237,8 @@ exports[`getInputs should handle invalid numeric inputs correctly 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "",
|
||||
"token": "",
|
||||
"until": "",
|
||||
"usePosixPathSeparator": false,
|
||||
@@ -291,6 +299,8 @@ exports[`getInputs should handle negative numeric inputs correctly 1`] = `
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "",
|
||||
"token": "",
|
||||
"until": "",
|
||||
"usePosixPathSeparator": false,
|
||||
@@ -352,6 +362,8 @@ exports[`getInputs should return default values when no inputs are provided 1`]
|
||||
"since": "",
|
||||
"sinceLastRemoteCommit": false,
|
||||
"skipInitialFetch": false,
|
||||
"tagsIgnorePattern": "",
|
||||
"tagsPattern": "*",
|
||||
"token": "",
|
||||
"until": "",
|
||||
"usePosixPathSeparator": false,
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import * as core from '@actions/core'
|
||||
import * as exec from '@actions/exec'
|
||||
import {ChangeTypeEnum} from '../changedFiles'
|
||||
import {Inputs} from '../inputs'
|
||||
import {
|
||||
getDirname,
|
||||
getDirnameMaxDepth,
|
||||
getFilteredChangedFiles,
|
||||
getPreviousGitTag,
|
||||
normalizeSeparators,
|
||||
warnUnsupportedRESTAPIInputs
|
||||
} from '../utils'
|
||||
@@ -638,7 +640,9 @@ describe('utils test', () => {
|
||||
useRestApi: false,
|
||||
excludeSubmodules: false,
|
||||
fetchMissingHistoryMaxRetries: 10,
|
||||
usePosixPathSeparator: false
|
||||
usePosixPathSeparator: false,
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: ''
|
||||
}
|
||||
|
||||
const coreWarningSpy = jest.spyOn(core, 'warning')
|
||||
@@ -654,4 +658,193 @@ describe('utils test', () => {
|
||||
expect(coreWarningSpy).toHaveBeenCalledTimes(1)
|
||||
})
|
||||
})
|
||||
describe('getPreviousGitTag', () => {
|
||||
// Function returns the second latest tag and its SHA
|
||||
it('should return the second latest tag and its SHA when multiple tags are present', async () => {
|
||||
jest
|
||||
.spyOn(exec, 'getExecOutput')
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'v1.0.1\nv1.0.0\nv0.9.9',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'abc123',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
const result = await getPreviousGitTag({
|
||||
cwd: '.',
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: ''
|
||||
})
|
||||
expect(result).toEqual({tag: 'v1.0.0', sha: 'abc123'})
|
||||
})
|
||||
|
||||
// Tags are filtered by a specified pattern when 'tagsPattern' is provided
|
||||
it('should filter tags by the specified pattern', async () => {
|
||||
jest
|
||||
.spyOn(exec, 'getExecOutput')
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'v1.0.1\nv1.0.0\nv0.9.9',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'def456',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
const result = await getPreviousGitTag({
|
||||
cwd: '.',
|
||||
tagsPattern: 'v1.*',
|
||||
tagsIgnorePattern: ''
|
||||
})
|
||||
expect(result).toEqual({tag: 'v1.0.0', sha: 'def456'})
|
||||
})
|
||||
|
||||
// Tags are excluded by a specified ignore pattern when 'tagsIgnorePattern' is provided
|
||||
it('should exclude tags by the specified ignore pattern', async () => {
|
||||
jest
|
||||
.spyOn(exec, 'getExecOutput')
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'v1.0.1\nv1.0.0\nv0.9.9',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'ghi789',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
const result = await getPreviousGitTag({
|
||||
cwd: '.',
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: 'v0.*.*'
|
||||
})
|
||||
expect(result).toEqual({tag: 'v1.0.0', sha: 'ghi789'})
|
||||
})
|
||||
|
||||
// Function executes silently when debug mode is not active
|
||||
it('should execute silently when debug mode is not active', async () => {
|
||||
jest.spyOn(core, 'isDebug').mockReturnValue(false)
|
||||
const spy = jest
|
||||
.spyOn(exec, 'getExecOutput')
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'v1.0.1\nv1.0.0',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'jkl012',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
await getPreviousGitTag({
|
||||
cwd: '.',
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: ''
|
||||
})
|
||||
expect(spy).toHaveBeenCalledWith('git', ['tag', '--sort=-creatordate'], {
|
||||
cwd: '.',
|
||||
silent: true
|
||||
})
|
||||
})
|
||||
|
||||
// No tags are available in the repository
|
||||
it('should return empty values when no tags are available in the repository', async () => {
|
||||
jest.spyOn(exec, 'getExecOutput').mockResolvedValueOnce({
|
||||
stdout: '',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
const result = await getPreviousGitTag({
|
||||
cwd: '.',
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: ''
|
||||
})
|
||||
expect(result).toEqual({tag: '', sha: ''})
|
||||
})
|
||||
|
||||
// Only one tag is available, making it impossible to find a previous tag
|
||||
it('should return empty values when only one tag is available', async () => {
|
||||
jest.spyOn(exec, 'getExecOutput').mockResolvedValueOnce({
|
||||
stdout: 'v1.0.1',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
const result = await getPreviousGitTag({
|
||||
cwd: '.',
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: ''
|
||||
})
|
||||
expect(result).toEqual({tag: '', sha: ''})
|
||||
})
|
||||
|
||||
// Provided 'tagsPattern' matches no tags
|
||||
it('should return empty values when provided tagsPattern matches no tags', async () => {
|
||||
jest.spyOn(exec, 'getExecOutput').mockResolvedValueOnce({
|
||||
stdout: 'v1.0.1\nv1.0.0',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
const result = await getPreviousGitTag({
|
||||
cwd: '.',
|
||||
tagsPattern: 'nonexistent*',
|
||||
tagsIgnorePattern: ''
|
||||
})
|
||||
expect(result).toEqual({tag: '', sha: ''})
|
||||
})
|
||||
|
||||
// Provided 'tagsIgnorePattern' excludes all tags
|
||||
it('should return empty values when provided tagsIgnorePattern excludes all tags', async () => {
|
||||
jest.spyOn(exec, 'getExecOutput').mockResolvedValueOnce({
|
||||
stdout: 'v1.0.1\nv1.0.0',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
const result = await getPreviousGitTag({
|
||||
cwd: '.',
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: 'v*'
|
||||
})
|
||||
expect(result).toEqual({tag: '', sha: ''})
|
||||
})
|
||||
|
||||
// Git commands fail and throw errors
|
||||
it('should throw an error when git commands fail', async () => {
|
||||
jest
|
||||
.spyOn(exec, 'getExecOutput')
|
||||
.mockRejectedValue(new Error('git command failed'))
|
||||
await expect(
|
||||
getPreviousGitTag({cwd: '.', tagsPattern: '*', tagsIgnorePattern: ''})
|
||||
).rejects.toThrow('git command failed')
|
||||
})
|
||||
|
||||
// Debug mode logs additional information
|
||||
it('should log additional information when debug mode is active', async () => {
|
||||
jest.spyOn(core, 'isDebug').mockReturnValue(true)
|
||||
const spy = jest
|
||||
.spyOn(exec, 'getExecOutput')
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'v1.0.1\nv1.0.0',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
.mockResolvedValueOnce({
|
||||
stdout: 'mno345',
|
||||
stderr: '',
|
||||
exitCode: 0
|
||||
})
|
||||
await getPreviousGitTag({
|
||||
cwd: '.',
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: ''
|
||||
})
|
||||
expect(spy).toHaveBeenCalledWith('git', ['tag', '--sort=-creatordate'], {
|
||||
cwd: '.',
|
||||
silent: false
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -240,7 +240,11 @@ export const getSHAForNonPullRequestEvent = async ({
|
||||
}
|
||||
} else if (isTag) {
|
||||
core.debug('Getting previous SHA for tag...')
|
||||
const {sha, tag} = await getPreviousGitTag({cwd: workingDirectory})
|
||||
const {sha, tag} = await getPreviousGitTag({
|
||||
cwd: workingDirectory,
|
||||
tagsPattern: inputs.tagsPattern,
|
||||
tagsIgnorePattern: inputs.tagsIgnorePattern
|
||||
})
|
||||
previousSha = sha
|
||||
targetBranch = tag
|
||||
} else {
|
||||
|
||||
@@ -23,5 +23,7 @@ export const DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS: Partial<Inputs> = {
|
||||
dirNamesDeletedFilesIncludeOnlyDeletedDirs: false,
|
||||
excludeSubmodules: false,
|
||||
fetchMissingHistoryMaxRetries: 10,
|
||||
usePosixPathSeparator: false
|
||||
usePosixPathSeparator: false,
|
||||
tagsPattern: '*',
|
||||
tagsIgnorePattern: ''
|
||||
}
|
||||
|
||||
@@ -57,6 +57,8 @@ export type Inputs = {
|
||||
excludeSubmodules: boolean
|
||||
fetchMissingHistoryMaxRetries?: number
|
||||
usePosixPathSeparator: boolean
|
||||
tagsPattern: string
|
||||
tagsIgnorePattern?: string
|
||||
}
|
||||
|
||||
export const getInputs = (): Inputs => {
|
||||
@@ -259,6 +261,15 @@ export const getInputs = (): Inputs => {
|
||||
}
|
||||
)
|
||||
|
||||
const tagsPattern = core.getInput('tags_pattern', {
|
||||
required: false,
|
||||
trimWhitespace: false
|
||||
})
|
||||
const tagsIgnorePattern = core.getInput('tags_ignore_pattern', {
|
||||
required: false,
|
||||
trimWhitespace: false
|
||||
})
|
||||
|
||||
const inputs: Inputs = {
|
||||
files,
|
||||
filesSeparator,
|
||||
@@ -300,6 +311,8 @@ export const getInputs = (): Inputs => {
|
||||
dirNamesDeletedFilesIncludeOnlyDeletedDirs,
|
||||
excludeSubmodules,
|
||||
usePosixPathSeparator,
|
||||
tagsPattern,
|
||||
tagsIgnorePattern,
|
||||
// End Not Supported via REST API
|
||||
dirNames,
|
||||
dirNamesExcludeCurrentDir,
|
||||
|
||||
16
src/utils.ts
16
src/utils.ts
@@ -832,9 +832,13 @@ export const cleanShaInput = async ({
|
||||
return stdout.trim()
|
||||
}
|
||||
export const getPreviousGitTag = async ({
|
||||
cwd
|
||||
cwd,
|
||||
tagsPattern,
|
||||
tagsIgnorePattern
|
||||
}: {
|
||||
cwd: string
|
||||
tagsPattern: string
|
||||
tagsIgnorePattern?: string
|
||||
}): Promise<{tag: string; sha: string}> => {
|
||||
const {stdout} = await exec.getExecOutput(
|
||||
'git',
|
||||
@@ -845,7 +849,15 @@ export const getPreviousGitTag = async ({
|
||||
}
|
||||
)
|
||||
|
||||
const tags = stdout.trim().split('\n')
|
||||
let tags = stdout.trim().split('\n')
|
||||
|
||||
if (tagsPattern) {
|
||||
tags = tags.filter(tag => mm.isMatch(tag, tagsPattern))
|
||||
}
|
||||
|
||||
if (tagsIgnorePattern) {
|
||||
tags = tags.filter(tag => !mm.isMatch(tag, tagsIgnorePattern))
|
||||
}
|
||||
|
||||
if (tags.length < 2) {
|
||||
core.warning('No previous tag found')
|
||||
|
||||
133
yarn.lock
133
yarn.lock
@@ -1111,9 +1111,9 @@
|
||||
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
|
||||
|
||||
"@types/lodash@^4.14.195":
|
||||
version "4.17.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.1.tgz#0fabfcf2f2127ef73b119d98452bd317c4a17eb8"
|
||||
integrity sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==
|
||||
version "4.17.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.4.tgz#0303b64958ee070059e3a7184048a55159fe20b7"
|
||||
integrity sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==
|
||||
|
||||
"@types/micromatch@^4.0.2":
|
||||
version "4.0.7"
|
||||
@@ -1123,9 +1123,9 @@
|
||||
"@types/braces" "*"
|
||||
|
||||
"@types/node@*", "@types/node@^20.3.2":
|
||||
version "20.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.11.tgz#c4ef00d3507000d17690643278a60dc55a9dc9be"
|
||||
integrity sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==
|
||||
version "20.12.12"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.12.tgz#7cbecdf902085cec634fdb362172dfe12b8f2050"
|
||||
integrity sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==
|
||||
dependencies:
|
||||
undici-types "~5.26.4"
|
||||
|
||||
@@ -1157,33 +1157,39 @@
|
||||
"@types/yargs-parser" "*"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^7.0.0", "@typescript-eslint/eslint-plugin@^7.0.1":
|
||||
version "7.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.8.0.tgz#c78e309fe967cb4de05b85cdc876fb95f8e01b6f"
|
||||
integrity sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz#07854a236f107bb45cbf4f62b89474cbea617f50"
|
||||
integrity sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==
|
||||
dependencies:
|
||||
"@eslint-community/regexpp" "^4.10.0"
|
||||
"@typescript-eslint/scope-manager" "7.8.0"
|
||||
"@typescript-eslint/type-utils" "7.8.0"
|
||||
"@typescript-eslint/utils" "7.8.0"
|
||||
"@typescript-eslint/visitor-keys" "7.8.0"
|
||||
debug "^4.3.4"
|
||||
"@typescript-eslint/scope-manager" "7.10.0"
|
||||
"@typescript-eslint/type-utils" "7.10.0"
|
||||
"@typescript-eslint/utils" "7.10.0"
|
||||
"@typescript-eslint/visitor-keys" "7.10.0"
|
||||
graphemer "^1.4.0"
|
||||
ignore "^5.3.1"
|
||||
natural-compare "^1.4.0"
|
||||
semver "^7.6.0"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.0.1":
|
||||
version "7.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.8.0.tgz#1e1db30c8ab832caffee5f37e677dbcb9357ddc8"
|
||||
integrity sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.10.0.tgz#e6ac1cba7bc0400a4459e7eb5b23115bd71accfb"
|
||||
integrity sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "7.8.0"
|
||||
"@typescript-eslint/types" "7.8.0"
|
||||
"@typescript-eslint/typescript-estree" "7.8.0"
|
||||
"@typescript-eslint/visitor-keys" "7.8.0"
|
||||
"@typescript-eslint/scope-manager" "7.10.0"
|
||||
"@typescript-eslint/types" "7.10.0"
|
||||
"@typescript-eslint/typescript-estree" "7.10.0"
|
||||
"@typescript-eslint/visitor-keys" "7.10.0"
|
||||
debug "^4.3.4"
|
||||
|
||||
"@typescript-eslint/scope-manager@7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz#054a27b1090199337a39cf755f83d9f2ce26546b"
|
||||
integrity sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "7.10.0"
|
||||
"@typescript-eslint/visitor-keys" "7.10.0"
|
||||
|
||||
"@typescript-eslint/scope-manager@7.8.0":
|
||||
version "7.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz#bb19096d11ec6b87fb6640d921df19b813e02047"
|
||||
@@ -1192,21 +1198,40 @@
|
||||
"@typescript-eslint/types" "7.8.0"
|
||||
"@typescript-eslint/visitor-keys" "7.8.0"
|
||||
|
||||
"@typescript-eslint/type-utils@7.8.0":
|
||||
version "7.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz#9de166f182a6e4d1c5da76e94880e91831e3e26f"
|
||||
integrity sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==
|
||||
"@typescript-eslint/type-utils@7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz#8a75accce851d0a331aa9331268ef64e9b300270"
|
||||
integrity sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree" "7.8.0"
|
||||
"@typescript-eslint/utils" "7.8.0"
|
||||
"@typescript-eslint/typescript-estree" "7.10.0"
|
||||
"@typescript-eslint/utils" "7.10.0"
|
||||
debug "^4.3.4"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/types@7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.10.0.tgz#da92309c97932a3a033762fd5faa8b067de84e3b"
|
||||
integrity sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==
|
||||
|
||||
"@typescript-eslint/types@7.8.0":
|
||||
version "7.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.8.0.tgz#1fd2577b3ad883b769546e2d1ef379f929a7091d"
|
||||
integrity sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==
|
||||
|
||||
"@typescript-eslint/typescript-estree@7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz#6dcdc5de3149916a6a599fa89dde5c471b88b8bb"
|
||||
integrity sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "7.10.0"
|
||||
"@typescript-eslint/visitor-keys" "7.10.0"
|
||||
debug "^4.3.4"
|
||||
globby "^11.1.0"
|
||||
is-glob "^4.0.3"
|
||||
minimatch "^9.0.4"
|
||||
semver "^7.6.0"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/typescript-estree@7.8.0":
|
||||
version "7.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz#b028a9226860b66e623c1ee55cc2464b95d2987c"
|
||||
@@ -1221,7 +1246,17 @@
|
||||
semver "^7.6.0"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/utils@7.8.0", "@typescript-eslint/utils@^6.0.0 || ^7.0.0":
|
||||
"@typescript-eslint/utils@7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.10.0.tgz#8ee43e5608c9f439524eaaea8de5b358b15c51b3"
|
||||
integrity sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.4.0"
|
||||
"@typescript-eslint/scope-manager" "7.10.0"
|
||||
"@typescript-eslint/types" "7.10.0"
|
||||
"@typescript-eslint/typescript-estree" "7.10.0"
|
||||
|
||||
"@typescript-eslint/utils@^6.0.0 || ^7.0.0":
|
||||
version "7.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.8.0.tgz#57a79f9c0c0740ead2f622e444cfaeeb9fd047cd"
|
||||
integrity sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==
|
||||
@@ -1234,6 +1269,14 @@
|
||||
"@typescript-eslint/typescript-estree" "7.8.0"
|
||||
semver "^7.6.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz#2af2e91e73a75dd6b70b4486c48ae9d38a485a78"
|
||||
integrity sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "7.10.0"
|
||||
eslint-visitor-keys "^3.4.3"
|
||||
|
||||
"@typescript-eslint/visitor-keys@7.8.0":
|
||||
version "7.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz#7285aab991da8bee411a42edbd5db760d22fdd91"
|
||||
@@ -1573,9 +1616,9 @@ camelcase@^6.2.0:
|
||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||
|
||||
caniuse-lite@^1.0.30001587:
|
||||
version "1.0.30001616"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001616.tgz#4342712750d35f71ebba9fcac65e2cf8870013c3"
|
||||
integrity sha512-RHVYKov7IcdNjVHJFNY/78RdG4oGVjbayxv8u5IO74Wv7Hlq4PnJE6mo/OjFijjVFNy5ijnCt6H3IIo4t+wfEw==
|
||||
version "1.0.30001617"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz#809bc25f3f5027ceb33142a7d6c40759d7a901eb"
|
||||
integrity sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==
|
||||
|
||||
chalk@^2.4.2:
|
||||
version "2.4.2"
|
||||
@@ -1805,9 +1848,9 @@ doctrine@^3.0.0:
|
||||
esutils "^2.0.2"
|
||||
|
||||
electron-to-chromium@^1.4.668:
|
||||
version "1.4.756"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.756.tgz#7b872ed8c8c5bee571be771730225d6d2a37fe45"
|
||||
integrity sha512-RJKZ9+vEBMeiPAvKNWyZjuYyUqMndcP1f335oHqn3BEQbs2NFtVrnK5+6Xg5wSM9TknNNpWghGDUCKGYF+xWXw==
|
||||
version "1.4.763"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.763.tgz#64f2041ed496fd6fc710b9be806fe91da9334f91"
|
||||
integrity sha512-k4J8NrtJ9QrvHLRo8Q18OncqBCB7tIUyqxRcJnlonQ0ioHKYB988GcDFF3ZePmnb8eHEopDs/wPHR/iGAFgoUQ==
|
||||
|
||||
emittery@^0.13.1:
|
||||
version "0.13.1"
|
||||
@@ -3369,13 +3412,6 @@ lru-cache@^5.1.1:
|
||||
dependencies:
|
||||
yallist "^3.0.2"
|
||||
|
||||
lru-cache@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
|
||||
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
make-dir@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
|
||||
@@ -3821,11 +3857,9 @@ semver@^6.3.0, semver@^6.3.1:
|
||||
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
||||
|
||||
semver@^7.5.3, semver@^7.5.4, semver@^7.6.0:
|
||||
version "7.6.0"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
|
||||
integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
|
||||
dependencies:
|
||||
lru-cache "^6.0.0"
|
||||
version "7.6.2"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
|
||||
integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
|
||||
|
||||
set-function-length@^1.2.1:
|
||||
version "1.2.2"
|
||||
@@ -4320,11 +4354,6 @@ yallist@^3.0.2:
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
|
||||
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
|
||||
|
||||
yallist@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
||||
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
|
||||
|
||||
yaml@^2.3.1:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362"
|
||||
|
||||
Reference in New Issue
Block a user