gitverse-release 2.0.1 → 2.0.2

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.
Files changed (2) hide show
  1. package/README.md +199 -96
  2. package/package.json +35 -35
package/README.md CHANGED
@@ -1,51 +1,54 @@
1
- # @gitverse/release
1
+ # GitVerse Release
2
2
 
3
- > Automated release tool for GitVerse repositories with Conventional Commits support
4
-
5
- [![npm version](https://img.shields.io/npm/v/@gitverse/release.svg)](https://www.npmjs.com/package/@gitverse/release)
3
+ [![npm version](https://img.shields.io/npm/v/gitverse-release.svg)](https://www.npmjs.com/package/gitverse-release)
6
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
5
+ [![Test Coverage](https://img.shields.io/badge/coverage-99.85%25-brightgreen.svg)](https://gitverse.ru/RainyPixel/gitverse-sdk)
6
+
7
+ Инструмент автоматизации релизов для GitVerse репозиториев с поддержкой Conventional Commits и семантического версионирования.
7
8
 
8
- ## Features
9
+ ## Возможности
9
10
 
10
- - ✅ **Automatic versioning** based on Conventional Commits
11
- - 📝 **CHANGELOG generation** grouped by commit types
12
- - 🌐 **GitVerse API integration** for creating releases
13
- - 📦 **Monorepo support** with independent versioning
14
- - 🏷️ **Automatic git tags and commits**
15
- - 🔍 **Dry-run mode** for safe testing
16
- - ⚙️ **Flexible configuration** via `.gitversereleaserc.json`
11
+ - ✅ **Автоматическое версионирование** на основе Conventional Commits
12
+ - 📝 **Генерация CHANGELOG** с группировкой по типам коммитов
13
+ - 🌐 **Интеграция с GitVerse API** для создания релизов
14
+ - 📦 **Поддержка монорепозиториев** с независимым версионированием
15
+ - 🏷️ **Автоматические git теги и коммиты**
16
+ - 🔍 **Режим dry-run** для безопасного тестирования
17
+ - ⚙️ **Гибкая конфигурация** через `.gitversereleaserc.json`
17
18
 
18
- ## Installation
19
+ ## Установка
19
20
 
20
21
  ```bash
21
- # Using npm
22
- npm install -D @gitverse/release
22
+ # npm
23
+ npm install -D gitverse-release
23
24
 
24
- # Using bun
25
- bun add -d @gitverse/release
25
+ # bun
26
+ bun add -d gitverse-release
26
27
 
27
- # Using yarn
28
- yarn add -D @gitverse/release
28
+ # yarn
29
+ yarn add -D gitverse-release
29
30
 
30
- # Using pnpm
31
- pnpm add -D @gitverse/release
31
+ # pnpm
32
+ pnpm add -D gitverse-release
32
33
  ```
33
34
 
34
- ## Quick Start
35
+ ## Быстрый старт
35
36
 
36
- ### 1. Basic Usage
37
+ > ⚠️ **Важно:** Для создания релизов в GitVerse необходимо настроить `GITVERSE_TOKEN`. Без токена инструмент работает в урезанном режиме (только локальные теги и CHANGELOG). См. [Настройка GITVERSE_TOKEN](#️-настройка-gitverse_token)
38
+
39
+ ### 1. Базовое использование
37
40
 
38
41
  ```bash
39
- # Create release (dry-run for testing)
40
- npx @gitverse/release --dry-run
42
+ # Создать релиз (dry-run для тестирования)
43
+ npx gitverse-release --dry-run
41
44
 
42
- # Create and publish release
43
- npx @gitverse/release
45
+ # Создать и опубликовать релиз
46
+ npx gitverse-release
44
47
  ```
45
48
 
46
- ### 2. Configuration
49
+ ### 2. Конфигурация
47
50
 
48
- Create `.gitversereleaserc.json` in project root:
51
+ Создайте `.gitversereleaserc.json` в корне проекта:
49
52
 
50
53
  ```json
51
54
  {
@@ -57,10 +60,10 @@ Create `.gitversereleaserc.json` in project root:
57
60
  },
58
61
  "changelog": {
59
62
  "types": {
60
- "feat": "✨ Features",
61
- "fix": "🐛 Bug Fixes",
62
- "perf": "⚡ Performance",
63
- "docs": "📝 Documentation"
63
+ "feat": "✨ Новые возможности",
64
+ "fix": "🐛 Исправления",
65
+ "perf": "⚡ Производительность",
66
+ "docs": "📝 Документация"
64
67
  },
65
68
  "showHash": true,
66
69
  "showAuthor": true
@@ -71,66 +74,72 @@ Create `.gitversereleaserc.json` in project root:
71
74
  }
72
75
  ```
73
76
 
74
- ### 3. Add to package.json
77
+ ### 3. Добавьте в package.json
75
78
 
76
79
  ```json
77
80
  {
78
81
  "scripts": {
79
- "release": "@gitverse/release",
80
- "release:dry": "@gitverse/release --dry-run"
82
+ "release": "gitverse-release",
83
+ "release:dry": "gitverse-release --dry-run"
81
84
  }
82
85
  }
83
86
  ```
84
87
 
85
- ## Usage
88
+ ## Использование
86
89
 
87
90
  ### Conventional Commits
88
91
 
89
- The package automatically determines version bump based on commits:
92
+ Инструмент автоматически определяет тип версии на основе коммитов:
90
93
 
91
94
  ```bash
92
95
  # Patch (1.0.0 → 1.0.1)
93
- git commit -m "fix: resolve validation error"
96
+ git commit -m "fix: исправлена ошибка валидации"
94
97
 
95
98
  # Minor (1.0.0 → 1.1.0)
96
- git commit -m "feat: add new API endpoint"
99
+ git commit -m "feat: добавлен новый API эндпоинт"
97
100
 
98
101
  # Major (1.0.0 → 2.0.0)
99
- git commit -m "feat!: change API response format"
100
- # or
101
- git commit -m "feat: new feature
102
+ git commit -m "feat!: изменен формат ответа API"
103
+ # или
104
+ git commit -m "feat: новая функция
102
105
 
103
- BREAKING CHANGE: changed configuration format"
106
+ BREAKING CHANGE: изменен формат конфигурации"
104
107
  ```
105
108
 
106
- ### Programmatic Usage
109
+ ### Программное использование
107
110
 
108
111
  ```typescript
109
- import { release } from "@gitverse/release";
112
+ import { release } from "gitverse-release";
110
113
 
111
- // Simple release
114
+ // Простой релиз
112
115
  const result = await release();
113
116
 
114
117
  console.log(result.success); // true
115
118
  console.log(result.newVersion); // "1.1.0"
116
119
  console.log(result.tag); // "v1.1.0"
117
120
 
118
- // With options
121
+ // С опциями
119
122
  const result = await release(undefined, {
120
123
  dryRun: true,
121
124
  version: "2.0.0",
122
125
  skipGitStatusCheck: false,
123
126
  });
124
127
 
125
- // For monorepo
128
+ // Для монорепозитория
126
129
  const result = await release("my-package", {
127
130
  dryRun: false,
128
131
  });
129
132
  ```
130
133
 
131
- ## Monorepo Support
134
+ > **Примечание для GitVerse Actions:**
135
+ > В GitVerse Actions автоматически доступны переменные окружения:
136
+ > - `GITVERSE_TOKEN` - должен быть настроен в Secrets (см. [Настройка](#️-настройка-gitverse_token))
137
+ > - `GITVERSE_PUBLIC_API_URL` - автоматически доступен (`https://api.gitverse.ru/`)
138
+ > - `GITHUB_REPOSITORY` - имя репозитория в формате `owner/repo`
139
+
140
+ ## Поддержка монорепозиториев
132
141
 
133
- ### Configuration
142
+ ### Конфигурация
134
143
 
135
144
  ```json
136
145
  {
@@ -156,32 +165,32 @@ const result = await release("my-package", {
156
165
  }
157
166
  ```
158
167
 
159
- ### Usage
168
+ ### Использование
160
169
 
161
170
  ```bash
162
- # Release specific package
163
- npx @gitverse/release core
171
+ # Релиз конкретного пакета
172
+ npx gitverse-release core
164
173
 
165
- # Dry-run for package
166
- npx @gitverse/release ui --dry-run
174
+ # Dry-run для пакета
175
+ npx gitverse-release ui --dry-run
167
176
  ```
168
177
 
169
- ### Commit Filtering by Scope
178
+ ### Фильтрация коммитов по scope
170
179
 
171
180
  ```bash
172
- # Commits for "core" package
173
- git commit -m "feat(core): add new function"
181
+ # Коммиты для пакета "core"
182
+ git commit -m "feat(core): добавлена новая функция"
174
183
 
175
- # Commits for "ui" package
176
- git commit -m "fix(ui): resolve component bug"
184
+ # Коммиты для пакета "ui"
185
+ git commit -m "fix(ui): исправлена ошибка компонента"
177
186
 
178
- # Common commits (affect all packages)
179
- git commit -m "chore: update dependencies"
187
+ # Общие коммиты (влияют на все пакеты)
188
+ git commit -m "chore: обновлены зависимости"
180
189
  ```
181
190
 
182
- ## Configuration
191
+ ## Конфигурация
183
192
 
184
- ### Full Example
193
+ ### Полный пример
185
194
 
186
195
  ```json
187
196
  {
@@ -193,16 +202,16 @@ git commit -m "chore: update dependencies"
193
202
  },
194
203
  "changelog": {
195
204
  "types": {
196
- "feat": "✨ Features",
197
- "fix": "🐛 Bug Fixes",
198
- "perf": "⚡ Performance Improvements",
199
- "refactor": "♻️ Code Refactoring",
200
- "docs": "📝 Documentation",
201
- "style": "💄 Styles",
202
- "test": "✅ Tests",
203
- "build": "🔧 Build System",
205
+ "feat": "✨ Новые возможности",
206
+ "fix": "🐛 Исправления",
207
+ "perf": "⚡ Улучшения производительности",
208
+ "refactor": "♻️ Рефакторинг",
209
+ "docs": "📝 Документация",
210
+ "style": "💄 Стили",
211
+ "test": "✅ Тесты",
212
+ "build": "🔧 Сборка",
204
213
  "ci": "👷 CI/CD",
205
- "chore": "🧹 Chores"
214
+ "chore": "🧹 Прочее"
206
215
  },
207
216
  "showHash": true,
208
217
  "showAuthor": true
@@ -223,35 +232,88 @@ git commit -m "chore: update dependencies"
223
232
  }
224
233
  ```
225
234
 
226
- ### Environment Variables
235
+ ### Переменные окружения
227
236
 
228
237
  ```bash
229
- # GitVerse token for creating releases
238
+ # Токен GitVerse для создания релизов
230
239
  export GITVERSE_TOKEN="your-token-here"
231
240
 
232
- # Or via .env file
241
+ # Или через .env файл
233
242
  echo "GITVERSE_TOKEN=your-token" >> .env
234
243
  ```
235
244
 
236
- ## CLI Options
245
+ ### ⚠️ Настройка GITVERSE_TOKEN
246
+
247
+ **КРИТИЧЕСКИ ВАЖНО:** Без настройки `GITVERSE_TOKEN` инструмент работает в **урезанном режиме**:
248
+
249
+ ✅ **С токеном (полный режим):**
250
+ - Автоматическое создание релизов в GitVerse
251
+ - Публикация changelog в релиз
252
+ - Загрузка ассетов релиза
253
+ - Push тегов и коммитов в удаленный репозиторий
254
+
255
+ ⚠️ **Без токена (урезанный режим):**
256
+ - ❌ НЕТ создания релизов в GitVerse
257
+ - ✅ Генерация CHANGELOG локально
258
+ - ✅ Создание git тегов локально
259
+ - ✅ Коммиты изменений локально
260
+
261
+ #### Настройка токена для GitVerse Actions
262
+
263
+ **Важно:** `GITVERSE_TOKEN` **НЕ предоставляется автоматически** в GitVerse Actions!
264
+
265
+ **Шаг 1: Создайте Personal Access Token**
266
+ 1. Перейдите в GitVerse: **Settings** → **Applications** → **Generate New Token**
267
+ 2. Выберите необходимые права:
268
+ - `repo` - полный доступ к репозиториям (обязательно для релизов)
269
+ 3. Скопируйте токен (показывается только один раз!)
270
+
271
+ **Шаг 2: Добавьте токен в Secrets репозитория**
272
+ 1. В репозитории: **Settings** → **Secrets and Variables** → **Actions**
273
+ 2. Нажмите **New repository secret**
274
+ 3. **Name:** `GITVERSE_TOKEN`
275
+ 4. **Value:** ваш Personal Access Token
276
+ 5. Сохраните
277
+
278
+ **Шаг 3: Используйте в workflow**
279
+ ```yaml
280
+ env:
281
+ GITVERSE_TOKEN: ${{ secrets.GITVERSE_TOKEN }}
282
+ ```
283
+
284
+ **Шаг 4: Проверка (рекомендуется)**
285
+ ```yaml
286
+ - name: Validate GITVERSE_TOKEN
287
+ run: |
288
+ if [ -z "$GITVERSE_TOKEN" ]; then
289
+ echo "❌ ERROR: GITVERSE_TOKEN is not set!"
290
+ echo "Please add GITVERSE_TOKEN to repository secrets."
291
+ exit 1
292
+ fi
293
+ echo "✅ GITVERSE_TOKEN is configured"
294
+ ```
295
+
296
+ ## CLI опции
237
297
 
238
298
  ```
239
- npx @gitverse/release [package] [options]
299
+ npx gitverse-release [package] [options]
240
300
 
241
- Arguments:
242
- package Package name for release (for monorepos)
301
+ Аргументы:
302
+ package Имя пакета для релиза (для монорепозиториев)
243
303
 
244
- Options:
245
- --dry-run Run without making changes
246
- --version <version> Specify exact version
247
- --skip-git-check Skip git status check
248
- --help Show help
304
+ Опции:
305
+ --dry-run Запуск без внесения изменений
306
+ --version <version> Указать конкретную версию
307
+ --skip-git-check Пропустить проверку git статуса
308
+ --help Показать справку
249
309
  ```
250
310
 
251
- ## CI/CD Integration
311
+ ## CI/CD интеграция
252
312
 
253
313
  ### GitVerse Actions
254
314
 
315
+ ⚠️ **Перед использованием:** Убедитесь, что `GITVERSE_TOKEN` добавлен в Secrets репозитория (см. [Настройка GITVERSE_TOKEN](#️-настройка-gitverse_token))
316
+
255
317
  ```yaml
256
318
  name: Release
257
319
 
@@ -259,6 +321,7 @@ on:
259
321
  workflow_dispatch:
260
322
 
261
323
  env:
324
+ # ОБЯЗАТЕЛЬНО: Добавьте GITVERSE_TOKEN в Secrets репозитория!
262
325
  GITVERSE_TOKEN: ${{ secrets.GITVERSE_TOKEN }}
263
326
 
264
327
  jobs:
@@ -273,6 +336,17 @@ jobs:
273
336
 
274
337
  - run: bun install
275
338
 
339
+ # ВАЖНО: Проверка наличия токена перед релизом
340
+ - name: Validate GITVERSE_TOKEN
341
+ run: |
342
+ if [ -z "$GITVERSE_TOKEN" ]; then
343
+ echo "❌ ERROR: GITVERSE_TOKEN is not set!"
344
+ echo "Please add GITVERSE_TOKEN to repository secrets."
345
+ echo "See: Settings → Secrets and Variables → Actions"
346
+ exit 1
347
+ fi
348
+ echo "✅ GITVERSE_TOKEN is configured"
349
+
276
350
  - name: Configure Git
277
351
  run: |
278
352
  git config user.name "GitVerse CI"
@@ -282,20 +356,49 @@ jobs:
282
356
  run: bun run release
283
357
  ```
284
358
 
285
- ## License
359
+ **Что происходит в этом workflow:**
360
+ 1. ✅ Проверяет наличие `GITVERSE_TOKEN` (workflow упадет с ошибкой, если токен не настроен)
361
+ 2. ✅ Устанавливает зависимости
362
+ 3. ✅ Настраивает git для создания коммитов
363
+ 4. ✅ Создает релиз с полным функционалом (CHANGELOG, теги, GitVerse release)
364
+ 5. ✅ Автоматически публикует в GitVerse
365
+
366
+ ## Разработка
367
+
368
+ ```bash
369
+ # Установка зависимостей
370
+ bun install
371
+
372
+ # Запуск тестов
373
+ bun test
374
+
375
+ # Проверка покрытия
376
+ bun test:coverage
377
+
378
+ # Сборка проекта
379
+ bun run build
380
+
381
+ # Линтинг
382
+ bun run lint
383
+ bun run lint:fix
384
+ ```
385
+
386
+ ## Лицензия
286
387
 
287
- MIT © RainyPixel
388
+ MIT © [RainyPixel](https://gitverse.ru/RainyPixel)
288
389
 
289
- ## Links
390
+ ## Полезные ссылки
290
391
 
291
- - [GitVerse SDK](https://gitverse.ru/RainyPixel/gitverse-sdk)
292
- - [Conventional Commits](https://www.conventionalcommits.org/)
293
- - [Keep a Changelog](https://keepachangelog.com/)
392
+ - [GitVerse SDK](https://gitverse.ru/RainyPixel/gitverse-sdk) - Основной репозиторий
393
+ - [Conventional Commits](https://www.conventionalcommits.org/ru/) - Спецификация
394
+ - [Keep a Changelog](https://keepachangelog.com/ru/) - Руководство по CHANGELOG
395
+ - [Semantic Versioning](https://semver.org/lang/ru/) - Семантическое версионирование
396
+ - [npm пакет](https://www.npmjs.com/package/gitverse-release)
294
397
 
295
- ## Found a bug?
398
+ ## Сообщить об ошибке
296
399
 
297
- Create an issue on [GitVerse](https://gitverse.ru/RainyPixel/gitverse-sdk/issues)
400
+ Создайте issue на [GitVerse](https://gitverse.ru/RainyPixel/gitverse-sdk/issues)
298
401
 
299
402
  ---
300
403
 
301
- Made with ❤️ for GitVerse
404
+ Сделано с ❤️ для GitVerse
package/package.json CHANGED
@@ -1,32 +1,7 @@
1
1
  {
2
- "author": "Ivan Bobchenkov<me@bobchenkov.ru>",
3
- "bin": {
4
- "gitverse-release": "./dist/cli.js"
5
- },
6
- "bugs": {
7
- "url": "https://gitverse.ru/rainypixel/gitverse-sdk/issues"
8
- },
9
- "dependencies": {
10
- "gitverse-api-sdk": "2.0.1"
11
- },
2
+ "name": "gitverse-release",
3
+ "version": "2.0.2",
12
4
  "description": "Conventional Commits release automation tool for GitVerse",
13
- "devDependencies": {
14
- "@types/bun": "1.3.0",
15
- "bun-plugin-dts": "^0.3.0",
16
- "typescript": "^5.9.3"
17
- },
18
- "exports": {
19
- ".": {
20
- "import": "./dist/index.js",
21
- "types": "./dist/index.d.ts"
22
- },
23
- "./cli": {
24
- "import": "./dist/cli.js",
25
- "types": "./dist/cli.d.ts"
26
- }
27
- },
28
- "files": ["dist", "README.md"],
29
- "homepage": "https://gitverse.ru/rainypixel/gitverse-sdk#readme",
30
5
  "keywords": [
31
6
  "gitverse",
32
7
  "release",
@@ -37,16 +12,33 @@
37
12
  "monorepo",
38
13
  "bun"
39
14
  ],
40
- "license": "MIT",
41
- "main": "dist/index.js",
42
- "name": "gitverse-release",
43
- "publishConfig": {
44
- "access": "public"
15
+ "homepage": "https://gitverse.ru/rainypixel/gitverse-sdk#readme",
16
+ "bugs": {
17
+ "url": "https://gitverse.ru/rainypixel/gitverse-sdk/issues"
45
18
  },
46
19
  "repository": {
47
20
  "type": "git",
48
21
  "url": "https://gitverse.ru/rainypixel/gitverse-sdk.git"
49
22
  },
23
+ "license": "MIT",
24
+ "author": "Ivan Bobchenkov<me@bobchenkov.ru>",
25
+ "type": "module",
26
+ "exports": {
27
+ ".": {
28
+ "import": "./dist/index.js",
29
+ "types": "./dist/index.d.ts"
30
+ },
31
+ "./cli": {
32
+ "import": "./dist/cli.js",
33
+ "types": "./dist/cli.d.ts"
34
+ }
35
+ },
36
+ "main": "dist/index.js",
37
+ "types": "dist/index.d.ts",
38
+ "bin": {
39
+ "gitverse-release": "./dist/cli.js"
40
+ },
41
+ "files": ["dist", "README.md"],
50
42
  "scripts": {
51
43
  "build": "bun build.ts",
52
44
  "dev": "bun build.ts --watch",
@@ -54,7 +46,15 @@
54
46
  "test:coverage": "bun test --coverage",
55
47
  "typecheck": "tsc --noEmit"
56
48
  },
57
- "type": "module",
58
- "types": "dist/index.d.ts",
59
- "version": "2.0.1"
49
+ "dependencies": {
50
+ "gitverse-api-sdk": "2.0.1"
51
+ },
52
+ "devDependencies": {
53
+ "@types/bun": "1.3.0",
54
+ "bun-plugin-dts": "^0.3.0",
55
+ "typescript": "^5.9.3"
56
+ },
57
+ "publishConfig": {
58
+ "access": "public"
59
+ }
60
60
  }