just-release 0.3.0 → 0.6.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/README.md +87 -8
- package/dist/cli.js +60 -8
- package/dist/cli.js.map +1 -1
- package/dist/commits.d.ts.map +1 -1
- package/dist/commits.js +29 -8
- package/dist/commits.js.map +1 -1
- package/dist/git.d.ts +4 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +28 -11
- package/dist/git.js.map +1 -1
- package/dist/github.d.ts +5 -1
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +49 -25
- package/dist/github.js.map +1 -1
- package/dist/release-commit.d.ts +15 -0
- package/dist/release-commit.d.ts.map +1 -0
- package/dist/release-commit.js +32 -0
- package/dist/release-commit.js.map +1 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
# just-release
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The simplest way to release version-synchronized packages on GitHub.
|
|
4
|
+
|
|
5
|
+
## Philosophy
|
|
6
|
+
|
|
7
|
+
`just-release` does one thing well: it makes releasing packages with synchronized versions as simple as running a single command.
|
|
8
|
+
|
|
9
|
+
This tool is **opinionated by design**. It doesn't try to support every weird release workflow - it supports the best one:
|
|
10
|
+
|
|
11
|
+
- ✅ Conventional commits for automatic version bumping
|
|
12
|
+
- ✅ GitHub for source control
|
|
13
|
+
- ✅ GitHub Actions for automated releases
|
|
14
|
+
- ✅ Per-package changelogs
|
|
15
|
+
- ✅ Unified versioning across all packages
|
|
16
|
+
- ✅ Works with pnpm, npm, and yarn workspaces (or single packages)
|
|
17
|
+
|
|
18
|
+
The actual publishing step is up to you - use `npm publish`, `pnpm publish`, or whatever fits your setup. `just-release` handles everything up to creating the release PR.
|
|
19
|
+
|
|
20
|
+
If this matches your workflow (and it should), `just-release` will make your life easier. If you need something else, this probably isn't the tool for you.
|
|
4
21
|
|
|
5
22
|
## Features
|
|
6
23
|
|
|
@@ -91,6 +108,32 @@ BREAKING CHANGE: The old API has been removed. Use the new API instead.
|
|
|
91
108
|
|
|
92
109
|
### GitHub Actions
|
|
93
110
|
|
|
111
|
+
#### Repository Permissions
|
|
112
|
+
|
|
113
|
+
**Important:** Your repository (or organization) must allow GitHub Actions to create pull requests, or the workflow will fail.
|
|
114
|
+
|
|
115
|
+
##### Organization-Level Setting (Recommended)
|
|
116
|
+
|
|
117
|
+
Set this once for all repositories in your organization:
|
|
118
|
+
|
|
119
|
+
1. Go to your organization's **Settings** → **Actions** → **General**
|
|
120
|
+
2. Scroll to **Workflow permissions**
|
|
121
|
+
3. Enable **"Allow GitHub Actions to create and approve pull requests"**
|
|
122
|
+
|
|
123
|
+
Once enabled at the organization level, this setting will apply to all repositories in the organization (unless individually overridden).
|
|
124
|
+
|
|
125
|
+
##### Repository-Level Setting
|
|
126
|
+
|
|
127
|
+
If you're not using organization-level settings, configure each repository individually:
|
|
128
|
+
|
|
129
|
+
1. Go to your repository's **Settings** → **Actions** → **General**
|
|
130
|
+
2. Scroll to **Workflow permissions**
|
|
131
|
+
3. Enable **"Allow GitHub Actions to create and approve pull requests"**
|
|
132
|
+
|
|
133
|
+
**Note:** If your organization disables this setting, the repository-level option will be grayed out. You must enable it at the organization level first.
|
|
134
|
+
|
|
135
|
+
#### Workflow Configuration
|
|
136
|
+
|
|
94
137
|
Create `.github/workflows/release.yml`:
|
|
95
138
|
|
|
96
139
|
```yaml
|
|
@@ -108,6 +151,8 @@ permissions:
|
|
|
108
151
|
jobs:
|
|
109
152
|
release:
|
|
110
153
|
runs-on: ubuntu-latest
|
|
154
|
+
# Skip if this is already a release commit (from merging a release PR)
|
|
155
|
+
if: "!startsWith(github.event.head_commit.message, 'release:')"
|
|
111
156
|
steps:
|
|
112
157
|
- uses: actions/checkout@v4
|
|
113
158
|
with:
|
|
@@ -133,7 +178,26 @@ jobs:
|
|
|
133
178
|
|
|
134
179
|
### Publishing
|
|
135
180
|
|
|
136
|
-
|
|
181
|
+
`just-release` uses **trusted publishing** with OIDC - no npm tokens required.
|
|
182
|
+
|
|
183
|
+
This works with npmjs.org or any custom registry that supports trusted publishing and provenance.
|
|
184
|
+
|
|
185
|
+
#### Setup Trusted Publishing (npmjs.org)
|
|
186
|
+
|
|
187
|
+
1. Go to https://www.npmjs.com/package/YOUR-PACKAGE-NAME/access
|
|
188
|
+
2. Click "Publishing access" → "Add a trusted publisher"
|
|
189
|
+
3. Configure:
|
|
190
|
+
- **Source**: GitHub Actions
|
|
191
|
+
- **Repository owner**: Your GitHub username/org (case-sensitive!)
|
|
192
|
+
- **Repository name**: Your repo name
|
|
193
|
+
- **Workflow filename**: `publish.yml` (optional but recommended)
|
|
194
|
+
- **Environment**: leave blank
|
|
195
|
+
|
|
196
|
+
For custom registries, consult their documentation for trusted publishing setup.
|
|
197
|
+
|
|
198
|
+
#### Create Publish Workflow
|
|
199
|
+
|
|
200
|
+
Create `.github/workflows/publish.yml`:
|
|
137
201
|
|
|
138
202
|
```yaml
|
|
139
203
|
name: Publish
|
|
@@ -142,6 +206,7 @@ on:
|
|
|
142
206
|
push:
|
|
143
207
|
branches:
|
|
144
208
|
- main
|
|
209
|
+
workflow_dispatch:
|
|
145
210
|
|
|
146
211
|
permissions:
|
|
147
212
|
contents: write
|
|
@@ -150,8 +215,10 @@ permissions:
|
|
|
150
215
|
jobs:
|
|
151
216
|
publish:
|
|
152
217
|
runs-on: ubuntu-latest
|
|
153
|
-
# Only run if commit message starts with "release:"
|
|
154
218
|
if: startsWith(github.event.head_commit.message, 'release:')
|
|
219
|
+
permissions:
|
|
220
|
+
contents: write
|
|
221
|
+
id-token: write
|
|
155
222
|
steps:
|
|
156
223
|
- uses: actions/checkout@v4
|
|
157
224
|
|
|
@@ -166,14 +233,23 @@ jobs:
|
|
|
166
233
|
registry-url: 'https://registry.npmjs.org'
|
|
167
234
|
|
|
168
235
|
- run: pnpm install
|
|
169
|
-
|
|
170
236
|
- run: pnpm build
|
|
171
237
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
238
|
+
# Upgrade npm for provenance support (GitHub runners ship with old npm)
|
|
239
|
+
- run: npm install -g npm@latest
|
|
240
|
+
|
|
241
|
+
- run: pnpm publish --access public --provenance
|
|
175
242
|
```
|
|
176
243
|
|
|
244
|
+
**Important:**
|
|
245
|
+
- Your repository must be **public** for provenance to work
|
|
246
|
+
- `package.json` must have a `repository` field matching your GitHub repo **exactly**:
|
|
247
|
+
- Format: `https://github.com/Owner/repo-name` (no `git+` prefix, no `.git` suffix)
|
|
248
|
+
- Case-sensitive: Owner name must match exactly (e.g., `Aeolun`, not `aeolun`)
|
|
249
|
+
- Example (correct): `"repository": "https://github.com/Aeolun/dijkstra-calculator"`
|
|
250
|
+
- Example (incorrect): `"repository": { "url": "git+https://github.com/aeolun/dijkstra-calculator.git" }`
|
|
251
|
+
- No `NPM_TOKEN` needed - authentication uses OIDC
|
|
252
|
+
|
|
177
253
|
## Single-Package vs Monorepo
|
|
178
254
|
|
|
179
255
|
`just-release` automatically adapts to your repository structure:
|
|
@@ -186,8 +262,11 @@ This means you can use `just-release` for both monorepos and single-package repo
|
|
|
186
262
|
## Requirements
|
|
187
263
|
|
|
188
264
|
- Node.js >= 18
|
|
265
|
+
- **Public** GitHub repository (required for npm provenance)
|
|
189
266
|
- Git repository with `origin` remote pointing to GitHub
|
|
190
|
-
- Root `package.json` with
|
|
267
|
+
- Root `package.json` with:
|
|
268
|
+
- `version` field
|
|
269
|
+
- `repository` field in the format `https://github.com/Owner/repo-name` (case-sensitive, no `git+` or `.git`)
|
|
191
270
|
- Optional: Workspace configuration in `pnpm-workspace.yaml` or `package.json`
|
|
192
271
|
|
|
193
272
|
## License
|
package/dist/cli.js
CHANGED
|
@@ -6,9 +6,11 @@ import { analyzeCommits } from './commits.js';
|
|
|
6
6
|
import { calculateVersionBump } from './version.js';
|
|
7
7
|
import { generateChangelogs } from './changelog.js';
|
|
8
8
|
import { createReleaseBranch, updatePackageVersions, commitAndPush, } from './git.js';
|
|
9
|
-
import { createOrUpdatePR } from './github.js';
|
|
9
|
+
import { createOrUpdatePR, createGitHubRelease } from './github.js';
|
|
10
10
|
import { getColors } from './colors.js';
|
|
11
11
|
import { generateChangelogSection, groupCommitsByPackage } from './changelog.js';
|
|
12
|
+
import { simpleGit } from 'simple-git';
|
|
13
|
+
import { isReleaseCommit } from './release-commit.js';
|
|
12
14
|
const colors = getColors(process.env, process.stdout.isTTY);
|
|
13
15
|
function getCommitPrefix(commit) {
|
|
14
16
|
if (commit.breaking)
|
|
@@ -44,11 +46,51 @@ function generatePRSummary(commits) {
|
|
|
44
46
|
})
|
|
45
47
|
.join('\n\n');
|
|
46
48
|
}
|
|
49
|
+
async function runPostRelease(cwd) {
|
|
50
|
+
console.log('📦 Post-release mode detected\n');
|
|
51
|
+
// Check for GITHUB_TOKEN
|
|
52
|
+
const githubToken = process.env.GITHUB_TOKEN;
|
|
53
|
+
if (!githubToken) {
|
|
54
|
+
console.error('❌ GITHUB_TOKEN environment variable is required');
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
// Get current version from package.json
|
|
58
|
+
const workspace = await detectWorkspace(cwd);
|
|
59
|
+
const version = workspace.rootVersion;
|
|
60
|
+
console.log(`📝 Creating GitHub release for v${version}...\n`);
|
|
61
|
+
// Read changelog to get release notes
|
|
62
|
+
const changelogPath = `${cwd}/CHANGELOG.md`;
|
|
63
|
+
const { readFile } = await import('node:fs/promises');
|
|
64
|
+
let releaseNotes = '';
|
|
65
|
+
try {
|
|
66
|
+
const changelog = await readFile(changelogPath, 'utf-8');
|
|
67
|
+
// Extract the first version section (everything between first ## and second ##)
|
|
68
|
+
const match = changelog.match(/## [^\n]+\n([\s\S]*?)(?=\n## |$)/);
|
|
69
|
+
if (match) {
|
|
70
|
+
releaseNotes = match[1].trim();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
console.log(' No CHANGELOG.md found, creating release without notes');
|
|
75
|
+
}
|
|
76
|
+
// Create GitHub release
|
|
77
|
+
const releaseUrl = await createGitHubRelease(cwd, version, releaseNotes, githubToken);
|
|
78
|
+
console.log(` Release URL: ${releaseUrl}\n`);
|
|
79
|
+
console.log('✅ GitHub release created!\n');
|
|
80
|
+
}
|
|
47
81
|
async function main() {
|
|
48
82
|
const isDryRun = process.env.CI !== '1';
|
|
49
83
|
const showPrPreview = process.argv.includes('--pr');
|
|
50
84
|
const cwd = process.cwd();
|
|
51
85
|
console.log('🚀 just-release\n');
|
|
86
|
+
// Check if we're on a release commit (post-release mode)
|
|
87
|
+
const git = simpleGit(cwd);
|
|
88
|
+
const log = await git.log({ maxCount: 1 });
|
|
89
|
+
const currentCommit = log.latest;
|
|
90
|
+
if (currentCommit && isReleaseCommit(currentCommit.message)) {
|
|
91
|
+
await runPostRelease(cwd);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
52
94
|
if (isDryRun) {
|
|
53
95
|
console.log('🔍 Running in DRY-RUN mode (set CI=1 to execute)\n');
|
|
54
96
|
}
|
|
@@ -163,14 +205,19 @@ async function main() {
|
|
|
163
205
|
}
|
|
164
206
|
process.exit(0);
|
|
165
207
|
}
|
|
166
|
-
// Step 4:
|
|
208
|
+
// Step 4: Create release branch
|
|
209
|
+
console.log('🌿 Preparing release branch...');
|
|
210
|
+
const releaseBranch = await createReleaseBranch(cwd);
|
|
211
|
+
if (releaseBranch.isNew) {
|
|
212
|
+
console.log(` Created new branch: ${releaseBranch.name}\n`);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
console.log(` Reusing existing branch: ${releaseBranch.name}\n`);
|
|
216
|
+
}
|
|
217
|
+
// Step 5: Generate changelogs
|
|
167
218
|
console.log('📄 Generating changelogs...');
|
|
168
219
|
await generateChangelogs(versionBump.newVersion, commits, workspace.packages);
|
|
169
220
|
console.log(' Changelogs generated\n');
|
|
170
|
-
// Step 5: Create release branch
|
|
171
|
-
console.log('🌿 Creating release branch...');
|
|
172
|
-
const branchName = await createReleaseBranch(cwd);
|
|
173
|
-
console.log(` Created branch: ${branchName}\n`);
|
|
174
221
|
// Step 6: Update package versions
|
|
175
222
|
console.log('📝 Updating package versions...');
|
|
176
223
|
await updatePackageVersions(cwd, versionBump.newVersion, workspace.packages);
|
|
@@ -188,8 +235,13 @@ async function main() {
|
|
|
188
235
|
}
|
|
189
236
|
// Build changelog summary for PR body
|
|
190
237
|
const changelogSummary = generatePRSummary(commits);
|
|
191
|
-
const
|
|
192
|
-
|
|
238
|
+
const prResult = await createOrUpdatePR(cwd, releaseBranch.name, versionBump.newVersion, changelogSummary, githubToken);
|
|
239
|
+
if (prResult.isNew) {
|
|
240
|
+
console.log(` Created new PR: ${prResult.url}\n`);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
console.log(` Updated existing PR: ${prResult.url}\n`);
|
|
244
|
+
}
|
|
193
245
|
console.log('✅ Release process complete!\n');
|
|
194
246
|
}
|
|
195
247
|
catch (error) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,iDAAiD;AACjD,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAc,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE5D,SAAS,eAAe,CAAC,MAAkB;IACzC,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,eAAe,CAAC;IAC5C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;QACzB,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;QACzB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;QACzB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;QACzB,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC;QAC1B,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC;QAC9B,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;QAC3B,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;QAC3B,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;QAC3B,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC;QACxB,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAqB;IAC9C,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAE/D,0BAA0B;QAC1B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5B,kEAAkE;YAClE,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI;iBACxB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;iBAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,IAAI,OAAO,YAAY,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAW;IACvC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,yBAAyB;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,OAAO,CAAC,CAAC;IAE/D,sCAAsC;IACtC,MAAM,aAAa,GAAG,GAAG,GAAG,eAAe,CAAC;IAC5C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACtD,IAAI,YAAY,GAAG,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACzD,gFAAgF;QAChF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IAC1E,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C,GAAG,EACH,OAAO,EACP,YAAY,EACZ,WAAW,CACZ,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,IAAI,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;IACxC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEjC,yDAAyD;IACzD,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC;IAEjC,IAAI,aAAa,IAAI,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC;QACH,2BAA2B;QAC3B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;QAE7C,6DAA6D;QAC7D,MAAM,eAAe,GACnB,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC/B,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC;QAEpD,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,YAAY,SAAS,CAAC,QAAQ,CAAC,MAAM,0BAA0B,CAChE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,CAAC,WAAW,IAAI,CAAC,CAAC;QAE9D,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,+BAA+B,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,gCAAgC,CAAC,CAAC;QAExE,yBAAyB;QACzB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC;YACpC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;aACpD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;QAE3D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,iCAAiC;QACjC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,oBAAoB,CACtC,SAAS,CAAC,WAAW,EACrB,OAAO,CACR,CAAC;QAEF,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CACT,uEAAuE,CACxE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CACT,iBAAiB,WAAW,CAAC,QAAQ,KAAK,SAAS,CAAC,WAAW,MAAM,WAAW,CAAC,UAAU,KAAK,CACjG,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,gBAAgB,GACpB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,WAAW,KAAK,EAAE,CAAC;YAEtC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CACT,qBAAqB,gBAAgB,uBAAuB,CAC7D,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,qDAAqD,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC;YAC5F,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CACT,oDAAoD,CACrD,CAAC;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAEhC,6BAA6B;gBAC7B,MAAM,OAAO,GAAG,WAAW,WAAW,CAAC,UAAU,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;gBAE/B,yCAAyC;gBACzC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAEpD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,eAAe,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC;gBACzD,IAAI,gBAAgB,EAAE,CAAC;oBACrB,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1E,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;gBAEd,mCAAmC;gBACnC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;gBAE7D,oBAAoB;gBACpB,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,eAAe,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,CAAC,WAAW,MAAM,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC;gBAEtF,+BAA+B;gBAC/B,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACrC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;wBACpC,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;wBACpE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,GAAG,YAAY,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;wBAC5E,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,OAAO,MAAM,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC;oBAC9E,CAAC;gBACH,CAAC;gBAED,aAAa;gBACb,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAExD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACrC,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChD,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ;4BAClD,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;wBACzD,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,GAAG,YAAY,eAAe,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;wBAE3E,6CAA6C;wBAC7C,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,WAAW,CAAC,UAAW,EAAE,cAAc,CAAC,CAAC;wBAC3F,+BAA+B;wBAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gCAChB,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;4BAC9B,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC,GAAG,EAAE,CAAC;4BAChB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gCAAgC;QAChC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,0BAA0B,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,+BAA+B,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;QACrE,CAAC;QAED,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,kBAAkB,CACtB,WAAW,CAAC,UAAW,EACvB,OAAO,EACP,SAAS,CAAC,QAAQ,CACnB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAEzC,kCAAkC;QAClC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,MAAM,qBAAqB,CACzB,GAAG,EACH,WAAW,CAAC,UAAW,EACvB,SAAS,CAAC,QAAQ,CACnB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,MAAM,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,UAAW,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,8DAA8D,CAC/D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,GAAG,EACH,aAAa,CAAC,IAAI,EAClB,WAAW,CAAC,UAAW,EACvB,gBAAgB,EAChB,WAAW,CACZ,CAAC;QAEF,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/dist/commits.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commits.d.ts","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"commits.d.ts","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAMlD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,OAAO,CAAC,UAAU,EAAE,CAAC,CAgGvB"}
|
package/dist/commits.js
CHANGED
|
@@ -2,21 +2,42 @@
|
|
|
2
2
|
// ABOUTME: Maps file changes to workspace packages for changelog generation
|
|
3
3
|
import { simpleGit } from 'simple-git';
|
|
4
4
|
import * as conventionalCommitsParser from 'conventional-commits-parser';
|
|
5
|
+
import { isReleaseCommit } from './release-commit.js';
|
|
5
6
|
const { CommitParser } = conventionalCommitsParser;
|
|
6
7
|
const parser = new CommitParser();
|
|
7
8
|
export async function analyzeCommits(repoPath, workspacePackages) {
|
|
8
9
|
const git = simpleGit(repoPath);
|
|
9
|
-
//
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
// Check if this is a shallow repository
|
|
11
|
+
const isShallow = await git.raw(['rev-parse', '--is-shallow-repository']);
|
|
12
|
+
if (isShallow.trim() === 'true') {
|
|
13
|
+
let errorMessage = 'Shallow repository detected. just-release requires full git history.\n';
|
|
14
|
+
if (process.env.GITHUB_ACTIONS) {
|
|
15
|
+
errorMessage += '\nAdd fetch-depth: 0 to your checkout action:\n\n';
|
|
16
|
+
errorMessage += ' - uses: actions/checkout@v4\n';
|
|
17
|
+
errorMessage += ' with:\n';
|
|
18
|
+
errorMessage += ' fetch-depth: 0\n';
|
|
17
19
|
}
|
|
20
|
+
else {
|
|
21
|
+
errorMessage += 'Run: git fetch --unshallow';
|
|
22
|
+
}
|
|
23
|
+
throw new Error(errorMessage);
|
|
24
|
+
}
|
|
25
|
+
// Fetch commits in stages to optimize performance
|
|
26
|
+
let log = await git.log({ maxCount: 100 });
|
|
27
|
+
let releaseIndex = log.all.findIndex(c => isReleaseCommit(c.message));
|
|
28
|
+
// If no release found in first 100, try 1000
|
|
29
|
+
if (releaseIndex === -1 && log.total && log.total > 100) {
|
|
30
|
+
log = await git.log({ maxCount: 1000 });
|
|
31
|
+
releaseIndex = log.all.findIndex(c => isReleaseCommit(c.message));
|
|
32
|
+
}
|
|
33
|
+
// If still no release found, warn and fetch all
|
|
34
|
+
if (releaseIndex === -1 && log.total && log.total > 1000) {
|
|
35
|
+
console.warn(' ⚠️ No release commit found in last 1000 commits. Searching full history (this may take a while)...');
|
|
36
|
+
log = await git.log();
|
|
37
|
+
releaseIndex = log.all.findIndex(c => isReleaseCommit(c.message));
|
|
18
38
|
}
|
|
19
39
|
// Only analyze commits since last release (or all if no release found)
|
|
40
|
+
const endIndex = releaseIndex === -1 ? log.all.length : releaseIndex;
|
|
20
41
|
const commitsToAnalyze = log.all.slice(0, endIndex);
|
|
21
42
|
const commits = [];
|
|
22
43
|
for (const commit of commitsToAnalyze) {
|
package/dist/commits.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commits.js","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,4EAA4E;AAE5E,OAAO,EAAE,SAAS,EAA+B,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,yBAAyB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"commits.js","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"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"}
|
package/dist/git.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { WorkspacePackage } from './workspace.js';
|
|
2
|
-
export declare function createReleaseBranch(repoPath: string): Promise<
|
|
2
|
+
export declare function createReleaseBranch(repoPath: string): Promise<{
|
|
3
|
+
name: string;
|
|
4
|
+
isNew: boolean;
|
|
5
|
+
}>;
|
|
3
6
|
export declare function updatePackageVersions(repoPath: string, newVersion: string, packages: WorkspacePackage[]): Promise<void>;
|
|
4
7
|
export declare function commitAndPush(repoPath: string, newVersion: string, push: boolean): Promise<void>;
|
|
5
8
|
//# sourceMappingURL=git.d.ts.map
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA0BlD,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA0BlD,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CA0CrG;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
package/dist/git.js
CHANGED
|
@@ -26,21 +26,38 @@ async function ensureGitConfig(git) {
|
|
|
26
26
|
}
|
|
27
27
|
export async function createReleaseBranch(repoPath) {
|
|
28
28
|
const git = simpleGit(repoPath);
|
|
29
|
-
//
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
//
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
// Check both local and remote branches for existing release branches
|
|
30
|
+
const branches = await git.branch(['-a']); // -a includes remote branches
|
|
31
|
+
const allBranches = branches.all;
|
|
32
|
+
// Look for release branches (local or remote)
|
|
33
|
+
const existingReleaseBranch = allBranches.find((b) => b.startsWith('release/') || b.includes('remotes/origin/release/'));
|
|
34
|
+
let branchName;
|
|
35
|
+
let isNew;
|
|
36
|
+
if (existingReleaseBranch) {
|
|
37
|
+
// Extract branch name (remove remotes/origin/ prefix if present)
|
|
38
|
+
branchName = existingReleaseBranch.replace('remotes/origin/', '');
|
|
39
|
+
isNew = false;
|
|
40
|
+
// Get current commit SHA (we should be on main)
|
|
41
|
+
const currentCommit = await git.revparse(['HEAD']);
|
|
42
|
+
// Checkout the branch (creating local tracking branch if needed)
|
|
43
|
+
try {
|
|
44
|
+
await git.checkout(branchName);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Branch doesn't exist locally, create it tracking the remote
|
|
48
|
+
await git.checkoutBranch(branchName, `origin/${branchName}`);
|
|
49
|
+
}
|
|
50
|
+
// Reset to main's current state
|
|
51
|
+
await git.reset(['--hard', currentCommit.trim()]);
|
|
38
52
|
}
|
|
39
53
|
else {
|
|
40
|
-
// Create new branch
|
|
54
|
+
// Create new branch with current date
|
|
55
|
+
const today = new Date().toISOString().split('T')[0];
|
|
56
|
+
branchName = `release/${today}`;
|
|
57
|
+
isNew = true;
|
|
41
58
|
await git.checkoutLocalBranch(branchName);
|
|
42
59
|
}
|
|
43
|
-
return branchName;
|
|
60
|
+
return { name: branchName, isNew };
|
|
44
61
|
}
|
|
45
62
|
export async function updatePackageVersions(repoPath, newVersion, packages) {
|
|
46
63
|
// Update root package.json
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,mEAAmE;AAEnE,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,KAAK,UAAU,eAAe,CAAC,GAAc;IAC3C,4CAA4C;IAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAE7D,6CAA6C;QAC7C,IAAI,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2CAA2C;IAC7C,CAAC;IAED,oDAAoD;IACpD,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACxE,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,8CAA8C,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACxD,MAAM,GAAG,GAAc,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE3C,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
package/dist/github.d.ts
CHANGED
|
@@ -6,5 +6,9 @@ export declare function getRepoInfo(repoPath: string): Promise<RepoInfo>;
|
|
|
6
6
|
export declare function findExistingReleaseBranch(branches: Array<{
|
|
7
7
|
name: string;
|
|
8
8
|
}>): string | null;
|
|
9
|
-
export declare function createOrUpdatePR(repoPath: string, branchName: string, version: string, changelogSummary: string, token: string): Promise<
|
|
9
|
+
export declare function createOrUpdatePR(repoPath: string, branchName: string, version: string, changelogSummary: string, token: string): Promise<{
|
|
10
|
+
url: string;
|
|
11
|
+
isNew: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function createGitHubRelease(repoPath: string, version: string, releaseNotes: string, token: string): Promise<string>;
|
|
10
14
|
//# sourceMappingURL=github.d.ts.map
|
package/dist/github.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBrE;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAChC,MAAM,GAAG,IAAI,CAGf;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBrE;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAChC,MAAM,GAAG,IAAI,CAGf;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAqE1C;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
|
package/dist/github.js
CHANGED
|
@@ -27,12 +27,6 @@ export function findExistingReleaseBranch(branches) {
|
|
|
27
27
|
export async function createOrUpdatePR(repoPath, branchName, version, changelogSummary, token) {
|
|
28
28
|
const octokit = new Octokit({ auth: token });
|
|
29
29
|
const repoInfo = await getRepoInfo(repoPath);
|
|
30
|
-
// List all branches to find existing release PR
|
|
31
|
-
const { data: branches } = await octokit.repos.listBranches({
|
|
32
|
-
owner: repoInfo.owner,
|
|
33
|
-
repo: repoInfo.repo,
|
|
34
|
-
});
|
|
35
|
-
const existingReleaseBranch = findExistingReleaseBranch(branches);
|
|
36
30
|
// Get default branch (usually main or master)
|
|
37
31
|
const { data: repo } = await octokit.repos.get({
|
|
38
32
|
owner: repoInfo.owner,
|
|
@@ -41,27 +35,41 @@ export async function createOrUpdatePR(repoPath, branchName, version, changelogS
|
|
|
41
35
|
const baseBranch = repo.default_branch;
|
|
42
36
|
const title = `Release ${version}`;
|
|
43
37
|
const body = `## Release ${version}\n\n${changelogSummary}`;
|
|
44
|
-
if
|
|
45
|
-
|
|
46
|
-
|
|
38
|
+
// Check if a PR already exists for this branch
|
|
39
|
+
const { data: prsForBranch } = await octokit.pulls.list({
|
|
40
|
+
owner: repoInfo.owner,
|
|
41
|
+
repo: repoInfo.repo,
|
|
42
|
+
head: `${repoInfo.owner}:${branchName}`,
|
|
43
|
+
base: baseBranch,
|
|
44
|
+
state: 'open',
|
|
45
|
+
});
|
|
46
|
+
if (prsForBranch.length > 0) {
|
|
47
|
+
// Update existing PR for this branch
|
|
48
|
+
const pr = prsForBranch[0];
|
|
49
|
+
await octokit.pulls.update({
|
|
47
50
|
owner: repoInfo.owner,
|
|
48
51
|
repo: repoInfo.repo,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
pull_number: pr.number,
|
|
53
|
+
title,
|
|
54
|
+
body,
|
|
55
|
+
});
|
|
56
|
+
return { url: pr.html_url, isNew: false };
|
|
57
|
+
}
|
|
58
|
+
// Check for any other open release PRs and close them
|
|
59
|
+
const { data: allPrs } = await octokit.pulls.list({
|
|
60
|
+
owner: repoInfo.owner,
|
|
61
|
+
repo: repoInfo.repo,
|
|
62
|
+
base: baseBranch,
|
|
63
|
+
state: 'open',
|
|
64
|
+
});
|
|
65
|
+
const otherReleasePrs = allPrs.filter((pr) => pr.title.startsWith('Release ') && pr.head.ref.startsWith('release/'));
|
|
66
|
+
for (const oldPr of otherReleasePrs) {
|
|
67
|
+
await octokit.pulls.update({
|
|
68
|
+
owner: repoInfo.owner,
|
|
69
|
+
repo: repoInfo.repo,
|
|
70
|
+
pull_number: oldPr.number,
|
|
71
|
+
state: 'closed',
|
|
52
72
|
});
|
|
53
|
-
if (prs.length > 0) {
|
|
54
|
-
// Update existing PR
|
|
55
|
-
const pr = prs[0];
|
|
56
|
-
await octokit.pulls.update({
|
|
57
|
-
owner: repoInfo.owner,
|
|
58
|
-
repo: repoInfo.repo,
|
|
59
|
-
pull_number: pr.number,
|
|
60
|
-
title,
|
|
61
|
-
body,
|
|
62
|
-
});
|
|
63
|
-
return pr.html_url;
|
|
64
|
-
}
|
|
65
73
|
}
|
|
66
74
|
// Create new PR
|
|
67
75
|
const { data: pr } = await octokit.pulls.create({
|
|
@@ -72,6 +80,22 @@ export async function createOrUpdatePR(repoPath, branchName, version, changelogS
|
|
|
72
80
|
title,
|
|
73
81
|
body,
|
|
74
82
|
});
|
|
75
|
-
return pr.html_url;
|
|
83
|
+
return { url: pr.html_url, isNew: true };
|
|
84
|
+
}
|
|
85
|
+
export async function createGitHubRelease(repoPath, version, releaseNotes, token) {
|
|
86
|
+
const octokit = new Octokit({ auth: token });
|
|
87
|
+
const repoInfo = await getRepoInfo(repoPath);
|
|
88
|
+
const tagName = `v${version}`;
|
|
89
|
+
// Create the release
|
|
90
|
+
const { data: release } = await octokit.repos.createRelease({
|
|
91
|
+
owner: repoInfo.owner,
|
|
92
|
+
repo: repoInfo.repo,
|
|
93
|
+
tag_name: tagName,
|
|
94
|
+
name: `Release ${version}`,
|
|
95
|
+
body: releaseNotes,
|
|
96
|
+
draft: false,
|
|
97
|
+
prerelease: false,
|
|
98
|
+
});
|
|
99
|
+
return release.html_url;
|
|
76
100
|
}
|
|
77
101
|
//# sourceMappingURL=github.js.map
|
package/dist/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kFAAkF;AAElF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAOlD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,GAAG,GAAc,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAExD,iDAAiD;IACjD,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAEnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACf,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAiC;IAEjC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1E,OAAO,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,UAAkB,EAClB,OAAe,EACf,gBAAwB,EACxB,KAAa;IAEb,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE7C,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if a commit message indicates a release
|
|
3
|
+
* Supports formats like:
|
|
4
|
+
* - "release: 1.2.3"
|
|
5
|
+
* - "chore: release v1.2.3"
|
|
6
|
+
* - "release v1.2.3"
|
|
7
|
+
* - "chore(release): v1.2.3"
|
|
8
|
+
*/
|
|
9
|
+
export declare function isReleaseCommit(message: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Extracts the version number from a release commit message
|
|
12
|
+
* Returns null if the message is not a release commit
|
|
13
|
+
*/
|
|
14
|
+
export declare function extractVersionFromCommit(message: string): string | null;
|
|
15
|
+
//# sourceMappingURL=release-commit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-commit.d.ts","sourceRoot":"","sources":["../src/release-commit.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUvE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// ABOUTME: Utilities for detecting release commits and extracting version numbers
|
|
2
|
+
// ABOUTME: Supports multiple commit message formats (release:, chore: release, etc.)
|
|
3
|
+
/**
|
|
4
|
+
* Checks if a commit message indicates a release
|
|
5
|
+
* Supports formats like:
|
|
6
|
+
* - "release: 1.2.3"
|
|
7
|
+
* - "chore: release v1.2.3"
|
|
8
|
+
* - "release v1.2.3"
|
|
9
|
+
* - "chore(release): v1.2.3"
|
|
10
|
+
*/
|
|
11
|
+
export function isReleaseCommit(message) {
|
|
12
|
+
// Pattern: word "release" (not "released" or "releases") followed immediately by
|
|
13
|
+
// whitespace/colon/paren, then optional "v", then semver version
|
|
14
|
+
// Limits characters between "release" and version to avoid false matches like
|
|
15
|
+
// "docs: release notes for v1.2.3" or "chore: update release script"
|
|
16
|
+
const releasePattern = /\brelease\b[\s:)]{0,3}v?\d+\.\d+\.\d+(?:\-[a-zA-Z0-9.]+)?/i;
|
|
17
|
+
return releasePattern.test(message);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Extracts the version number from a release commit message
|
|
21
|
+
* Returns null if the message is not a release commit
|
|
22
|
+
*/
|
|
23
|
+
export function extractVersionFromCommit(message) {
|
|
24
|
+
if (!isReleaseCommit(message)) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
// Extract semver version (with optional "v" prefix and prerelease suffix)
|
|
28
|
+
const versionPattern = /v?(\d+\.\d+\.\d+(?:\-[a-zA-Z0-9.]+)?)/;
|
|
29
|
+
const match = message.match(versionPattern);
|
|
30
|
+
return match ? match[1] : null;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=release-commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-commit.js","sourceRoot":"","sources":["../src/release-commit.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,qFAAqF;AAErF;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,iFAAiF;IACjF,iEAAiE;IACjE,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,cAAc,GAAG,4DAA4D,CAAC;IACpF,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,MAAM,cAAc,GAAG,uCAAuC,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAE5C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "just-release",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Automated monorepo release tool with conventional commits",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,6 +18,10 @@
|
|
|
18
18
|
],
|
|
19
19
|
"author": "",
|
|
20
20
|
"license": "ISC",
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "https://github.com/Aeolun/just-release"
|
|
24
|
+
},
|
|
21
25
|
"dependencies": {
|
|
22
26
|
"@octokit/rest": "^22.0.1",
|
|
23
27
|
"conventional-commits-parser": "^6.2.1",
|