gitverse-release 2.0.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 +352 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +118 -0
- package/dist/cli.js.map +10 -0
- package/dist/config.d.ts +13 -0
- package/dist/gitverse.d.ts +28 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +1299 -0
- package/dist/index.js.map +36 -0
- package/dist/types.d.ts +328 -0
- package/dist/utils/changelog.d.ts +14 -0
- package/dist/utils/git.d.ts +45 -0
- package/dist/utils/parser.d.ts +29 -0
- package/dist/utils/version.d.ts +18 -0
- package/package.json +60 -0
package/README.md
ADDED
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
# @gitverse/release
|
|
2
|
+
|
|
3
|
+
> =� 2B><0B870F8O @5;87>2 4;O GitVerse @5?>78B>@852 A ?>445@6:>9 Conventional Commits
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@gitverse/release)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
[](./COVERAGE.md)
|
|
8
|
+
|
|
9
|
+
## =� >7<>6=>AB8
|
|
10
|
+
|
|
11
|
+
- > **2B><0B8G5A:>5 25@A8>=8@>20=85** =0 >A=>25 Conventional Commits
|
|
12
|
+
- =� **5=5@0F8O CHANGELOG** A 3@C??8@>2:>9 ?> B8?0< :><<8B>2
|
|
13
|
+
- < **=B53@0F8O A GitVerse API** 4;O A>740=8O @5;87>2
|
|
14
|
+
- =� **>445@6:0 <>=>@5?>78B>@852** A =57028A8<K< 25@A8>=8@>20=85<
|
|
15
|
+
- <� **2B><0B8G5A:>5 A>740=85** git B53>2 8 :><<8B>2
|
|
16
|
+
- =
|
|
17
|
** 568< dry-run** 4;O 157>?0A=>3> B5AB8@>20=8O
|
|
18
|
+
- � **81:0O :>=D83C@0F8O** G5@57 `.gitversereleaserc.json`
|
|
19
|
+
|
|
20
|
+
## =� #AB0=>2:0
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# ! ?><>ILN npm
|
|
24
|
+
npm install -D @gitverse/release
|
|
25
|
+
|
|
26
|
+
# ! ?><>ILN bun
|
|
27
|
+
bun add -d @gitverse/release
|
|
28
|
+
|
|
29
|
+
# ! ?><>ILN yarn
|
|
30
|
+
yarn add -D @gitverse/release
|
|
31
|
+
|
|
32
|
+
# ! ?><>ILN pnpm
|
|
33
|
+
pnpm add -D @gitverse/release
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## =� KAB@K9 AB0@B
|
|
37
|
+
|
|
38
|
+
### 1. 07>2>5 8A?>;L7>20=85
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# !>740BL @5;87 (dry-run 4;O ?@>25@:8)
|
|
42
|
+
npx @gitverse/release --dry-run
|
|
43
|
+
|
|
44
|
+
# !>740BL @5;87 8 >?C1;8:>20BL
|
|
45
|
+
npx @gitverse/release
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 2. 0AB@>9:0 :>=D83C@0F88
|
|
49
|
+
|
|
50
|
+
!>7409B5 `.gitversereleaserc.json` 2 :>@=5 ?@>5:B0:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"git": {
|
|
55
|
+
"commitMessage": "chore(release): =� {version} [skip ci]",
|
|
56
|
+
"tagMessage": "Release {version}",
|
|
57
|
+
"push": true,
|
|
58
|
+
"commitChanges": true
|
|
59
|
+
},
|
|
60
|
+
"changelog": {
|
|
61
|
+
"types": {
|
|
62
|
+
"feat": "( Features",
|
|
63
|
+
"fix": "= Bug Fixes",
|
|
64
|
+
"perf": "� Performance",
|
|
65
|
+
"docs": "=� Documentation"
|
|
66
|
+
},
|
|
67
|
+
"showHash": true,
|
|
68
|
+
"showAuthor": true
|
|
69
|
+
},
|
|
70
|
+
"gitverse": {
|
|
71
|
+
"createRelease": true
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 3. >102LB5 2 package.json
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"scripts": {
|
|
81
|
+
"release": "@gitverse/release",
|
|
82
|
+
"release:dry": "@gitverse/release --dry-run"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## =� A?>;L7>20=85
|
|
88
|
+
|
|
89
|
+
### Conventional Commits
|
|
90
|
+
|
|
91
|
+
0:5B 02B><0B8G5A:8 >?@545;O5B B8? 25@A8>=8@>20=8O =0 >A=>25 :><<8B>2:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Patch (1.0.0 � 1.0.1)
|
|
95
|
+
git commit -m "fix: 8A?@02;5=0 >H81:0 20;840F88"
|
|
96
|
+
|
|
97
|
+
# Minor (1.0.0 � 1.1.0)
|
|
98
|
+
git commit -m "feat: 4>102;5= =>2K9 API endpoint"
|
|
99
|
+
|
|
100
|
+
# Major (1.0.0 � 2.0.0)
|
|
101
|
+
git commit -m "feat!: 87<5=5= D>@<0B >B25B0 API"
|
|
102
|
+
# 8;8
|
|
103
|
+
git commit -m "feat: =>20O DC=:F8O
|
|
104
|
+
|
|
105
|
+
BREAKING CHANGE: 87<5=5= D>@<0B :>=D83C@0F88"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### @>3@0<<=>5 8A?>;L7>20=85
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
import { release } from "@gitverse/release";
|
|
112
|
+
|
|
113
|
+
// @>AB>9 @5;87
|
|
114
|
+
const result = await release();
|
|
115
|
+
|
|
116
|
+
console.log(result.success); // true
|
|
117
|
+
console.log(result.newVersion); // "1.1.0"
|
|
118
|
+
console.log(result.tag); // "v1.1.0"
|
|
119
|
+
|
|
120
|
+
// ! >?F8O<8
|
|
121
|
+
const result = await release(undefined, {
|
|
122
|
+
dryRun: true,
|
|
123
|
+
version: "2.0.0",
|
|
124
|
+
skipGitStatusCheck: false,
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// ;O <>=>@5?>78B>@8O
|
|
128
|
+
const result = await release("my-package", {
|
|
129
|
+
dryRun: false,
|
|
130
|
+
});
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## <� >=>@5?>78B>@88
|
|
134
|
+
|
|
135
|
+
### >=D83C@0F8O 4;O <>=>@5?K
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"monorepo": {
|
|
140
|
+
"enabled": true,
|
|
141
|
+
"packages": [
|
|
142
|
+
{
|
|
143
|
+
"name": "core",
|
|
144
|
+
"packageName": "@myorg/core",
|
|
145
|
+
"path": "./packages/core",
|
|
146
|
+
"tagPrefix": "core@",
|
|
147
|
+
"changelog": "CHANGELOG.md"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"name": "ui",
|
|
151
|
+
"packageName": "@myorg/ui",
|
|
152
|
+
"path": "./packages/ui",
|
|
153
|
+
"tagPrefix": "ui@",
|
|
154
|
+
"changelog": "CHANGELOG.md"
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### A?>;L7>20=85
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# 5;87 :>=:@5B=>3> ?0:5B0
|
|
165
|
+
npx @gitverse/release core
|
|
166
|
+
|
|
167
|
+
# Dry-run 4;O ?0:5B0
|
|
168
|
+
npx @gitverse/release ui --dry-run
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### $8;LB@0F8O :><<8B>2 ?> scope
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# ><<8BK 4;O ?0:5B0 "core"
|
|
175
|
+
git commit -m "feat(core): 4>102;5=0 =>20O DC=:F8O"
|
|
176
|
+
|
|
177
|
+
# ><<8BK 4;O ?0:5B0 "ui"
|
|
178
|
+
git commit -m "fix(ui): 8A?@02;5= 103 2 :><?>=5=B5"
|
|
179
|
+
|
|
180
|
+
# 1I85 :><<8BK (2;8ONB =0 2A5 ?0:5BK)
|
|
181
|
+
git commit -m "chore: >1=>2;5=K 7028A8<>AB8"
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## � >=D83C@0F8O
|
|
185
|
+
|
|
186
|
+
### >;=K9 ?@8<5@ :>=D83C@0F88
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"git": {
|
|
191
|
+
"commitMessage": "chore(release): =� {version} [skip ci]",
|
|
192
|
+
"tagMessage": "Release {version}",
|
|
193
|
+
"push": true,
|
|
194
|
+
"commitChanges": true
|
|
195
|
+
},
|
|
196
|
+
"changelog": {
|
|
197
|
+
"types": {
|
|
198
|
+
"feat": "( Features",
|
|
199
|
+
"fix": "= Bug Fixes",
|
|
200
|
+
"perf": "� Performance Improvements",
|
|
201
|
+
"refactor": "{ Code Refactoring",
|
|
202
|
+
"docs": "=� Documentation",
|
|
203
|
+
"style": "=� Styles",
|
|
204
|
+
"test": " Tests",
|
|
205
|
+
"build": "=w Build System",
|
|
206
|
+
"ci": "=' CI/CD",
|
|
207
|
+
"chore": "=( Chores"
|
|
208
|
+
},
|
|
209
|
+
"showHash": true,
|
|
210
|
+
"showAuthor": true
|
|
211
|
+
},
|
|
212
|
+
"versioning": {
|
|
213
|
+
"tagPrefix": "v",
|
|
214
|
+
"prereleasePrefix": "beta",
|
|
215
|
+
"allowPrerelease": false
|
|
216
|
+
},
|
|
217
|
+
"gitverse": {
|
|
218
|
+
"createRelease": true,
|
|
219
|
+
"token": "${GITVERSE_TOKEN}"
|
|
220
|
+
},
|
|
221
|
+
"monorepo": {
|
|
222
|
+
"enabled": false,
|
|
223
|
+
"packages": []
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### 5@5<5==K5 >:@C65=8O
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
# GitVerse B>:5= 4;O A>740=8O @5;87>2
|
|
232
|
+
export GITVERSE_TOKEN="your-token-here"
|
|
233
|
+
|
|
234
|
+
# ;8 G5@57 .env D09;
|
|
235
|
+
echo "GITVERSE_TOKEN=your-token" >> .env
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## =
|
|
1
239
|
?F88 :><0=4=>9 AB@>:8
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
npx @gitverse/release [package] [options]
|
|
243
|
+
|
|
244
|
+
@3C<5=BK:
|
|
245
|
+
package <O ?0:5B0 4;O @5;870 (4;O <>=>@5?>78B>@852)
|
|
246
|
+
|
|
247
|
+
?F88:
|
|
248
|
+
--dry-run 0?CAB8BL 157 2=5A5=8O 87<5=5=89
|
|
249
|
+
--version <version> #:070BL :>=:@5B=CN 25@A8N
|
|
250
|
+
--skip-git-check @>?CAB8BL ?@>25@:C G8AB>BK git
|
|
251
|
+
--help >:070BL A?@02:C
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## =� @8<5@K 2K2>40
|
|
255
|
+
|
|
256
|
+
### 1KG=K9 @5;87
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
Release created successfully!
|
|
260
|
+
|
|
261
|
+
=� Package: my-app
|
|
262
|
+
=� Version: 1.0.0 � 1.1.0
|
|
263
|
+
<� Tag: v1.1.0
|
|
264
|
+
< Release: https://gitverse.ru/owner/repo/releases/tag/v1.1.0
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Dry-run @568<
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
=
|
|
2
271
|
DRY RUN MODE - No changes will be made
|
|
272
|
+
|
|
273
|
+
=� Package: my-app
|
|
274
|
+
=� Version: 1.0.0 � 1.1.0
|
|
275
|
+
<� Tag: v1.1.0
|
|
276
|
+
=� Commits: 3
|
|
277
|
+
|
|
278
|
+
=� CHANGELOG:
|
|
279
|
+
|
|
280
|
+
## [1.1.0] - 2025-01-31
|
|
281
|
+
|
|
282
|
+
### ( Features
|
|
283
|
+
|
|
284
|
+
- add user authentication ([abc123](https://gitverse.ru/owner/repo/commit/abc123)) by @user
|
|
285
|
+
- implement dark mode ([def456](https://gitverse.ru/owner/repo/commit/def456)) by @user
|
|
286
|
+
|
|
287
|
+
### = Bug Fixes
|
|
288
|
+
|
|
289
|
+
- fix validation error ([ghi789](https://gitverse.ru/owner/repo/commit/ghi789)) by @user
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## >� "5AB8@>20=85
|
|
293
|
+
|
|
294
|
+
0:5B 8<55B 180+ B5AB>2 A ?>:@KB85< ~99.85%:
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
# 0?CAB8BL B5ABK
|
|
298
|
+
bun test
|
|
299
|
+
|
|
300
|
+
# ! ?>:@KB85<
|
|
301
|
+
bun test:coverage
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## > =B53@0F8O A CI/CD
|
|
305
|
+
|
|
306
|
+
### GitHub Actions (.gitverse/workflows/release.yaml)
|
|
307
|
+
|
|
308
|
+
```yaml
|
|
309
|
+
name: Release
|
|
310
|
+
|
|
311
|
+
on:
|
|
312
|
+
workflow_dispatch:
|
|
313
|
+
|
|
314
|
+
jobs:
|
|
315
|
+
release:
|
|
316
|
+
runs-on: ubuntu-latest
|
|
317
|
+
steps:
|
|
318
|
+
- uses: actions/checkout@v4
|
|
319
|
+
with:
|
|
320
|
+
fetch-depth: 0
|
|
321
|
+
token: ${{ secrets.GH_TOKEN }}
|
|
322
|
+
|
|
323
|
+
- uses: oven-sh/setup-bun@v1
|
|
324
|
+
|
|
325
|
+
- run: bun install
|
|
326
|
+
|
|
327
|
+
- name: Configure Git
|
|
328
|
+
run: |
|
|
329
|
+
git config user.name "Release Bot"
|
|
330
|
+
git config user.email "bot@example.com"
|
|
331
|
+
|
|
332
|
+
- name: Create Release
|
|
333
|
+
run: bun run release
|
|
334
|
+
env:
|
|
335
|
+
GITVERSE_TOKEN: ${{ secrets.GITVERSE_TOKEN }}
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
## =� 8F5=78O
|
|
339
|
+
|
|
340
|
+
MIT � [RainyPixel](https://gitverse.ru/RainyPixel)
|
|
341
|
+
|
|
342
|
+
## = !AK;:8
|
|
343
|
+
|
|
344
|
+
- [GitVerse SDK](https://gitverse.ru/RainyPixel/gitverse-sdk)
|
|
345
|
+
- [Conventional Commits](https://www.conventionalcommits.org/ru/v1.0.0/)
|
|
346
|
+
- [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/)
|
|
347
|
+
- [Semantic Versioning](https://semver.org/lang/ru/)
|
|
348
|
+
|
|
349
|
+
## = 0H;8 103?
|
|
350
|
+
|
|
351
|
+
!>7409B5 issue =0 [GitVerse](https://gitverse.ru/RainyPixel/gitverse-sdk/issues)
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
!45;0=> A d 4;O GitVerse
|
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import {
|
|
3
|
+
release
|
|
4
|
+
} from "./index.js";
|
|
5
|
+
|
|
6
|
+
// src/cli.ts
|
|
7
|
+
import { parseArgs } from "node:util";
|
|
8
|
+
var HELP_TEXT = `
|
|
9
|
+
gitverse-release - Release automation tool for GitVerse
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
gitverse-release [package-name] [options]
|
|
13
|
+
|
|
14
|
+
Options:
|
|
15
|
+
--dry-run Test run without making changes
|
|
16
|
+
--config <path> Path to config file (default: .gitverereleaserc.json)
|
|
17
|
+
--package <name> Package name to release (for monorepo)
|
|
18
|
+
--version <version> Force specific version instead of auto-calculation
|
|
19
|
+
--prerelease [tag] Create prerelease version (e.g., beta, alpha, rc)
|
|
20
|
+
--no-commit Skip creating git commit
|
|
21
|
+
--no-tag Skip creating git tag
|
|
22
|
+
--no-push Skip pushing to remote
|
|
23
|
+
--no-release Skip creating GitVerse Release
|
|
24
|
+
--verbose Verbose output
|
|
25
|
+
--help Show this help message
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
# Auto-detect version and create release
|
|
29
|
+
gitverse-release sdk
|
|
30
|
+
|
|
31
|
+
# Force specific version
|
|
32
|
+
gitverse-release sdk --version 2.1.0
|
|
33
|
+
|
|
34
|
+
# Create prerelease
|
|
35
|
+
gitverse-release sdk --prerelease beta
|
|
36
|
+
|
|
37
|
+
# Dry run (test without changes)
|
|
38
|
+
gitverse-release sdk --dry-run
|
|
39
|
+
|
|
40
|
+
# Custom config
|
|
41
|
+
gitverse-release sdk --config ./my-config.json
|
|
42
|
+
|
|
43
|
+
Environment Variables:
|
|
44
|
+
GITVERSE_TOKEN GitVerse API token (required)
|
|
45
|
+
|
|
46
|
+
Documentation:
|
|
47
|
+
https://gitverse.ru/rainypixel/gitverse-sdk
|
|
48
|
+
`;
|
|
49
|
+
async function main() {
|
|
50
|
+
try {
|
|
51
|
+
const { values, positionals } = parseArgs({
|
|
52
|
+
allowPositionals: true,
|
|
53
|
+
options: {
|
|
54
|
+
config: { type: "string" },
|
|
55
|
+
"dry-run": { type: "boolean" },
|
|
56
|
+
help: { type: "boolean" },
|
|
57
|
+
"no-commit": { type: "boolean" },
|
|
58
|
+
"no-push": { type: "boolean" },
|
|
59
|
+
"no-release": { type: "boolean" },
|
|
60
|
+
"no-tag": { type: "boolean" },
|
|
61
|
+
package: { type: "string" },
|
|
62
|
+
prerelease: { type: "string" },
|
|
63
|
+
verbose: { type: "boolean" },
|
|
64
|
+
version: { type: "string" }
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
if (values.help) {
|
|
68
|
+
console.log(HELP_TEXT);
|
|
69
|
+
process.exit(0);
|
|
70
|
+
}
|
|
71
|
+
const options = {
|
|
72
|
+
config: values.config,
|
|
73
|
+
dryRun: values["dry-run"],
|
|
74
|
+
noCommit: values["no-commit"],
|
|
75
|
+
noPush: values["no-push"],
|
|
76
|
+
noRelease: values["no-release"],
|
|
77
|
+
noTag: values["no-tag"],
|
|
78
|
+
package: values.package,
|
|
79
|
+
prerelease: values.prerelease,
|
|
80
|
+
verbose: values.verbose,
|
|
81
|
+
version: values.version
|
|
82
|
+
};
|
|
83
|
+
const packageName = positionals[0] || options.package;
|
|
84
|
+
const result = await release(packageName, options);
|
|
85
|
+
if (options.verbose) {
|
|
86
|
+
console.log(`
|
|
87
|
+
\uD83D\uDCCA Release Result:`);
|
|
88
|
+
console.log(JSON.stringify(result, null, 2));
|
|
89
|
+
}
|
|
90
|
+
if (result.warnings.length > 0) {
|
|
91
|
+
console.log(`
|
|
92
|
+
⚠️ Warnings:`);
|
|
93
|
+
for (const warning of result.warnings) {
|
|
94
|
+
console.log(` - ${warning}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (result.errors.length > 0) {
|
|
98
|
+
console.error(`
|
|
99
|
+
❌ Errors:`);
|
|
100
|
+
for (const error of result.errors) {
|
|
101
|
+
console.error(` - ${error}`);
|
|
102
|
+
}
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
if (!result.success) {
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
process.exit(0);
|
|
109
|
+
} catch (error) {
|
|
110
|
+
console.error(`
|
|
111
|
+
❌ Fatal error:`);
|
|
112
|
+
console.error(error);
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
main();
|
|
117
|
+
|
|
118
|
+
//# debugId=24A29664F6808ADA64756E2164756E21
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/cli.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"#!/usr/bin/env bun\n\nimport { parseArgs } from \"node:util\";\nimport { release } from \"./index\";\nimport type { CliOptions } from \"./types\";\n\nconst HELP_TEXT = `\ngitverse-release - Release automation tool for GitVerse\n\nUsage:\n gitverse-release [package-name] [options]\n\nOptions:\n --dry-run Test run without making changes\n --config <path> Path to config file (default: .gitverereleaserc.json)\n --package <name> Package name to release (for monorepo)\n --version <version> Force specific version instead of auto-calculation\n --prerelease [tag] Create prerelease version (e.g., beta, alpha, rc)\n --no-commit Skip creating git commit\n --no-tag Skip creating git tag\n --no-push Skip pushing to remote\n --no-release Skip creating GitVerse Release\n --verbose Verbose output\n --help Show this help message\n\nExamples:\n # Auto-detect version and create release\n gitverse-release sdk\n\n # Force specific version\n gitverse-release sdk --version 2.1.0\n\n # Create prerelease\n gitverse-release sdk --prerelease beta\n\n # Dry run (test without changes)\n gitverse-release sdk --dry-run\n\n # Custom config\n gitverse-release sdk --config ./my-config.json\n\nEnvironment Variables:\n GITVERSE_TOKEN GitVerse API token (required)\n\nDocumentation:\n https://gitverse.ru/rainypixel/gitverse-sdk\n`;\n\nasync function main() {\n try {\n const { values, positionals } = parseArgs({\n allowPositionals: true,\n options: {\n config: { type: \"string\" },\n \"dry-run\": { type: \"boolean\" },\n help: { type: \"boolean\" },\n \"no-commit\": { type: \"boolean\" },\n \"no-push\": { type: \"boolean\" },\n \"no-release\": { type: \"boolean\" },\n \"no-tag\": { type: \"boolean\" },\n package: { type: \"string\" },\n prerelease: { type: \"string\" },\n verbose: { type: \"boolean\" },\n version: { type: \"string\" },\n },\n });\n\n // Помощь\n if (values.help) {\n console.log(HELP_TEXT);\n process.exit(0);\n }\n\n // Собираем опции\n const options: CliOptions = {\n config: values.config,\n dryRun: values[\"dry-run\"],\n noCommit: values[\"no-commit\"],\n noPush: values[\"no-push\"],\n noRelease: values[\"no-release\"],\n noTag: values[\"no-tag\"],\n package: values.package,\n prerelease: values.prerelease,\n verbose: values.verbose,\n version: values.version,\n };\n\n // Имя пакета может быть в позиционных аргументах или в --package\n const packageName = positionals[0] || options.package;\n\n // Запускаем релиз\n const result = await release(packageName, options);\n\n // Выводим результат\n if (options.verbose) {\n console.log(\"\\n📊 Release Result:\");\n console.log(JSON.stringify(result, null, 2));\n }\n\n // Показываем ошибки и предупреждения\n if (result.warnings.length > 0) {\n console.log(\"\\n⚠️ Warnings:\");\n for (const warning of result.warnings) {\n console.log(` - ${warning}`);\n }\n }\n\n if (result.errors.length > 0) {\n console.error(\"\\n❌ Errors:\");\n for (const error of result.errors) {\n console.error(` - ${error}`);\n }\n process.exit(1);\n }\n\n if (!result.success) {\n process.exit(1);\n }\n\n process.exit(0);\n } catch (error) {\n console.error(\"\\n❌ Fatal error:\");\n console.error(error);\n process.exit(1);\n }\n}\n\n// Запускаем CLI\nvoid main();\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;AAEA;AAIA,IAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0ClB,eAAe,IAAI,GAAG;AAAA,EACpB,IAAI;AAAA,IACF,QAAQ,QAAQ,gBAAgB,UAAU;AAAA,MACxC,kBAAkB;AAAA,MAClB,SAAS;AAAA,QACP,QAAQ,EAAE,MAAM,SAAS;AAAA,QACzB,WAAW,EAAE,MAAM,UAAU;AAAA,QAC7B,MAAM,EAAE,MAAM,UAAU;AAAA,QACxB,aAAa,EAAE,MAAM,UAAU;AAAA,QAC/B,WAAW,EAAE,MAAM,UAAU;AAAA,QAC7B,cAAc,EAAE,MAAM,UAAU;AAAA,QAChC,UAAU,EAAE,MAAM,UAAU;AAAA,QAC5B,SAAS,EAAE,MAAM,SAAS;AAAA,QAC1B,YAAY,EAAE,MAAM,SAAS;AAAA,QAC7B,SAAS,EAAE,MAAM,UAAU;AAAA,QAC3B,SAAS,EAAE,MAAM,SAAS;AAAA,MAC5B;AAAA,IACF,CAAC;AAAA,IAGD,IAAI,OAAO,MAAM;AAAA,MACf,QAAQ,IAAI,SAAS;AAAA,MACrB,QAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,IAGA,MAAM,UAAsB;AAAA,MAC1B,QAAQ,OAAO;AAAA,MACf,QAAQ,OAAO;AAAA,MACf,UAAU,OAAO;AAAA,MACjB,QAAQ,OAAO;AAAA,MACf,WAAW,OAAO;AAAA,MAClB,OAAO,OAAO;AAAA,MACd,SAAS,OAAO;AAAA,MAChB,YAAY,OAAO;AAAA,MACnB,SAAS,OAAO;AAAA,MAChB,SAAS,OAAO;AAAA,IAClB;AAAA,IAGA,MAAM,cAAc,YAAY,MAAM,QAAQ;AAAA,IAG9C,MAAM,SAAS,MAAM,QAAQ,aAAa,OAAO;AAAA,IAGjD,IAAI,QAAQ,SAAS;AAAA,MACnB,QAAQ,IAAI;AAAA,6BAAqB;AAAA,MACjC,QAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,IAC7C;AAAA,IAGA,IAAI,OAAO,SAAS,SAAS,GAAG;AAAA,MAC9B,QAAQ,IAAI;AAAA,cAAgB;AAAA,MAC5B,WAAW,WAAW,OAAO,UAAU;AAAA,QACrC,QAAQ,IAAI,OAAO,SAAS;AAAA,MAC9B;AAAA,IACF;AAAA,IAEA,IAAI,OAAO,OAAO,SAAS,GAAG;AAAA,MAC5B,QAAQ,MAAM;AAAA,UAAY;AAAA,MAC1B,WAAW,SAAS,OAAO,QAAQ;AAAA,QACjC,QAAQ,MAAM,OAAO,OAAO;AAAA,MAC9B;AAAA,MACA,QAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,IAEA,IAAI,CAAC,OAAO,SAAS;AAAA,MACnB,QAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,IAEA,QAAQ,KAAK,CAAC;AAAA,IACd,OAAO,OAAO;AAAA,IACd,QAAQ,MAAM;AAAA,eAAiB;AAAA,IAC/B,QAAQ,MAAM,KAAK;AAAA,IACnB,QAAQ,KAAK,CAAC;AAAA;AAAA;AAKb,KAAK;",
|
|
8
|
+
"debugId": "24A29664F6808ADA64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReleaseConfig } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Дефолтная конфигурация
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_CONFIG: Required<ReleaseConfig>;
|
|
6
|
+
/**
|
|
7
|
+
* Загружает конфигурацию из файла
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadConfig(configPath?: string): Promise<Required<ReleaseConfig>>;
|
|
10
|
+
/**
|
|
11
|
+
* Валидирует конфигурацию
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateConfig(config: Required<ReleaseConfig>): void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { GitRepoInfo } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* GitVerse API клиент для создания релизов
|
|
4
|
+
*/
|
|
5
|
+
export declare class GitVerseReleaseClient {
|
|
6
|
+
private client;
|
|
7
|
+
private repoInfo;
|
|
8
|
+
constructor(token: string, repoInfo: GitRepoInfo);
|
|
9
|
+
/**
|
|
10
|
+
* Создает релиз на GitVerse
|
|
11
|
+
*/
|
|
12
|
+
createRelease(tag: string, name: string, body: string, options?: {
|
|
13
|
+
draft?: boolean;
|
|
14
|
+
prerelease?: boolean;
|
|
15
|
+
}): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Проверяет существование релиза по тегу
|
|
18
|
+
*/
|
|
19
|
+
releaseExists(tag: string): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Получает информацию о релизе по тегу
|
|
22
|
+
*/
|
|
23
|
+
getRelease(tag: string): Promise<import("gitverse-api-sdk").Release>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Создает клиент для работы с GitVerse API
|
|
27
|
+
*/
|
|
28
|
+
export declare function createGitVerseClient(repoInfo: GitRepoInfo): GitVerseReleaseClient;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CliOptions, ReleaseResult } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Основная функция для создания релиза
|
|
4
|
+
*/
|
|
5
|
+
export declare function release(packageName?: string, options?: CliOptions): Promise<ReleaseResult>;
|
|
6
|
+
export { loadConfig, validateConfig } from "./config";
|
|
7
|
+
export { createGitVerseClient } from "./gitverse";
|
|
8
|
+
export * from "./types";
|