refs #5901 Second commit

This commit is contained in:
Guillermo Bonet 2023-07-31 10:28:03 +02:00
parent f3469bd61b
commit 66192f2505
4 changed files with 96 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
\node_modules

30
main.js Normal file
View File

@ -0,0 +1,30 @@
require('simple-git');
const { promisify } = require('util');
// Local path of the git repository
const repoPath = '/home/username/Projects/project-name';
const git = simpleGit(repoPath);
const gitBranch = promisify(git.branch.bind(git));
const gitPush = promisify(git.push.bind(git));
async function main() {
try {
await git.fetch(['--prune']);
let branches = (await gitBranch(['-r', '--merged', 'HEAD'])).all;
const trunkBranches = ["test", "master", "dev"];
branches = branches.map((branch) => {return branch.substring(7, branch.length)});
branches = branches.filter((element) => !trunkBranches.includes(element));
for (let branch of branches) {
await gitPush(['origin', '--delete', branch]);
console.log(`Branch deleted: ${branch}`);
}
console.log('Merged branches deleted successfully!');
} catch (err) {
console.error('[Error]', err);
}
}
main();

60
package-lock.json generated Normal file
View File

@ -0,0 +1,60 @@
{
"name": "git-branch-clean",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"simple-git": "^3.19.1"
}
},
"node_modules/@kwsites/file-exists": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz",
"integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==",
"dependencies": {
"debug": "^4.1.1"
}
},
"node_modules/@kwsites/promise-deferred": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz",
"integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw=="
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/simple-git": {
"version": "3.19.1",
"resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.19.1.tgz",
"integrity": "sha512-Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w==",
"dependencies": {
"@kwsites/file-exists": "^1.1.1",
"@kwsites/promise-deferred": "^1.1.1",
"debug": "^4.3.4"
},
"funding": {
"type": "github",
"url": "https://github.com/steveukx/git-js?sponsor=1"
}
}
}
}

5
package.json Normal file
View File

@ -0,0 +1,5 @@
{
"dependencies": {
"simple-git": "^3.19.1"
}
}