github-archiver 1.1.4 → 1.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  ## [1.1.1](https://github.com/mynameistito/github-archiver/compare/v1.1.0...v1.1.1) (2026-01-12)
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`6948c29`](https://github.com/mynameistito/github-archiver/commit/6948c29abe67508b817a84cd95c4f88d89afdb5c) Thanks [@mynameistito](https://github.com/mynameistito)! - Migrate to Bun runtime and enhance documentation
8
+
9
+ - Migrate all npm scripts to use Bun for faster development and execution
10
+ - Replace tsx with native Bun TypeScript support
11
+ - Add comprehensive Bun installation and development documentation
12
+ - Improve README with Bun-first approach and npm fallback
13
+ - Enhance bunfig.toml configuration for better test setup
14
+ - Update build target to Node.js 22+
15
+ - Fix output formatting for improved readability
16
+
17
+ ## 1.1.5
18
+
19
+ ### Patch Changes
20
+
21
+ - [`587569d`](https://github.com/mynameistito/github-archiver/commit/587569d6cf918c3396e58a9b3cf5d6efba9e149a) Thanks [@mynameistito](https://github.com/mynameistito)! - Fix changelog header detection in GitHub Release body extraction
22
+
23
+ - Distinguish between level 2 headers (## ) and level 3 headers (### ) in changelog
24
+ - Prevent '### Patch Changes' from being mistaken as version header boundary
25
+ - Ensure full changeset content is extracted and displayed in release body
26
+ - Fixes empty release description issue caused by incorrect header matching
27
+
3
28
  ## 1.1.4
4
29
 
5
30
  ### Patch Changes
package/README.md CHANGED
@@ -23,22 +23,30 @@ A powerful CLI for mass archiving GitHub repositories with parallel processing a
23
23
  npm install -g github-archiver
24
24
  ```
25
25
 
26
+ or with Bun:
27
+
28
+ ```bash
29
+ bun install -g github-archiver
30
+ ```
31
+
26
32
  ### From Source
27
33
 
28
34
  ```bash
29
35
  git clone https://github.com/mynameistito/github-archiver.git
30
36
  cd github-archiver
31
- npm install && npm run build
32
- npm install -g .
37
+ bun install && bun run build
38
+ bun install -g .
33
39
  ```
34
40
 
35
41
  ### Development
36
42
 
37
43
  ```bash
38
- npm install
39
- npm run dev -- <command>
44
+ bun install
45
+ bun run dev -- <command>
40
46
  ```
41
47
 
48
+ **Note:** This project is optimized for [Bun](https://bun.sh). While it works with Node.js (v22+), Bun provides faster installation, execution, and development experience.
49
+
42
50
  ## Quick Start
43
51
 
44
52
  ```bash
@@ -55,11 +63,11 @@ github-archiver archive
55
63
 
56
64
  Manage GitHub authentication.
57
65
 
58
- | Command | Description |
59
- |---------|-------------|
60
- | `auth login` | Authenticate with Personal Access Token |
61
- | `auth logout` | Remove stored token |
62
- | `auth status` | Check authentication status |
66
+ | Command | Description |
67
+ | -------------- | ---------------------------------- |
68
+ | `auth login` | Authenticate with Personal Access Token |
69
+ | `auth logout` | Remove stored token |
70
+ | `auth status` | Check authentication status |
63
71
 
64
72
  ### `archive`
65
73
 
@@ -69,15 +77,15 @@ Archive multiple repositories.
69
77
  github-archiver archive [options]
70
78
  ```
71
79
 
72
- | Option | Default | Description |
73
- |--------|---------|-------------|
74
- | `--file <path>` | - | Read repository URLs from file |
75
- | `--stdin` | - | Read from stdin |
76
- | `--dry-run` | false | Validate without archiving |
77
- | `--concurrency <n>` | 3 | Parallel operations (1-50) |
78
- | `--timeout <n>` | 300 | API timeout in seconds (10-3600) |
79
- | `--verbose` | false | Enable verbose logging |
80
- | `--force` | false | Skip confirmation prompts |
80
+ | Option | Default | Description |
81
+ | --------------------- | ------- | -------------------------------------- |
82
+ | `--file <path>` | - | Read repository URLs from file |
83
+ | `--stdin` | - | Read from stdin |
84
+ | `--dry-run` | false | Validate without archiving |
85
+ | `--concurrency <n>` | 3 | Parallel operations (1-50) |
86
+ | `--timeout <n>` | 300 | API timeout in seconds (10-3600) |
87
+ | `--verbose` | false | Enable verbose logging |
88
+ | `--force` | false | Skip confirmation prompts |
81
89
 
82
90
  **Examples:**
83
91
 
@@ -148,16 +156,16 @@ Starting to archive repositories... (concurrency: 3)
148
156
 
149
157
  [======================= ] 4/5 (80%) - owner/repo-3
150
158
 
151
- ╔════════════════════════════════════╗
152
- Archive Operation Summary
153
- ╠════════════════════════════════════╣
154
- Successful: 5
155
- ⚠️ Skipped: 0
156
- Failed: 0
157
- ╠════════════════════════════════════╣
158
- Total: 5
159
- Duration: 2m 45s
160
- ╚════════════════════════════════════╝
159
+ ┌────────────────────────────────────┐
160
+ Archive Operation Summary
161
+ ├────────────────────────────────────┤
162
+ Successful: 5
163
+ Skipped: 0
164
+ Failed: 0
165
+ ├────────────────────────────────────┤
166
+ Total: 5
167
+ Duration: 2m 45s
168
+ └────────────────────────────────────┘
161
169
 
162
170
  ✅ All repositories processed successfully!
163
171
  ```
@@ -216,13 +224,28 @@ tests/
216
224
 
217
225
  ## Development
218
226
 
227
+ ```bash
228
+ bun install
229
+
230
+ # Development commands
231
+ bun run typecheck # Check TypeScript
232
+ bun run test # Run unit tests
233
+ bun run test:coverage # Run tests with coverage
234
+ bun run build # Build production bundle
235
+ bun run lint # Check code style
236
+ bun run format # Auto-format code
237
+ bun run dev -- auth login # Run dev mode
238
+ ```
239
+
240
+ **Using npm instead?**
241
+
219
242
  ```bash
220
243
  npm install
221
- npm run typecheck # Check TypeScript
222
- npm run test # Run unit tests
223
- npm run build # Build production bundle
224
- npm run lint # Check code style
225
- npm run format # Auto-format code
244
+ npm run typecheck # Equivalent commands
245
+ npm run test
246
+ npm run build
247
+ npm run lint
248
+ npm run format
226
249
  ```
227
250
 
228
251
  ### Code Standards
@@ -233,7 +256,17 @@ This project uses **Ultracite** (Biome) for:
233
256
  - Consistent formatting
234
257
  - Comprehensive error handling
235
258
 
236
- See `AGENTS.md` for details.
259
+ **Run code quality checks:**
260
+
261
+ ```bash
262
+ # Check for issues
263
+ bun run lint
264
+
265
+ # Auto-fix and format code
266
+ bun run format
267
+ ```
268
+
269
+ See `AGENTS.md` for detailed code standards and best practices.
237
270
 
238
271
  ## Release Process
239
272
 
@@ -249,10 +282,21 @@ Pushing to `main` triggers automatic release. See [docs/RELEASE.md](docs/RELEASE
249
282
 
250
283
  ## Contributing
251
284
 
252
- 1. Follow code standards (`npm run format`)
253
- 2. Add tests for new features
254
- 3. Ensure `npm run typecheck` and `npm run test` pass
255
- 4. Create pull request with clear description
285
+ 1. Install dependencies: `bun install`
286
+ 2. Follow code standards: `bun run format`
287
+ 3. Add tests for new features
288
+ 4. Ensure `bun run typecheck` and `bun run test` pass
289
+ 5. Create pull request with clear description
290
+
291
+ **Before committing:**
292
+
293
+ ```bash
294
+ bun run format # Auto-fix code style
295
+ bun run lint # Check for issues
296
+ bun run typecheck # Verify TypeScript
297
+ bun run test # Run test suite
298
+ bun run build # Build production bundle
299
+ ```
256
300
 
257
301
  ## License
258
302
 
@@ -262,10 +306,22 @@ MIT - See LICENSE file for details.
262
306
 
263
307
  Check the [Troubleshooting](#troubleshooting) section or open an issue on GitHub.
264
308
 
309
+ ## Runtime & Tooling
310
+
311
+ - **Runtime**: [Bun](https://bun.sh) (primary) or Node.js 22+
312
+ - **Package Manager**: Bun (recommended) or npm
313
+ - **Language**: TypeScript
314
+ - **CLI Framework**: Commander.js
315
+ - **GitHub API**: Octokit
316
+ - **Logging**: Winston
317
+ - **Code Quality**: Biome (via Ultracite preset)
318
+ - **Task Queue**: p-queue
319
+ - **Release Management**: Changesets
320
+
265
321
  ## Acknowledgments
266
322
 
267
- Built with TypeScript, Commander.js, Octokit, Winston, and Biome.
323
+ Built with TypeScript, Commander.js, Octokit, Winston, Biome, and optimized for Bun runtime.
268
324
 
269
325
  ---
270
326
 
271
- Current version: 1.0.0 | [Releases](https://github.com/mynameistito/github-archiver/releases)
327
+ [Releases](https://github.com/mynameistito/github-archiver/releases)
package/bunfig.toml CHANGED
@@ -1,16 +1,16 @@
1
1
  [install]
2
- # Install settings inherited by tests
2
+ # Install settings
3
3
  registry = "https://registry.npmjs.org/"
4
+ # Use exact versions in lockfile for reproducible builds
5
+ lockfile = "bun.lock"
4
6
 
5
7
  [env]
6
- # Environment variables for tests
8
+ # Environment variables for tests and runtime
7
9
  NODE_ENV = "test"
8
10
 
9
11
  [test]
10
- # Test discovery
11
- root = "src"
12
-
13
- # Execution settings
12
+ # Test discovery and execution
13
+ root = "tests"
14
14
  timeout = 10000
15
15
 
16
16
  # Coverage configuration
@@ -22,5 +22,15 @@ coverageSkipTestFiles = true
22
22
  # Coverage path ignore patterns
23
23
  coveragePathIgnorePatterns = [
24
24
  "**/*.test.ts",
25
- "**/*.spec.ts"
25
+ "**/*.spec.ts",
26
+ "**/node_modules/**"
26
27
  ]
28
+
29
+ # Test environment
30
+ env = "node"
31
+ # Use Bun's test runner (default)
32
+ run = "bun"
33
+
34
+ [define]
35
+ # Global constants for build/runtime
36
+ "process.env.NODE_ENV" = "\"test\""
@@ -0,0 +1,293 @@
1
+ TN:
2
+ SF:src/constants/defaults.ts
3
+ FNF:1
4
+ FNH:1
5
+ DA:1,37
6
+ DA:2,35
7
+ DA:3,40
8
+ DA:4,29
9
+ DA:5,35
10
+ DA:6,54
11
+ LF:6
12
+ LH:6
13
+ end_of_record
14
+ TN:
15
+ SF:src/constants/paths.ts
16
+ FNF:1
17
+ FNH:1
18
+ DA:1,34
19
+ DA:2,33
20
+ DA:4,51
21
+ DA:6,23
22
+ DA:7,18
23
+ DA:8,43
24
+ DA:9,32
25
+ DA:10,53
26
+ DA:11,46
27
+ DA:12,1
28
+ LF:10
29
+ LH:10
30
+ end_of_record
31
+ TN:
32
+ SF:src/types/config.ts
33
+ FNF:0
34
+ FNH:0
35
+ LF:0
36
+ LH:0
37
+ end_of_record
38
+ TN:
39
+ SF:src/types/error.ts
40
+ FNF:1
41
+ FNH:1
42
+ DA:20,1
43
+ DA:22,13
44
+ DA:23,12
45
+ DA:24,18
46
+ DA:25,24
47
+ DA:26,38
48
+ DA:27,10
49
+ DA:28,38
50
+ DA:29,62
51
+ DA:30,42
52
+ DA:31,66
53
+ DA:32,62
54
+ DA:33,111
55
+ DA:35,1
56
+ LF:14
57
+ LH:14
58
+ end_of_record
59
+ TN:
60
+ SF:src/types/github.ts
61
+ FNF:0
62
+ FNH:0
63
+ LF:0
64
+ LH:0
65
+ end_of_record
66
+ TN:
67
+ SF:src/types/index.ts
68
+ FNF:1
69
+ FNH:1
70
+ DA:2,25
71
+ DA:3,24
72
+ DA:4,24
73
+ LF:3
74
+ LH:3
75
+ end_of_record
76
+ TN:
77
+ SF:src/utils/formatting.ts
78
+ FNF:6
79
+ FNH:5
80
+ DA:1,8
81
+ DA:2,19
82
+ DA:3,16
83
+ DA:4,2
84
+ DA:5,20
85
+ DA:6,35
86
+ DA:7,2
87
+ DA:8,41
88
+ DA:9,49
89
+ DA:10,32
90
+ DA:13,11
91
+ DA:14,21
92
+ DA:15,12
93
+ DA:16,2
94
+ DA:17,17
95
+ DA:18,40
96
+ DA:19,54
97
+ DA:20,51
98
+ DA:23,18
99
+ DA:24,21
100
+ DA:25,11
101
+ DA:26,2
102
+ DA:27,45
103
+ DA:30,1
104
+ DA:31,11
105
+ DA:32,7
106
+ DA:33,12
107
+ DA:34,3
108
+ DA:35,21
109
+ DA:36,12
110
+ DA:37,2
111
+ DA:38,60
112
+ DA:39,41
113
+ DA:40,41
114
+ DA:41,39
115
+ DA:42,58
116
+ DA:43,43
117
+ DA:46,0
118
+ DA:47,0
119
+ DA:51,21
120
+ DA:52,34
121
+ DA:53,11
122
+ DA:54,2
123
+ DA:55,48
124
+ DA:58,28
125
+ DA:59,17
126
+ DA:60,14
127
+ DA:61,16
128
+ DA:62,20
129
+ DA:63,13
130
+ DA:64,9
131
+ DA:65,1
132
+ LF:52
133
+ LH:50
134
+ end_of_record
135
+ TN:
136
+ SF:src/utils/logger.ts
137
+ FNF:5
138
+ FNH:2
139
+ DA:1,41
140
+ DA:2,30
141
+ DA:3,58
142
+ DA:4,43
143
+ DA:7,19
144
+ DA:9,0
145
+ DA:10,0
146
+ DA:11,0
147
+ DA:12,0
148
+ DA:13,1
149
+ DA:17,17
150
+ DA:18,54
151
+ DA:19,49
152
+ DA:21,33
153
+ DA:22,10
154
+ DA:23,31
155
+ DA:24,61
156
+ DA:25,40
157
+ DA:26,21
158
+ DA:27,6
159
+ DA:28,48
160
+ DA:29,19
161
+ DA:30,37
162
+ DA:31,41
163
+ DA:32,20
164
+ DA:33,9
165
+ DA:34,37
166
+ DA:35,40
167
+ DA:36,6
168
+ DA:37,3
169
+ DA:38,3
170
+ DA:41,0
171
+ DA:42,0
172
+ DA:43,0
173
+ DA:44,0
174
+ DA:45,0
175
+ DA:46,0
176
+ DA:47,0
177
+ DA:48,0
178
+ DA:49,0
179
+ DA:50,0
180
+ DA:51,0
181
+ DA:52,0
182
+ DA:53,1
183
+ DA:56,11
184
+ DA:57,25
185
+ DA:58,34
186
+ DA:59,2
187
+ DA:60,22
188
+ DA:63,0
189
+ LF:50
190
+ LH:33
191
+ end_of_record
192
+ TN:
193
+ SF:src/utils/parser.ts
194
+ FNF:3
195
+ FNH:3
196
+ DA:2,51
197
+ DA:3,37
198
+ DA:5,27
199
+ DA:6,64
200
+ DA:8,30
201
+ DA:10,87
202
+ DA:12,55
203
+ DA:14,25
204
+ DA:15,1
205
+ DA:17,9
206
+ DA:18,29
207
+ DA:20,18
208
+ DA:21,68
209
+ DA:22,2
210
+ DA:24,47
211
+ DA:25,41
212
+ DA:26,17
213
+ DA:27,29
214
+ DA:28,28
215
+ DA:30,21
216
+ DA:31,0
217
+ DA:32,0
218
+ DA:33,0
219
+ DA:34,0
220
+ DA:35,6
221
+ DA:37,24
222
+ DA:38,0
223
+ DA:39,0
224
+ DA:40,0
225
+ DA:41,0
226
+ DA:42,6
227
+ DA:44,23
228
+ DA:45,0
229
+ DA:46,0
230
+ DA:47,0
231
+ DA:48,0
232
+ DA:49,6
233
+ DA:51,66
234
+ DA:53,47
235
+ DA:54,26
236
+ DA:55,14
237
+ DA:56,13
238
+ DA:57,31
239
+ DA:58,9
240
+ DA:60,16
241
+ DA:61,14
242
+ DA:62,13
243
+ DA:63,24
244
+ DA:64,1
245
+ DA:65,2
246
+ DA:66,2
247
+ DA:68,75
248
+ DA:71,10
249
+ DA:72,28
250
+ DA:75,7
251
+ DA:78,3
252
+ DA:79,19
253
+ DA:80,21
254
+ DA:82,47
255
+ DA:83,33
256
+ DA:84,31
257
+ DA:86,47
258
+ DA:87,13
259
+ DA:88,4
260
+ DA:90,11
261
+ DA:91,49
262
+ DA:92,25
263
+ DA:93,62
264
+ DA:94,28
265
+ DA:95,23
266
+ DA:96,8
267
+ DA:97,21
268
+ DA:98,21
269
+ DA:99,43
270
+ DA:100,22
271
+ DA:101,21
272
+ DA:102,28
273
+ DA:103,22
274
+ DA:104,9
275
+ DA:105,63
276
+ DA:106,21
277
+ DA:107,25
278
+ DA:108,9
279
+ DA:110,2
280
+ DA:112,43
281
+ DA:113,23
282
+ DA:114,24
283
+ DA:115,28
284
+ DA:116,54
285
+ DA:117,5
286
+ DA:119,26
287
+ DA:122,27
288
+ DA:123,21
289
+ DA:124,23
290
+ DA:125,1
291
+ LF:95
292
+ LH:83
293
+ end_of_record
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-archiver",
3
- "version": "1.1.4",
3
+ "version": "1.2.0",
4
4
  "description": "Archive GitHub repositories via CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,21 +12,21 @@
12
12
  "bun": ">=1.0.0"
13
13
  },
14
14
  "scripts": {
15
- "build": "tsx scripts/build.ts",
16
- "dev": "tsx src/index.ts",
17
- "lint": "ultracite check",
18
- "format": "ultracite fix",
19
- "fix": "ultracite fix",
20
- "typecheck": "tsc --noEmit",
21
- "tsc": "tsc --noEmit",
15
+ "build": "bun scripts/build.ts",
16
+ "dev": "bun src/index.ts",
17
+ "lint": "bunx ultracite check",
18
+ "format": "bunx ultracite fix",
19
+ "fix": "bunx ultracite fix",
20
+ "typecheck": "bunx tsc --noEmit",
21
+ "tsc": "bunx tsc --noEmit",
22
22
  "test": "bun test ./tests",
23
23
  "test:coverage": "bun test --coverage ./tests",
24
- "changeset": "changeset",
25
- "changeset:add": "changeset add",
26
- "changeset:version": "changeset version",
27
- "changeset:publish": "changeset publish",
28
- "release": "changeset publish",
29
- "prepublishOnly": "npm run build && npm run typecheck && npm run lint"
24
+ "changeset": "bunx changeset",
25
+ "changeset:add": "bunx changeset add",
26
+ "changeset:version": "bunx changeset version",
27
+ "changeset:publish": "bunx changeset publish",
28
+ "release": "bunx changeset publish",
29
+ "prepublishOnly": "bun run build && bun run typecheck && bun run lint"
30
30
  },
31
31
  "dependencies": {
32
32
  "commander": "^14.0.2",