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 CHANGED
@@ -1,6 +1,23 @@
1
1
  # just-release
2
2
 
3
- Automated monorepo release tool with conventional commits support.
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
- Create `.github/workflows/publish.yml` to publish when release PR is merged:
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
- - run: pnpm publish -r --access public
173
- env:
174
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
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 `version` field
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: Generate changelogs
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 prUrl = await createOrUpdatePR(cwd, branchName, versionBump.newVersion, changelogSummary, githubToken);
192
- console.log(` PR URL: ${prUrl}\n`);
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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commits.d.ts","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKlD,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,CAyEvB"}
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
- // Get all commits
10
- const log = await git.log();
11
- // Find the most recent release commit (message starts with "release: ")
12
- let endIndex = log.all.length; // Take all commits by default
13
- for (let i = 0; i < log.all.length; i++) {
14
- if (log.all[i].message.startsWith('release: ')) {
15
- endIndex = i; // Stop before the release commit
16
- break;
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"commits.js","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"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"}
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<string>;
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,CAoB3E;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"}
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
- // Generate branch name with current date
30
- const today = new Date().toISOString().split('T')[0];
31
- const branchName = `release/${today}`;
32
- // Check if branch already exists
33
- const branches = await git.branchLocal();
34
- if (branches.all.includes(branchName)) {
35
- // Branch exists, switch to it and reset to main
36
- await git.checkout(branchName);
37
- await git.reset(['--hard', 'HEAD']);
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":"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"}
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<string>;
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
@@ -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,CA0DjB"}
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 (existingReleaseBranch) {
45
- // Find existing PR for this branch
46
- const { data: prs } = await octokit.pulls.list({
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
- head: `${repoInfo.owner}:${existingReleaseBranch}`,
50
- base: baseBranch,
51
- state: 'open',
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
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
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.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",