@vestfoldfylke/vfk-cli 2.0.1
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 +66 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/clickable-link.d.ts +2 -0
- package/dist/lib/clickable-link.d.ts.map +1 -0
- package/dist/lib/clickable-link.js +4 -0
- package/dist/lib/clickable-link.js.map +1 -0
- package/dist/lib/git.d.ts +30 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +178 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/open-url.d.ts +2 -0
- package/dist/lib/open-url.d.ts.map +1 -0
- package/dist/lib/open-url.js +25 -0
- package/dist/lib/open-url.js.map +1 -0
- package/dist/lib/release-notes.d.ts +8 -0
- package/dist/lib/release-notes.d.ts.map +1 -0
- package/dist/lib/release-notes.js +44 -0
- package/dist/lib/release-notes.js.map +1 -0
- package/dist/lib/run-tests.d.ts +3 -0
- package/dist/lib/run-tests.d.ts.map +1 -0
- package/dist/lib/run-tests.js +16 -0
- package/dist/lib/run-tests.js.map +1 -0
- package/dist/lib/semver.d.ts +16 -0
- package/dist/lib/semver.d.ts.map +1 -0
- package/dist/lib/semver.js +163 -0
- package/dist/lib/semver.js.map +1 -0
- package/dist/tests/git.test.d.ts +2 -0
- package/dist/tests/git.test.d.ts.map +1 -0
- package/dist/tests/git.test.js +77 -0
- package/dist/tests/git.test.js.map +1 -0
- package/dist/tests/semver.test.d.ts +2 -0
- package/dist/tests/semver.test.d.ts.map +1 -0
- package/dist/tests/semver.test.js +110 -0
- package/dist/tests/semver.test.js.map +1 -0
- package/dist/tools/pr.d.ts +2 -0
- package/dist/tools/pr.d.ts.map +1 -0
- package/dist/tools/pr.js +194 -0
- package/dist/tools/pr.js.map +1 -0
- package/dist/tools/release.d.ts +2 -0
- package/dist/tools/release.d.ts.map +1 -0
- package/dist/tools/release.js +111 -0
- package/dist/tools/release.js.map +1 -0
- package/dist/types/git.d.ts +25 -0
- package/dist/types/git.d.ts.map +1 -0
- package/dist/types/git.js +2 -0
- package/dist/types/git.js.map +1 -0
- package/dist/types/semver.d.ts +14 -0
- package/dist/types/semver.d.ts.map +1 -0
- package/dist/types/semver.js +2 -0
- package/dist/types/semver.js.map +1 -0
- package/dist/types/tools.d.ts +18 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +2 -0
- package/dist/types/tools.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import yoctoSpinner from "yocto-spinner";
|
|
2
|
+
import { getCommitsSinceTag, getLatestReleaseTag, getRepoInfo, repoIsReadyForRelease } from "../lib/git.js";
|
|
3
|
+
import { openUrl } from "../lib/open-url.js";
|
|
4
|
+
import { generateReleaseNotes } from "../lib/release-notes.js";
|
|
5
|
+
import { runTests } from "../lib/run-tests.js";
|
|
6
|
+
import { getProjectInfo, getSemverReleaseType } from "../lib/semver.js";
|
|
7
|
+
const toolHelp = `
|
|
8
|
+
VFK Release Tool
|
|
9
|
+
|
|
10
|
+
Usage:
|
|
11
|
+
vfk release Create a new GitHub release (and git tag)
|
|
12
|
+
vfk rel Same as 'vfk release'
|
|
13
|
+
|
|
14
|
+
Description:
|
|
15
|
+
This tool helps you create a GitHub release (and git tag) for your project.
|
|
16
|
+
It checks that your repository is clean and up-to-date, determines the next version
|
|
17
|
+
based on semantic versioning, creates pretty release notes and
|
|
18
|
+
provides a link to create the release on GitHub.
|
|
19
|
+
`;
|
|
20
|
+
export const release = (...args) => {
|
|
21
|
+
if (args[0] === "help") {
|
|
22
|
+
console.log(toolHelp);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const repoInfo = getRepoInfo();
|
|
26
|
+
// yocto-spinner og yocto-colors
|
|
27
|
+
let spinner = yoctoSpinner({
|
|
28
|
+
text: "Checking if repo is clean and up-to-date..."
|
|
29
|
+
}).start();
|
|
30
|
+
try {
|
|
31
|
+
repoIsReadyForRelease(repoInfo);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
spinner.error(`Repository is not ready for release: ${error instanceof Error ? error.message : String(error)}`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
spinner.success("Repository is clean and up-to-date");
|
|
38
|
+
const releaseData = {
|
|
39
|
+
latestTag: null,
|
|
40
|
+
projectInfo: null,
|
|
41
|
+
releaseType: null,
|
|
42
|
+
commits: null,
|
|
43
|
+
releaseNotes: null
|
|
44
|
+
};
|
|
45
|
+
spinner = yoctoSpinner({ text: "Getting project info..." }).start();
|
|
46
|
+
try {
|
|
47
|
+
releaseData.projectInfo = getProjectInfo();
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
spinner.error(`Failed to get project info: ${error instanceof Error ? error.message : String(error)}`);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
spinner.success(`Project version is ${releaseData.projectInfo.version} (${releaseData.projectInfo.type})`);
|
|
54
|
+
// Run tests before proceeding
|
|
55
|
+
spinner = yoctoSpinner({ text: "Running tests..." }).start();
|
|
56
|
+
try {
|
|
57
|
+
runTests(releaseData.projectInfo);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
spinner.error(`Tests failed, please fix the errors before you create a release: ${error instanceof Error ? error.message : String(error)}`);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
spinner.success("All tests passed");
|
|
64
|
+
spinner = yoctoSpinner({ text: "Finding latest release tag..." }).start();
|
|
65
|
+
try {
|
|
66
|
+
releaseData.latestTag = getLatestReleaseTag();
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
spinner.error(`Failed to get latest release tag: ${error instanceof Error ? error.message : String(error)}`);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
spinner.success(releaseData.latestTag ? `Latest release tag is ${releaseData.latestTag}` : "No release tags found, will use project version");
|
|
73
|
+
// Get commits since latest release tag (and check that there are commits)
|
|
74
|
+
spinner = yoctoSpinner({ text: releaseData.latestTag ? `Getting git log commits since latest release tag ${releaseData.latestTag}` : "No latest tag found, getting all commits" }).start();
|
|
75
|
+
try {
|
|
76
|
+
releaseData.commits = getCommitsSinceTag(releaseData.latestTag);
|
|
77
|
+
if (releaseData.commits.length === 0) {
|
|
78
|
+
spinner.error(`No commits found. Why do you want to create a release with no new changes??? 🍕`);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
spinner.error(`Failed to get commits: ${error instanceof Error ? error.message : String(error)}`);
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
spinner.success(`Found ${releaseData.commits.length} commit(s) since latest tag ${releaseData.latestTag}`);
|
|
87
|
+
// Finn ut av hva slags semver type release vi skal lage basert på latestTag og project version
|
|
88
|
+
spinner = yoctoSpinner({ text: "Determining release type (semver) based on latest release tag and current project version..." }).start();
|
|
89
|
+
try {
|
|
90
|
+
releaseData.releaseType = getSemverReleaseType(releaseData.latestTag, releaseData.projectInfo);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
spinner.error(`Failed to determine semver type: ${error instanceof Error ? error.message : String(error)}`);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
spinner.success(`Determined release type (semver) is ${releaseData.releaseType}. Release-tag will be ${releaseData.projectInfo.version}`);
|
|
97
|
+
try {
|
|
98
|
+
releaseData.releaseNotes = generateReleaseNotes(releaseData);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
spinner.error(`Failed to generate release notes: ${error instanceof Error ? error.message : String(error)}`);
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
spinner.success("Release notes generated");
|
|
105
|
+
// Then we create a PR from a query link to GitHub with the right info filled in
|
|
106
|
+
const releaseTitle = `Release ${releaseData.projectInfo.version}`;
|
|
107
|
+
const releaseBody = releaseData.releaseNotes;
|
|
108
|
+
const releaseLink = `${repoInfo.githubUrl}/releases/new?tag=${encodeURIComponent(releaseData.projectInfo.version)}&title=${encodeURIComponent(releaseTitle)}&body=${encodeURIComponent(releaseBody)}`;
|
|
109
|
+
openUrl(releaseLink, "🚀 Create your release here if it did not open automatically");
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/tools/release.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type RepoInfo = {
|
|
2
|
+
remoteUrl: string;
|
|
3
|
+
githubUrl: string;
|
|
4
|
+
githubUsername?: string | undefined;
|
|
5
|
+
currentBranch: string;
|
|
6
|
+
defaultBranch: string;
|
|
7
|
+
repoIsClean: boolean;
|
|
8
|
+
commitDiff: {
|
|
9
|
+
behind: number;
|
|
10
|
+
ahead: number;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export type GitLogCommit = {
|
|
14
|
+
hash: string;
|
|
15
|
+
authorName: string;
|
|
16
|
+
authorEmail: string;
|
|
17
|
+
subject: string;
|
|
18
|
+
body: string;
|
|
19
|
+
commitDate: string;
|
|
20
|
+
};
|
|
21
|
+
export type GitCommitType = "major" | "minor" | "patch" | "maintenance" | "other";
|
|
22
|
+
export type SortedCommits = {
|
|
23
|
+
[K in GitCommitType]: GitLogCommit[];
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/types/git.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE;QACX,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACb,CAAA;CACD,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAA;AAEjF,MAAM,MAAM,aAAa,GAAG;KAC1B,CAAC,IAAI,aAAa,GAAG,YAAY,EAAE;CACpC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/types/git.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type ProjectInfo = {
|
|
2
|
+
version: string;
|
|
3
|
+
type: "node" | "dotnet";
|
|
4
|
+
paths: string[];
|
|
5
|
+
name?: string;
|
|
6
|
+
};
|
|
7
|
+
export type NextVersion = {
|
|
8
|
+
version: string;
|
|
9
|
+
isInitialRelease: boolean;
|
|
10
|
+
source: "tag" | "project" | "project-already-bumped" | "vfk-cli";
|
|
11
|
+
description: string;
|
|
12
|
+
};
|
|
13
|
+
export type ReleaseType = "major" | "minor" | "patch" | "initial-release";
|
|
14
|
+
//# sourceMappingURL=semver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../src/types/semver.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;IACvB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,wBAAwB,GAAG,SAAS,CAAA;IAChE,WAAW,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../src/types/semver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { GitLogCommit, SortedCommits } from "./git.js";
|
|
2
|
+
import type { NextVersion, ProjectInfo, ReleaseType } from "./semver.js";
|
|
3
|
+
export type SupportedSemverType = "major" | "minor" | "patch";
|
|
4
|
+
export type PullRequestData = {
|
|
5
|
+
semverType: SupportedSemverType;
|
|
6
|
+
latestTag: string | null;
|
|
7
|
+
projectInfo: ProjectInfo | null;
|
|
8
|
+
nextVersion: NextVersion | null;
|
|
9
|
+
sortedCommits: SortedCommits | null;
|
|
10
|
+
};
|
|
11
|
+
export type ReleaseData = {
|
|
12
|
+
latestTag: string | null;
|
|
13
|
+
projectInfo: ProjectInfo | null;
|
|
14
|
+
releaseType: ReleaseType | null;
|
|
15
|
+
commits: GitLogCommit[] | null;
|
|
16
|
+
releaseNotes: string | null;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAExE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,mBAAmB,CAAA;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vestfoldfylke/vfk-cli",
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"description": "A command line interface for our pleasure",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"package.json"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"lint": "npx @biomejs/biome check",
|
|
14
|
+
"lint:fix": "npx @biomejs/biome check --write",
|
|
15
|
+
"test": "tsc --noEmit && biome check && node --import tsx --test src/tests/**/*.test.ts",
|
|
16
|
+
"test:node": "node --test"
|
|
17
|
+
},
|
|
18
|
+
"bin": {
|
|
19
|
+
"vfk": "./dist/index.js"
|
|
20
|
+
},
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/vestfoldfylke/vfk-cli.git"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"pleasure"
|
|
27
|
+
],
|
|
28
|
+
"author": {
|
|
29
|
+
"name": "Jørgen Thorsnes",
|
|
30
|
+
"url": "https://github.com/jorgtho"
|
|
31
|
+
},
|
|
32
|
+
"contributors": [
|
|
33
|
+
{
|
|
34
|
+
"name": "Rune Moskvil Lyngås",
|
|
35
|
+
"url": "https://github.com/runely"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/vestfoldfylke/vfk-cli/issues"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://github.com/vestfoldfylke/vfk-cli#readme",
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"semver": "^7.7.3",
|
|
45
|
+
"yocto-spinner": "^1.0.0"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@biomejs/biome": "2.3.3",
|
|
49
|
+
"@types/node": "^24.10.0",
|
|
50
|
+
"@types/semver": "^7.7.1",
|
|
51
|
+
"tsx": "^4.20.6",
|
|
52
|
+
"typescript": "^5.9.3"
|
|
53
|
+
}
|
|
54
|
+
}
|