diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a3a1c4a..e15b060c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ _This release is scheduled to be released on 2023-04-01._ - Added increments for hourly forecasts in weather module (#2996) - Added tests for hourly weather forecast +- Added possibility to ignore MagicMirror repo in updatenotification module ### Removed diff --git a/modules/default/updatenotification/git_helper.js b/modules/default/updatenotification/git_helper.js index 80cb7532..e793ebc9 100644 --- a/modules/default/updatenotification/git_helper.js +++ b/modules/default/updatenotification/git_helper.js @@ -36,7 +36,7 @@ class GitHelper { async add(moduleName) { let moduleFolder = BASE_DIR; - if (moduleName !== "default") { + if (moduleName !== "MagicMirror") { moduleFolder = `${moduleFolder}modules/${moduleName}`; } @@ -68,7 +68,7 @@ class GitHelper { isBehindInStatus: false }; - if (repo.module === "default") { + if (repo.module === "MagicMirror") { // the hash is only needed for the mm repo const { stderr, stdout } = await this.execShell(`cd ${repo.folder} && git rev-parse HEAD`); @@ -121,7 +121,7 @@ class GitHelper { return gitInfo; } - const { stderr } = await this.execShell(`cd ${repo.folder} && git fetch --dry-run`); + const { stderr } = await this.execShell(`cd ${repo.folder} && git fetch -n --dry-run`); // example output: // From https://github.com/MichMich/MagicMirror @@ -129,14 +129,16 @@ class GitHelper { // here the result is in stderr (this is a git default, don't ask why ...) const matches = stderr.match(this.getRefRegex(gitInfo.current)); - if (!matches || !matches[0]) { - // no refs found, nothing to do - return; + // this is the default if there was no match from "git fetch -n --dry-run". + // Its a fallback because if there was a real "git fetch", the above "git fetch -n --dry-run" would deliver nothing. + let refDiff = gitInfo.current + "..origin/" + gitInfo.current; + if (matches && matches[0]) { + refDiff = matches[0]; } // get behind with refs try { - const { stdout } = await this.execShell(`cd ${repo.folder} && git rev-list --ancestry-path --count ${matches[0]}`); + const { stdout } = await this.execShell(`cd ${repo.folder} && git rev-list --ancestry-path --count ${refDiff}`); gitInfo.behind = parseInt(stdout); return gitInfo; diff --git a/modules/default/updatenotification/node_helper.js b/modules/default/updatenotification/node_helper.js index a0e68305..9db4354f 100644 --- a/modules/default/updatenotification/node_helper.js +++ b/modules/default/updatenotification/node_helper.js @@ -19,7 +19,9 @@ module.exports = NodeHelper.create({ } } - await this.gitHelper.add("default"); + if (!this.ignoreUpdateChecking("MagicMirror")) { + await this.gitHelper.add("MagicMirror"); + } }, async socketNotificationReceived(notification, payload) { diff --git a/modules/default/updatenotification/updatenotification.js b/modules/default/updatenotification/updatenotification.js index 7b4945c9..602e76f4 100644 --- a/modules/default/updatenotification/updatenotification.js +++ b/modules/default/updatenotification/updatenotification.js @@ -77,7 +77,7 @@ Module.register("updatenotification", { addFilters() { this.nunjucksEnvironment().addFilter("diffLink", (text, status) => { - if (status.module !== "default") { + if (status.module !== "MagicMirror") { return text; } diff --git a/modules/default/updatenotification/updatenotification.njk b/modules/default/updatenotification/updatenotification.njk index 3149816f..77d79754 100644 --- a/modules/default/updatenotification/updatenotification.njk +++ b/modules/default/updatenotification/updatenotification.njk @@ -3,7 +3,7 @@
- {% set mainTextLabel = "UPDATE_NOTIFICATION" if name === "default" else "UPDATE_NOTIFICATION_MODULE" %} + {% set mainTextLabel = "UPDATE_NOTIFICATION" if name === "MagicMirror" else "UPDATE_NOTIFICATION_MODULE" %} {{ mainTextLabel | translate({MODULE_NAME: name}) }}
diff --git a/tests/unit/functions/__snapshots__/updatenotification_spec.js.snap b/tests/unit/functions/__snapshots__/updatenotification_spec.js.snap index c5b67f59..efe2a5a5 100644 --- a/tests/unit/functions/__snapshots__/updatenotification_spec.js.snap +++ b/tests/unit/functions/__snapshots__/updatenotification_spec.js.snap @@ -11,24 +11,24 @@ exports[`Updatenotification custom module returns status information without has } `; -exports[`Updatenotification default returns status information 1`] = ` +exports[`Updatenotification MagicMirror returns status information 1`] = ` { "behind": 5, "current": "develop", "hash": "332e429a41f1a2339afd4f0ae96dd125da6beada", "isBehindInStatus": false, - "module": "default", + "module": "MagicMirror", "tracking": "origin/develop", } `; -exports[`Updatenotification default returns status information early if isBehindInStatus 1`] = ` +exports[`Updatenotification MagicMirror returns status information early if isBehindInStatus 1`] = ` { "behind": 5, "current": "develop", "hash": "332e429a41f1a2339afd4f0ae96dd125da6beada", "isBehindInStatus": true, - "module": "default", + "module": "MagicMirror", "tracking": "origin/develop", } `; diff --git a/tests/unit/functions/updatenotification_spec.js b/tests/unit/functions/updatenotification_spec.js index e1de96ce..c3369a54 100644 --- a/tests/unit/functions/updatenotification_spec.js +++ b/tests/unit/functions/updatenotification_spec.js @@ -57,7 +57,7 @@ describe("Updatenotification", () => { return { stdout: gitRevParseOut, stderr: gitRevParseErr }; } else if (command.includes("git status -sb")) { return { stdout: gitStatusOut, stderr: gitStatusErr }; - } else if (command.includes("git fetch --dry-run")) { + } else if (command.includes("git fetch -n --dry-run")) { return { stdout: gitFetchOut, stderr: gitFetchErr }; } else if (command.includes("git rev-list --ancestry-path --count")) { return { stdout: gitRevListOut, stderr: gitRevListErr }; @@ -71,8 +71,8 @@ describe("Updatenotification", () => { jest.clearAllMocks(); }); - describe("default", () => { - const moduleName = "default"; + describe("MagicMirror", () => { + const moduleName = "MagicMirror"; beforeEach(async () => { gitRemoteOut = "origin\tgit@github.com:MichMich/MagicMirror.git (fetch)\norigin\tgit@github.com:MichMich/MagicMirror.git (push)\n"; @@ -108,13 +108,6 @@ describe("Updatenotification", () => { const { error } = require("logger"); expect(error).toHaveBeenCalledWith(`Failed to retrieve repo info for ${moduleName}: Failed to retrieve status`); }); - - it("excludes repo if refs don't match regex", async () => { - gitFetchErr = ""; - - const repos = await gitHelper.getRepos(); - expect(repos.length).toBe(0); - }); }); describe("custom module", () => {