@ubic/release-it-config 0.1.9 → 0.1.10-rc.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
@@ -4,15 +4,20 @@
4
4
 
5
5
  ## Требования
6
6
 
7
- - `release-it` 18 и новее. [https://github.com/release-it/release-it](https://github.com/release-it/release-it)
7
+ - `release-it` 18 [https://github.com/release-it/release-it](https://github.com/release-it/release-it)
8
8
  - `@release-it/conventional-changelog` 10 и новее.\* [https://github.com/release-it/conventional-changelog](@release-it/conventional-changelog)
9
+ - Удалить пакет `conventional-changelog-conventionalcommits` из проекта. Подробнее в [FAQ](./README.md?ref_type=heads#faq)
10
+
11
+ > Важно!
12
+ >
13
+ > Версия release-it 19+ требует версию nodejs 22, необходимо устанавливать именно 18 версию.
9
14
 
10
15
  ## Установка
11
16
 
12
17
  Установить в проект конфиг и пакеты утилиты:
13
18
 
14
19
  ```
15
- yarn add -D release-it @release-it/conventional-changelog @ubic/release-it-config
20
+ yarn add -D release-it@18.1.2 @release-it/conventional-changelog @ubic/release-it-config
16
21
  ```
17
22
 
18
23
  ## Настройка
@@ -21,8 +26,9 @@ yarn add -D release-it @release-it/conventional-changelog @ubic/release-it-confi
21
26
 
22
27
  ```ts
23
28
  import { releaseItConfig } from '@ubic/release-it-config';
29
+ import { type Config } from 'release-it';
24
30
 
25
- export default releaseItConfig;
31
+ export default releaseItConfig satisfies Config;
26
32
  ```
27
33
 
28
34
  Добавить в package.json скрипт для релиза
@@ -71,3 +77,15 @@ yarn release --preRelease=beta
71
77
  ```
72
78
 
73
79
  Подробное описание процесса сбора pre-релизов описано в [документации release-it](https://github.com/release-it/release-it/blob/main/docs/pre-releases.md).
80
+
81
+ ## FAQ
82
+
83
+ - _Формат changelog не разделяется по секциям (добавлено, изменено и т.д.) и выглядит как-то так:_
84
+
85
+ > ## <small>2.6.9 (2025-06-10)</small>
86
+ >
87
+ > - Фильтрация списка пользователей [[787ce72](https://gitlab.com/path/to/repo/commit/787ce72889daf779957b334b4a514c64b1643831)]
88
+
89
+ **Проблема:** в проекте установлена dev-зависимость `conventional-changelog-conventionalcommits` и ее версия ниже 8.0.0.
90
+
91
+ **Решение:** удалить пакет `conventional-changelog-conventionalcommits` из проекта.
@@ -1,2 +1,2 @@
1
1
  "use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})},g=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of u(t))!l.call(e,o)&&o!==r&&n(e,o,{get:()=>t[o],enumerable:!(i=p(t,o))||i.enumerable});return e};var h=e=>g(n({},"__esModule",{value:!0}),e);var C={};m(C,{releaseItConfig:()=>a});module.exports=h(C);var s={feat:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E",fix:"\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E",refactor:"\u0420\u0435\u0444\u0430\u043A\u0442\u043E\u0440\u0438\u043D\u0433",docs:"\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F",test:"\u0422\u0435\u0441\u0442\u044B",build:"\u0421\u0431\u043E\u0440\u043A\u0430",perf:"\u041F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ci:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 CI/CD",style:"\u0423\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0435 \u0447\u0438\u0442\u0430\u0435\u043C\u043E\u0441\u0442\u0438 \u043A\u043E\u0434\u0430",chore:"\u041E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435"};var d={"@release-it/conventional-changelog":{preset:{name:"conventionalcommits"},infile:"CHANGELOG.md",header:"# \u0418\u0441\u0442\u043E\u0440\u0438\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439",writerOpts:{groupBy:"type",transform:e=>{if(!e.body&&!e.subject)return!1;let t=s[e.type]||s.chore,r=(e?.hash||"").substring(0,7);return{...e,shortHash:r,type:t}},commitPartial:`-{{#if scope}} **{{scope}}:**{{/if}} {{#if body}}{{body}}{{else}}{{subject}}{{/if}}{{#if hash}} [[{{shortHash}}]({{@root.repoUrl}}/{{@root.owner}}/{{@root.repository}}/commit/{{hash}})]{{/if}}{{#each references}} [[{{prefix}}{{issue}}](https://youtrack.ubic.tech/issue/{{prefix}}{{issue}})]{{/each}}
2
- `,commitGroupsSort:(e,t)=>{if(typeof e.title!="string"||typeof t.title!="string")return 0;let r=Object.values(s),i=r.indexOf(e.title),o=r.indexOf(t.title),f=i!==-1?i:Number.MAX_SAFE_INTEGER,c=o!==-1?o:Number.MAX_SAFE_INTEGER;return f-c}},parserOpts:{mergePattern:/'Merge branch'/,issuePrefixes:["#","[A-Z]{1,6}-"]}}},a={git:{requireBranch:"master",requireUpstream:!0,requireCommits:!0,requireCleanWorkingDir:!0,addUntrackedFiles:!1,commitMessage:"chore(release): ${version}",tag:!0,tagName:"v${version}",push:!0},hooks:{"before:init":`git fetch --quiet && git merge-base --is-ancestor @{u} HEAD || { echo '\u274C \u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u044F \u043D\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E, \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 "git pull".'; exit 1; }`,"after:release":"node ./node_modules/@ubic/release-it-config/dist/scripts/print-docker-image.js"},npm:{publish:!1},plugins:d};
2
+ `,commitGroupsSort:(e,t)=>{if(typeof e.title!="string"||typeof t.title!="string")return 0;let r=Object.values(s),i=r.indexOf(e.title),o=r.indexOf(t.title),f=i!==-1?i:Number.MAX_SAFE_INTEGER,c=o!==-1?o:Number.MAX_SAFE_INTEGER;return f-c}},parserOpts:{mergePattern:/'Merge branch'/,issuePrefixes:["#","[A-Z]{1,6}-"]}}},a={git:{requireBranch:!1,requireUpstream:!0,requireCommits:!0,requireCleanWorkingDir:!0,addUntrackedFiles:!1,commitMessage:"chore(release): ${version}",tag:!0,tagName:"v${version}",push:!0},hooks:{"before:init":`git fetch --quiet && git merge-base --is-ancestor @{u} HEAD || { echo '\u274C \u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u044F \u043D\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E, \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 "git pull".'; exit 1; }`,"after:release":"node ./node_modules/@ubic/release-it-config/dist/scripts/print-docker-image.js"},npm:{publish:!1},plugins:d};
@@ -1,2 +1,2 @@
1
1
  var o={feat:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E",fix:"\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E",refactor:"\u0420\u0435\u0444\u0430\u043A\u0442\u043E\u0440\u0438\u043D\u0433",docs:"\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F",test:"\u0422\u0435\u0441\u0442\u044B",build:"\u0421\u0431\u043E\u0440\u043A\u0430",perf:"\u041F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ci:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 CI/CD",style:"\u0423\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0435 \u0447\u0438\u0442\u0430\u0435\u043C\u043E\u0441\u0442\u0438 \u043A\u043E\u0434\u0430",chore:"\u041E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435"};var f={"@release-it/conventional-changelog":{preset:{name:"conventionalcommits"},infile:"CHANGELOG.md",header:"# \u0418\u0441\u0442\u043E\u0440\u0438\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439",writerOpts:{groupBy:"type",transform:e=>{if(!e.body&&!e.subject)return!1;let t=o[e.type]||o.chore,r=(e?.hash||"").substring(0,7);return{...e,shortHash:r,type:t}},commitPartial:`-{{#if scope}} **{{scope}}:**{{/if}} {{#if body}}{{body}}{{else}}{{subject}}{{/if}}{{#if hash}} [[{{shortHash}}]({{@root.repoUrl}}/{{@root.owner}}/{{@root.repository}}/commit/{{hash}})]{{/if}}{{#each references}} [[{{prefix}}{{issue}}](https://youtrack.ubic.tech/issue/{{prefix}}{{issue}})]{{/each}}
2
- `,commitGroupsSort:(e,t)=>{if(typeof e.title!="string"||typeof t.title!="string")return 0;let r=Object.values(o),i=r.indexOf(e.title),s=r.indexOf(t.title),n=i!==-1?i:Number.MAX_SAFE_INTEGER,a=s!==-1?s:Number.MAX_SAFE_INTEGER;return n-a}},parserOpts:{mergePattern:/'Merge branch'/,issuePrefixes:["#","[A-Z]{1,6}-"]}}},c={git:{requireBranch:"master",requireUpstream:!0,requireCommits:!0,requireCleanWorkingDir:!0,addUntrackedFiles:!1,commitMessage:"chore(release): ${version}",tag:!0,tagName:"v${version}",push:!0},hooks:{"before:init":`git fetch --quiet && git merge-base --is-ancestor @{u} HEAD || { echo '\u274C \u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u044F \u043D\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E, \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 "git pull".'; exit 1; }`,"after:release":"node ./node_modules/@ubic/release-it-config/dist/scripts/print-docker-image.js"},npm:{publish:!1},plugins:f};export{c as releaseItConfig};
2
+ `,commitGroupsSort:(e,t)=>{if(typeof e.title!="string"||typeof t.title!="string")return 0;let r=Object.values(o),i=r.indexOf(e.title),s=r.indexOf(t.title),n=i!==-1?i:Number.MAX_SAFE_INTEGER,a=s!==-1?s:Number.MAX_SAFE_INTEGER;return n-a}},parserOpts:{mergePattern:/'Merge branch'/,issuePrefixes:["#","[A-Z]{1,6}-"]}}},c={git:{requireBranch:!1,requireUpstream:!0,requireCommits:!0,requireCleanWorkingDir:!0,addUntrackedFiles:!1,commitMessage:"chore(release): ${version}",tag:!0,tagName:"v${version}",push:!0},hooks:{"before:init":`git fetch --quiet && git merge-base --is-ancestor @{u} HEAD || { echo '\u274C \u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u044F \u043D\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E, \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 "git pull".'; exit 1; }`,"after:release":"node ./node_modules/@ubic/release-it-config/dist/scripts/print-docker-image.js"},npm:{publish:!1},plugins:f};export{c as releaseItConfig};
@@ -14,14 +14,29 @@ const version = exec('git describe --tags --abbrev=0').replace(/^v/, '');
14
14
  // Получаем URL репозитория из git config
15
15
  const remoteUrl = exec('git config --get remote.origin.url');
16
16
 
17
- // Извлекаем путь проекта
18
- const match = remoteUrl.match(/[:\/]([^:\/]+\/.+?)\.git$/);
19
- if (!match) {
20
- console.error('❌ Не удалось распарсить URL репозитория:', remoteUrl);
17
+ // Извлекаем hostname
18
+ let hostname;
19
+ if (remoteUrl.startsWith('http')) {
20
+ const { hostname: parsedHost } = new URL(remoteUrl);
21
+ hostname = parsedHost;
22
+ } else {
23
+ const sshMatch = remoteUrl.match(/^git@([^:]+):/);
24
+ hostname = sshMatch?.[1] ?? '';
25
+ }
26
+
27
+ // Извлекаем путь (например: gitlab.ubic.tech/dit/tsar/komanda-a/front)
28
+ const pathMatch = remoteUrl.match(/[:\/](.+?)\.git$/);
29
+ if (!pathMatch) {
30
+ console.error('❌ Не удалось извлечь путь из remote URL:', remoteUrl);
21
31
  process.exit(1);
22
32
  }
23
33
 
24
- const path = match[1]; // Пример: ed/front/ed-front
25
- const dockerImage = `${DOCKER_REGISTRY_URL}/${path}:v${version}`;
34
+ let repoPath = pathMatch[1]
35
+ .split('/')
36
+ // удаляем hostname и пустые части
37
+ .filter((part) => part !== hostname && part.length > 0)
38
+ .join('/');
39
+
40
+ const dockerImage = `${DOCKER_REGISTRY_URL}/${repoPath}:v${version}`;
26
41
 
27
42
  console.log(`\n📦 Docker образ будет доступен по адресу:\n👉 ${dockerImage}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ubic/release-it-config",
3
- "version": "0.1.9",
3
+ "version": "0.1.10-rc.0",
4
4
  "description": "Standard release-it config for projects in ubic technologies",
5
5
  "repository": {
6
6
  "type": "git",