@release-change/git 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +15 -0
- package/dist/add.d.ts +9 -0
- package/dist/add.d.ts.map +1 -0
- package/dist/add.js +21 -0
- package/dist/add.js.map +1 -0
- package/dist/cancel-commits-since-ref.d.ts +8 -0
- package/dist/cancel-commits-since-ref.d.ts.map +1 -0
- package/dist/cancel-commits-since-ref.js +40 -0
- package/dist/cancel-commits-since-ref.js.map +1 -0
- package/dist/check-authorisation.d.ts +8 -0
- package/dist/check-authorisation.d.ts.map +1 -0
- package/dist/check-authorisation.js +36 -0
- package/dist/check-authorisation.js.map +1 -0
- package/dist/check-branch.d.ts +8 -0
- package/dist/check-branch.d.ts.map +1 -0
- package/dist/check-branch.js +37 -0
- package/dist/check-branch.js.map +1 -0
- package/dist/check-push-permissions.d.ts +8 -0
- package/dist/check-push-permissions.d.ts.map +1 -0
- package/dist/check-push-permissions.js +30 -0
- package/dist/check-push-permissions.js.map +1 -0
- package/dist/check-repository.d.ts +10 -0
- package/dist/check-repository.d.ts.map +1 -0
- package/dist/check-repository.js +28 -0
- package/dist/check-repository.js.map +1 -0
- package/dist/commit.d.ts +9 -0
- package/dist/commit.d.ts.map +1 -0
- package/dist/commit.js +21 -0
- package/dist/commit.js.map +1 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -0
- package/dist/create-tag.d.ts +9 -0
- package/dist/create-tag.d.ts.map +1 -0
- package/dist/create-tag.js +35 -0
- package/dist/create-tag.js.map +1 -0
- package/dist/get-all-tags.d.ts +8 -0
- package/dist/get-all-tags.d.ts.map +1 -0
- package/dist/get-all-tags.js +28 -0
- package/dist/get-all-tags.js.map +1 -0
- package/dist/get-branch-name.d.ts +10 -0
- package/dist/get-branch-name.d.ts.map +1 -0
- package/dist/get-branch-name.js +33 -0
- package/dist/get-branch-name.js.map +1 -0
- package/dist/get-commits-since-ref.d.ts +8 -0
- package/dist/get-commits-since-ref.d.ts.map +1 -0
- package/dist/get-commits-since-ref.js +50 -0
- package/dist/get-commits-since-ref.js.map +1 -0
- package/dist/get-current-commit-id.d.ts +7 -0
- package/dist/get-current-commit-id.d.ts.map +1 -0
- package/dist/get-current-commit-id.js +11 -0
- package/dist/get-current-commit-id.js.map +1 -0
- package/dist/get-latest-valid-tag.d.ts +9 -0
- package/dist/get-latest-valid-tag.d.ts.map +1 -0
- package/dist/get-latest-valid-tag.js +52 -0
- package/dist/get-latest-valid-tag.js.map +1 -0
- package/dist/get-remote-name.d.ts +8 -0
- package/dist/get-remote-name.d.ts.map +1 -0
- package/dist/get-remote-name.js +24 -0
- package/dist/get-remote-name.js.map +1 -0
- package/dist/get-tracked-repositories.d.ts +8 -0
- package/dist/get-tracked-repositories.d.ts.map +1 -0
- package/dist/get-tracked-repositories.js +14 -0
- package/dist/get-tracked-repositories.js.map +1 -0
- package/dist/git.types.d.ts +5 -0
- package/dist/git.types.d.ts.map +1 -0
- package/dist/git.types.js +2 -0
- package/dist/git.types.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/is-branch-up-to-date.d.ts +9 -0
- package/dist/is-branch-up-to-date.d.ts.map +1 -0
- package/dist/is-branch-up-to-date.js +23 -0
- package/dist/is-branch-up-to-date.js.map +1 -0
- package/dist/is-git-repository.d.ts +10 -0
- package/dist/is-git-repository.d.ts.map +1 -0
- package/dist/is-git-repository.js +22 -0
- package/dist/is-git-repository.js.map +1 -0
- package/dist/push.d.ts +9 -0
- package/dist/push.d.ts.map +1 -0
- package/dist/push.js +45 -0
- package/dist/push.js.map +1 -0
- package/dist/remove-tag-on-remote-repository.d.ts +8 -0
- package/dist/remove-tag-on-remote-repository.d.ts.map +1 -0
- package/dist/remove-tag-on-remote-repository.js +40 -0
- package/dist/remove-tag-on-remote-repository.js.map +1 -0
- package/dist/remove-tag.d.ts +8 -0
- package/dist/remove-tag.d.ts.map +1 -0
- package/dist/remove-tag.js +40 -0
- package/dist/remove-tag.js.map +1 -0
- package/dist/set-branch-name.d.ts +11 -0
- package/dist/set-branch-name.d.ts.map +1 -0
- package/dist/set-branch-name.js +38 -0
- package/dist/set-branch-name.js.map +1 -0
- package/dist/switch-to-new-branch.d.ts +8 -0
- package/dist/switch-to-new-branch.d.ts.map +1 -0
- package/dist/switch-to-new-branch.js +21 -0
- package/dist/switch-to-new-branch.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { formatDetailedError } from "@release-change/shared";
|
|
2
|
+
import { HEAD_BRANCH_MAX_CHARACTERS, HEAD_BRANCH_PREFIX } from "./constants.js";
|
|
3
|
+
/**
|
|
4
|
+
* Sets the branch name for the head branch, using a prefix, the target branch and the next release data (version and/or package name).
|
|
5
|
+
*
|
|
6
|
+
* Due to lock file name restrictions, the branch name is limited to 244 characters (255 allowed for refs, minus the length of `refs/heads/` string).
|
|
7
|
+
* @param branch - The target branch.
|
|
8
|
+
* @param nextRelease - The next release data to use.
|
|
9
|
+
* @return The head branch name.
|
|
10
|
+
*/
|
|
11
|
+
export const setBranchName = (branch, nextRelease) => {
|
|
12
|
+
if (branch) {
|
|
13
|
+
if (nextRelease.length) {
|
|
14
|
+
const headBranchBody = nextRelease
|
|
15
|
+
.map(nextReleasePackage => nextReleasePackage.gitTag
|
|
16
|
+
.replace(/v(\d+\.\d+\.\d+)/, "$1")
|
|
17
|
+
.replace(/^@/, "")
|
|
18
|
+
.replace(/[@|/]/g, "-"))
|
|
19
|
+
.join("_");
|
|
20
|
+
return `${HEAD_BRANCH_PREFIX}/${branch}/${headBranchBody}`.slice(0, HEAD_BRANCH_MAX_CHARACTERS);
|
|
21
|
+
}
|
|
22
|
+
throw formatDetailedError({
|
|
23
|
+
title: "Failed to set the branch name",
|
|
24
|
+
message: "There must be at least one next release.",
|
|
25
|
+
details: {
|
|
26
|
+
output: "nextRelease.length: 0"
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
throw formatDetailedError({
|
|
31
|
+
title: "Failed to set the branch name",
|
|
32
|
+
message: "The target branch must be defined.",
|
|
33
|
+
details: {
|
|
34
|
+
output: `branch: ${branch}`
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=set-branch-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-branch-name.js","sourceRoot":"","sources":["../src/set-branch-name.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA0B,EAAE,WAAwB,EAAU,EAAE;IAC5F,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,cAAc,GAAG,WAAW;iBAC/B,GAAG,CAAC,kBAAkB,CAAC,EAAE,CACxB,kBAAkB,CAAC,MAAM;iBACtB,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC;iBACjC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;iBACjB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAC1B;iBACA,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,GAAG,kBAAkB,IAAI,MAAM,IAAI,cAAc,EAAE,CAAC,KAAK,CAC9D,CAAC,EACD,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QACD,MAAM,mBAAmB,CAAC;YACxB,KAAK,EAAE,+BAA+B;YACtC,OAAO,EAAE,0CAA0C;YACnD,OAAO,EAAE;gBACP,MAAM,EAAE,uBAAuB;aAChC;SACF,CAAC,CAAC;IACL,CAAC;IACD,MAAM,mBAAmB,CAAC;QACxB,KAAK,EAAE,+BAA+B;QACtC,OAAO,EAAE,oCAAoC;QAC7C,OAAO,EAAE;YACP,MAAM,EAAE,WAAW,MAAM,EAAE;SAC5B;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Switches to a new branch.
|
|
3
|
+
* @param newBranch - The name of the new branch.
|
|
4
|
+
* @param cwd - The current working directory.
|
|
5
|
+
* @returns The result of the `git switch` command.
|
|
6
|
+
*/
|
|
7
|
+
export declare const switchToNewBranch: (newBranch: string, cwd: string) => void;
|
|
8
|
+
//# sourceMappingURL=switch-to-new-branch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch-to-new-branch.d.ts","sourceRoot":"","sources":["../src/switch-to-new-branch.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,EAAE,KAAK,MAAM,KAAG,IAWlE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { formatDetailedError, runCommandSync } from "@release-change/shared";
|
|
2
|
+
/**
|
|
3
|
+
* Switches to a new branch.
|
|
4
|
+
* @param newBranch - The name of the new branch.
|
|
5
|
+
* @param cwd - The current working directory.
|
|
6
|
+
* @returns The result of the `git switch` command.
|
|
7
|
+
*/
|
|
8
|
+
export const switchToNewBranch = (newBranch, cwd) => {
|
|
9
|
+
if (newBranch)
|
|
10
|
+
runCommandSync("git", ["switch", "-c", newBranch], { cwd });
|
|
11
|
+
else {
|
|
12
|
+
throw formatDetailedError({
|
|
13
|
+
title: "Failed to switch to a new branch",
|
|
14
|
+
message: "The new branch name cannot be empty.",
|
|
15
|
+
details: {
|
|
16
|
+
output: `newBranch: ${newBranch}`
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=switch-to-new-branch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch-to-new-branch.js","sourceRoot":"","sources":["../src/switch-to-new-branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,GAAW,EAAQ,EAAE;IACxE,IAAI,SAAS;QAAE,cAAc,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;SACtE,CAAC;QACJ,MAAM,mBAAmB,CAAC;YACxB,KAAK,EAAE,kCAAkC;YACzC,OAAO,EAAE,sCAAsC;YAC/C,OAAO,EAAE;gBACP,MAAM,EAAE,cAAc,SAAS,EAAE;aAClC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@release-change/git",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Functions used internally in release-change to make Git operations easier",
|
|
5
|
+
"keywords": [],
|
|
6
|
+
"homepage": "https://github.com/release-change/release-change",
|
|
7
|
+
"bugs": {
|
|
8
|
+
"url": "https://github.com/release-change/release-change/issues"
|
|
9
|
+
},
|
|
10
|
+
"author": "Victor Brito (https://victor-brito.dev)",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/release-change/release-change.git"
|
|
14
|
+
},
|
|
15
|
+
"type": "module",
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"exports": {
|
|
21
|
+
"import": "./dist/index.js",
|
|
22
|
+
"types": "./dist/index.d.ts"
|
|
23
|
+
},
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": "^20.18.3 || ^22.12.0 || ^24.0.0",
|
|
26
|
+
"npm": ">=10.8.2",
|
|
27
|
+
"pnpm": ">=10.28.0"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@release-change/commit-analyser": "0.1.0",
|
|
31
|
+
"@release-change/logger": "0.1.0",
|
|
32
|
+
"@release-change/semver": "0.1.0",
|
|
33
|
+
"@release-change/shared": "0.1.0"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc",
|
|
37
|
+
"dev": "tsc --watch --preserveWatchOutput & vitest"
|
|
38
|
+
}
|
|
39
|
+
}
|