From 9825184a0aec625d59c8e5bcc122734a77e38e7b Mon Sep 17 00:00:00 2001 From: Chuan-kai Lin Date: Fri, 21 Mar 2025 10:53:21 -0700 Subject: [PATCH] Add getFileOidsUnderPath() tests --- lib/git-utils.js | 24 ++++++----- lib/git-utils.js.map | 2 +- lib/git-utils.test.js | 71 ++++++++++++++++++++++++++++++++ lib/git-utils.test.js.map | 2 +- src/git-utils.test.ts | 87 +++++++++++++++++++++++++++++++++++++++ src/git-utils.ts | 7 +++- 6 files changed, 179 insertions(+), 14 deletions(-) diff --git a/lib/git-utils.js b/lib/git-utils.js index 30d998ded..f45fb7dff 100644 --- a/lib/git-utils.js +++ b/lib/git-utils.js @@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -exports.getFileOidsUnderPath = exports.getGitRoot = exports.decodeGitFilePath = exports.gitRepack = exports.gitFetch = exports.deepenGitHistory = exports.determineBaseBranchHeadCommitOid = exports.getCommitOid = void 0; +exports.getFileOidsUnderPath = exports.getGitRoot = exports.decodeGitFilePath = exports.gitRepack = exports.gitFetch = exports.deepenGitHistory = exports.determineBaseBranchHeadCommitOid = exports.getCommitOid = exports.runGitCommand = void 0; exports.getRef = getRef; exports.isAnalyzingDefaultBranch = isAnalyzingDefaultBranch; const core = __importStar(require("@actions/core")); @@ -41,7 +41,7 @@ const toolrunner = __importStar(require("@actions/exec/lib/toolrunner")); const io = __importStar(require("@actions/io")); const actions_util_1 = require("./actions-util"); const util_1 = require("./util"); -async function runGitCommand(workingDirectory, args, customErrorMessage) { +const runGitCommand = async function (workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; core.debug(`Running git command: git ${args.join(" ")}`); @@ -69,7 +69,8 @@ async function runGitCommand(workingDirectory, args, customErrorMessage) { core.info(`git call failed. ${customErrorMessage} Error: ${reason}`); throw error; } -} +}; +exports.runGitCommand = runGitCommand; /** * Gets the SHA of the commit that is currently checked out. */ @@ -82,7 +83,7 @@ const getCommitOid = async function (checkoutPath, ref = "HEAD") { // Even if this does go wrong, it's not a huge problem for the alerts to // reported on the merge commit. try { - const stdout = await runGitCommand(checkoutPath, ["rev-parse", ref], "Continuing with commit SHA from user input or environment."); + const stdout = await (0, exports.runGitCommand)(checkoutPath, ["rev-parse", ref], "Continuing with commit SHA from user input or environment."); return stdout.trim(); } catch { @@ -106,7 +107,7 @@ const determineBaseBranchHeadCommitOid = async function (checkoutPathOverride) { let commitOid = ""; let baseOid = ""; let headOid = ""; - const stdout = await runGitCommand(checkoutPath, ["show", "-s", "--format=raw", mergeSha], "Will calculate the base branch SHA on the server."); + const stdout = await (0, exports.runGitCommand)(checkoutPath, ["show", "-s", "--format=raw", mergeSha], "Will calculate the base branch SHA on the server."); for (const data of stdout.split("\n")) { if (data.startsWith("commit ") && commitOid === "") { commitOid = data.substring(7); @@ -141,7 +142,7 @@ exports.determineBaseBranchHeadCommitOid = determineBaseBranchHeadCommitOid; */ const deepenGitHistory = async function () { try { - await runGitCommand((0, actions_util_1.getOptionalInput)("checkout_path"), [ + await (0, exports.runGitCommand)((0, actions_util_1.getOptionalInput)("checkout_path"), [ "fetch", "origin", "HEAD", @@ -163,7 +164,7 @@ exports.deepenGitHistory = deepenGitHistory; */ const gitFetch = async function (branch, extraFlags) { try { - await runGitCommand((0, actions_util_1.getOptionalInput)("checkout_path"), ["fetch", "--no-tags", ...extraFlags, "origin", `${branch}:${branch}`], `Cannot fetch ${branch}.`); + await (0, exports.runGitCommand)((0, actions_util_1.getOptionalInput)("checkout_path"), ["fetch", "--no-tags", ...extraFlags, "origin", `${branch}:${branch}`], `Cannot fetch ${branch}.`); } catch { // Errors are already logged by runGitCommand() @@ -178,7 +179,7 @@ exports.gitFetch = gitFetch; */ const gitRepack = async function (flags) { try { - await runGitCommand((0, actions_util_1.getOptionalInput)("checkout_path"), ["repack", ...flags], "Cannot repack the repository."); + await (0, exports.runGitCommand)((0, actions_util_1.getOptionalInput)("checkout_path"), ["repack", ...flags], "Cannot repack the repository."); } catch { // Errors are already logged by runGitCommand() @@ -238,7 +239,7 @@ exports.decodeGitFilePath = decodeGitFilePath; */ const getGitRoot = async function (sourceRoot) { try { - const stdout = await runGitCommand(sourceRoot, ["rev-parse", "--show-toplevel"], `Cannot find Git repository root from the source root ${sourceRoot}.`); + const stdout = await (0, exports.runGitCommand)(sourceRoot, ["rev-parse", "--show-toplevel"], `Cannot find Git repository root from the source root ${sourceRoot}.`); return stdout.trim(); } catch { @@ -260,8 +261,11 @@ exports.getGitRoot = getGitRoot; const getFileOidsUnderPath = async function (basePath) { // Without the --full-name flag, the path is relative to the current working // directory of the git command, which is basePath. - const stdout = await runGitCommand(basePath, ["ls-files", "--recurse-submodules", "--format=%(objectname)_%(path)"], "Cannot list Git OIDs of tracked files."); + const stdout = await (0, exports.runGitCommand)(basePath, ["ls-files", "--recurse-submodules", "--format=%(objectname)_%(path)"], "Cannot list Git OIDs of tracked files."); const fileOidMap = {}; + // With --format=%(objectname)_%(path), the output is a list of lines like: + // 30d998ded095371488be3a729eb61d86ed721a18_lib/git-utils.js + // d89514599a9a99f22b4085766d40af7b99974827_lib/git-utils.js.map const regex = /^([0-9a-f]{40})_(.+)$/; for (const line of stdout.split("\n")) { if (line) { diff --git a/lib/git-utils.js.map b/lib/git-utils.js.map index d89514599..006495eb7 100644 --- a/lib/git-utils.js.map +++ b/lib/git-utils.js.map @@ -1 +1 @@ -{"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../src/git-utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../src/git-utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/git-utils.test.js b/lib/git-utils.test.js index ce78e3dd3..adf7f0989 100644 --- a/lib/git-utils.test.js +++ b/lib/git-utils.test.js @@ -265,4 +265,75 @@ const util_1 = require("./util"); t.deepEqual(gitUtils.decodeGitFilePath('"foo\\vbar"'), "foo\vbar"); t.deepEqual(gitUtils.decodeGitFilePath('"\\a\\b\\f\\n\\r\\t\\v"'), "\x07\b\f\n\r\t\v"); }); +(0, ava_1.default)("getFileOidsUnderPath returns correct file mapping", async (t) => { + const runGitCommandStub = sinon + .stub(gitUtils, "runGitCommand") + .resolves("30d998ded095371488be3a729eb61d86ed721a18_lib/git-utils.js\n" + + "d89514599a9a99f22b4085766d40af7b99974827_lib/git-utils.js.map\n" + + "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96_src/git-utils.ts"); + try { + const result = await gitUtils.getFileOidsUnderPath("/fake/path"); + t.deepEqual(result, { + "lib/git-utils.js": "30d998ded095371488be3a729eb61d86ed721a18", + "lib/git-utils.js.map": "d89514599a9a99f22b4085766d40af7b99974827", + "src/git-utils.ts": "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96", + }); + t.deepEqual(runGitCommandStub.firstCall.args, [ + "/fake/path", + ["ls-files", "--recurse-submodules", "--format=%(objectname)_%(path)"], + "Cannot list Git OIDs of tracked files.", + ]); + } + finally { + runGitCommandStub.restore(); + } +}); +(0, ava_1.default)("getFileOidsUnderPath handles quoted paths", async (t) => { + const runGitCommandStub = sinon + .stub(gitUtils, "runGitCommand") + .resolves("30d998ded095371488be3a729eb61d86ed721a18_lib/normal-file.js\n" + + 'd89514599a9a99f22b4085766d40af7b99974827_"lib/file with spaces.js"\n' + + 'a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96_"lib/file\\twith\\ttabs.js"'); + try { + const result = await gitUtils.getFileOidsUnderPath("/fake/path"); + t.deepEqual(result, { + "lib/normal-file.js": "30d998ded095371488be3a729eb61d86ed721a18", + "lib/file with spaces.js": "d89514599a9a99f22b4085766d40af7b99974827", + "lib/file\twith\ttabs.js": "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96", + }); + } + finally { + runGitCommandStub.restore(); + } +}); +(0, ava_1.default)("getFileOidsUnderPath handles empty output", async (t) => { + const runGitCommandStub = sinon + .stub(gitUtils, "runGitCommand") + .resolves(""); + try { + const result = await gitUtils.getFileOidsUnderPath("/fake/path"); + t.deepEqual(result, {}); + } + finally { + runGitCommandStub.restore(); + } +}); +(0, ava_1.default)("getFileOidsUnderPath throws on unexpected output format", async (t) => { + const runGitCommandStub = sinon + .stub(gitUtils, "runGitCommand") + .resolves("30d998ded095371488be3a729eb61d86ed721a18_lib/git-utils.js\n" + + "invalid-line-format\n" + + "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96_src/git-utils.ts"); + try { + await t.throwsAsync(async () => { + await gitUtils.getFileOidsUnderPath("/fake/path"); + }, { + instanceOf: Error, + message: 'Unexpected "git ls-files" output: invalid-line-format', + }); + } + finally { + runGitCommandStub.restore(); + } +}); //# sourceMappingURL=git-utils.test.js.map \ No newline at end of file diff --git a/lib/git-utils.test.js.map b/lib/git-utils.test.js.map index 1b7f7d2db..a4684e6ff 100644 --- a/lib/git-utils.test.js.map +++ b/lib/git-utils.test.js.map @@ -1 +1 @@ -{"version":3,"file":"git-utils.test.js","sourceRoot":"","sources":["../src/git-utils.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"git-utils.test.js","sourceRoot":"","sources":["../src/git-utils.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAE7B,oDAAsC;AACtC,8CAAuB;AACvB,6CAA+B;AAE/B,4DAA8C;AAC9C,sDAAwC;AACxC,mDAA+D;AAC/D,iCAAoC;AAEpC,IAAA,0BAAU,EAAC,aAAI,CAAC,CAAC;AAEjB,IAAA,aAAI,EAAC,qCAAqC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACtD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,+DAA+D,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAChF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,mBAAmB,CAAC;QACxC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;QAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACtD,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yGAAyG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1H,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,mBAAmB,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACtD,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7D,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,kEAAkE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACnF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACtD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC3C,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,oEAAoE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACrF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3E,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACrE,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhE,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACtD,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,sBAAsB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,iEAAiE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAClF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACvC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;QAEvC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yEAAyE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1F,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,mBAAmB,CAAC;QACxC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,kBAAkB,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;QAEvC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gEAAgE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3E,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAErE,MAAM,CAAC,CAAC,WAAW,CACjB,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC,EACD;YACE,UAAU,EAAE,KAAK;YACjB,OAAO,EACL,+DAA+D;SAClE,CACF,CAAC;QACF,sBAAsB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gEAAgE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;QACzC,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3E,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhE,MAAM,CAAC,CAAC,WAAW,CACjB,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC,EACD;YACE,UAAU,EAAE,KAAK;YACjB,OAAO,EACL,+DAA+D;SAClE,CACF,CAAC;QACF,sBAAsB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,GAAG,MAAM,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,wBAAwB,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,GAAG,OAAO,CAAC;IAEnE,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAChC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CACd,OAAO,EACP,IAAI,CAAC,SAAS,CAAC;YACb,UAAU,EAAE;gBACV,cAAc,EAAE,MAAM;aACvB;SACF,CAAC,CACH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;QACnC,CAAC,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,wBAAwB,EAAE,EAAE,IAAI,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,wBAAwB,EAAE,EAAE,IAAI,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,wBAAwB,EAAE,EAAE,KAAK,CAAC,CAAC;QAE9D,EAAE,CAAC,aAAa,CACd,OAAO,EACP,IAAI,CAAC,SAAS,CAAC;YACb,QAAQ,EAAE,WAAW;SACtB,CAAC,CACH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,wBAAwB,EAAE,EAAE,IAAI,CAAC,CAAC;QAE7D,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3E,sBAAsB;aACnB,QAAQ,CAAC,KAAK,CAAC;aACf,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QACzC,sBAAsB;aACnB,QAAQ,CAAC,KAAK,CAAC;aACf,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,wBAAwB,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9D,sBAAsB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,kDAAkD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,0CAA0C,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;IAC1E,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEnC,QAAQ,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,qDAAqD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,cAAc,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,0CAA0C,CAAC;IAEvE,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAChC,MAAM,QAAQ,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC,SAAS,CACT,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAC1B,4EAA4E;QAC1E,kFAAkF,CACrF,CAAC;IAEF,QAAQ,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,8CAA8C,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,cAAc,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,0CAA0C,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAC3C,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC,MAAM,CACN,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CACnC,4EAA4E,CAC7E,CACF,CAAC;IACF,CAAC,CAAC,MAAM,CACN,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAClC,kFAAkF,CACnF,CACF,CAAC;IAEF,QAAQ,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,oCAAoC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACrD,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,SAAS,CACT,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,EACnD,uBAAuB,CACxB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,kCAAkC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACnD,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,CAAC;IACvE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC,CAAC,SAAS,CACT,QAAQ,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,EACrD,kBAAkB,CACnB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,mDAAmD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACpE,MAAM,iBAAiB,GAAG,KAAK;SAC5B,IAAI,CAAC,QAAe,EAAE,eAAe,CAAC;SACtC,QAAQ,CACP,6DAA6D;QAC3D,iEAAiE;QACjE,2DAA2D,CAC9D,CAAC;IAEJ,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAEjE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE;YAClB,kBAAkB,EAAE,0CAA0C;YAC9D,sBAAsB,EAAE,0CAA0C;YAClE,kBAAkB,EAAE,0CAA0C;SAC/D,CAAC,CAAC;QAEH,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE;YAC5C,YAAY;YACZ,CAAC,UAAU,EAAE,sBAAsB,EAAE,gCAAgC,CAAC;YACtE,wCAAwC;SACzC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2CAA2C,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC5D,MAAM,iBAAiB,GAAG,KAAK;SAC5B,IAAI,CAAC,QAAe,EAAE,eAAe,CAAC;SACtC,QAAQ,CACP,+DAA+D;QAC7D,sEAAsE;QACtE,sEAAsE,CACzE,CAAC;IAEJ,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAEjE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE;YAClB,oBAAoB,EAAE,0CAA0C;YAChE,yBAAyB,EAAE,0CAA0C;YACrE,yBAAyB,EAAE,0CAA0C;SACtE,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2CAA2C,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC5D,MAAM,iBAAiB,GAAG,KAAK;SAC5B,IAAI,CAAC,QAAe,EAAE,eAAe,CAAC;SACtC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACjE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;YAAS,CAAC;QACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yDAAyD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1E,MAAM,iBAAiB,GAAG,KAAK;SAC5B,IAAI,CAAC,QAAe,EAAE,eAAe,CAAC;SACtC,QAAQ,CACP,6DAA6D;QAC3D,uBAAuB;QACvB,2DAA2D,CAC9D,CAAC;IAEJ,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,WAAW,CACjB,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACpD,CAAC,EACD;YACE,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,uDAAuD;SACjE,CACF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/git-utils.test.ts b/src/git-utils.test.ts index 5c58587dd..06837e022 100644 --- a/src/git-utils.test.ts +++ b/src/git-utils.test.ts @@ -305,3 +305,90 @@ test("decodeGitFilePath quoted strings", async (t) => { "\x07\b\f\n\r\t\v", ); }); + +test("getFileOidsUnderPath returns correct file mapping", async (t) => { + const runGitCommandStub = sinon + .stub(gitUtils as any, "runGitCommand") + .resolves( + "30d998ded095371488be3a729eb61d86ed721a18_lib/git-utils.js\n" + + "d89514599a9a99f22b4085766d40af7b99974827_lib/git-utils.js.map\n" + + "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96_src/git-utils.ts", + ); + + try { + const result = await gitUtils.getFileOidsUnderPath("/fake/path"); + + t.deepEqual(result, { + "lib/git-utils.js": "30d998ded095371488be3a729eb61d86ed721a18", + "lib/git-utils.js.map": "d89514599a9a99f22b4085766d40af7b99974827", + "src/git-utils.ts": "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96", + }); + + t.deepEqual(runGitCommandStub.firstCall.args, [ + "/fake/path", + ["ls-files", "--recurse-submodules", "--format=%(objectname)_%(path)"], + "Cannot list Git OIDs of tracked files.", + ]); + } finally { + runGitCommandStub.restore(); + } +}); + +test("getFileOidsUnderPath handles quoted paths", async (t) => { + const runGitCommandStub = sinon + .stub(gitUtils as any, "runGitCommand") + .resolves( + "30d998ded095371488be3a729eb61d86ed721a18_lib/normal-file.js\n" + + 'd89514599a9a99f22b4085766d40af7b99974827_"lib/file with spaces.js"\n' + + 'a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96_"lib/file\\twith\\ttabs.js"', + ); + + try { + const result = await gitUtils.getFileOidsUnderPath("/fake/path"); + + t.deepEqual(result, { + "lib/normal-file.js": "30d998ded095371488be3a729eb61d86ed721a18", + "lib/file with spaces.js": "d89514599a9a99f22b4085766d40af7b99974827", + "lib/file\twith\ttabs.js": "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96", + }); + } finally { + runGitCommandStub.restore(); + } +}); + +test("getFileOidsUnderPath handles empty output", async (t) => { + const runGitCommandStub = sinon + .stub(gitUtils as any, "runGitCommand") + .resolves(""); + + try { + const result = await gitUtils.getFileOidsUnderPath("/fake/path"); + t.deepEqual(result, {}); + } finally { + runGitCommandStub.restore(); + } +}); + +test("getFileOidsUnderPath throws on unexpected output format", async (t) => { + const runGitCommandStub = sinon + .stub(gitUtils as any, "runGitCommand") + .resolves( + "30d998ded095371488be3a729eb61d86ed721a18_lib/git-utils.js\n" + + "invalid-line-format\n" + + "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96_src/git-utils.ts", + ); + + try { + await t.throwsAsync( + async () => { + await gitUtils.getFileOidsUnderPath("/fake/path"); + }, + { + instanceOf: Error, + message: 'Unexpected "git ls-files" output: invalid-line-format', + }, + ); + } finally { + runGitCommandStub.restore(); + } +}); diff --git a/src/git-utils.ts b/src/git-utils.ts index a3a699d3a..837124027 100644 --- a/src/git-utils.ts +++ b/src/git-utils.ts @@ -9,7 +9,7 @@ import { } from "./actions-util"; import { ConfigurationError, getRequiredEnvParam } from "./util"; -async function runGitCommand( +export const runGitCommand = async function ( workingDirectory: string | undefined, args: string[], customErrorMessage: string, @@ -40,7 +40,7 @@ async function runGitCommand( core.info(`git call failed. ${customErrorMessage} Error: ${reason}`); throw error; } -} +}; /** * Gets the SHA of the commit that is currently checked out. @@ -275,6 +275,9 @@ export const getFileOidsUnderPath = async function ( ); const fileOidMap: { [key: string]: string } = {}; + // With --format=%(objectname)_%(path), the output is a list of lines like: + // 30d998ded095371488be3a729eb61d86ed721a18_lib/git-utils.js + // d89514599a9a99f22b4085766d40af7b99974827_lib/git-utils.js.map const regex = /^([0-9a-f]{40})_(.+)$/; for (const line of stdout.split("\n")) { if (line) {