@vv0rkz/js-template 1.0.0 → 1.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.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vv0rkz/js-template",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Reusable setup for JS projects with husky, changelog, gh tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"js-template": "./bin/cli.js"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
|
-
"bin",
|
|
12
|
-
"templates",
|
|
13
|
-
"tools-gh"
|
|
11
|
+
"bin/",
|
|
12
|
+
"templates/",
|
|
13
|
+
"tools-gh/"
|
|
14
14
|
],
|
|
15
15
|
"scripts": {
|
|
16
16
|
"test": "echo 'Tests not implemented yet' && exit 0"
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
|
|
3
|
+
COMMIT_MSG=$(cat "$1")
|
|
4
|
+
|
|
5
|
+
# Функция показа подсказки
|
|
6
|
+
show_help() {
|
|
7
|
+
echo ""
|
|
8
|
+
echo "🎯 РАЗРЕШЕННЫЕ ФОРМАТЫ КОММИТОВ:"
|
|
9
|
+
echo "────────────────────────────────────"
|
|
10
|
+
echo "✨ НОВЫЕ ФИЧИ: feat: #номер описание"
|
|
11
|
+
echo "🐛 ИСПРАВЛЕНИЯ: fix: #номер описание"
|
|
12
|
+
echo "🔧 РЕФАКТОРИНГ: refactor: описание"
|
|
13
|
+
echo "🏗️ ИНФРАСТРУКТУРА: build: описание"
|
|
14
|
+
echo "🛠️ ТЕХ. ЗАДАЧИ: chore: описание"
|
|
15
|
+
echo "📚 ДОКУМЕНТАЦИЯ: docs: описание"
|
|
16
|
+
echo "🚀 АВТО-РЕЛИЗЫ: chore(release): vX.X.X"
|
|
17
|
+
echo ""
|
|
18
|
+
echo "📝 ПРИМЕРЫ:"
|
|
19
|
+
echo " feat: #9 добавить нормализацию чисел"
|
|
20
|
+
echo " fix: #10 исправить валидацию операторов"
|
|
21
|
+
echo " refactor: оптимизировать алгоритм"
|
|
22
|
+
echo " chore: обновить зависимости"
|
|
23
|
+
echo " docs: обновить README"
|
|
24
|
+
echo " chore(release): v2.3.0"
|
|
25
|
+
echo "────────────────────────────────────"
|
|
26
|
+
exit 1
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
# ИСКЛЮЧЕНИЕ: разрешаем авто-релизные коммиты от changelogen
|
|
30
|
+
if echo "$COMMIT_MSG" | grep -q "^chore(release): v[0-9]\+\.[0-9]\+\.[0-9]\+$"; then
|
|
31
|
+
echo "✅ Авто-релизный коммит: $COMMIT_MSG"
|
|
32
|
+
exit 0
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
# СТРОГАЯ ПРОВЕРКА для обычных коммитов
|
|
36
|
+
if ! echo "$COMMIT_MSG" | grep -q -E "^(feat: #[0-9]+ .+|fix: #[0-9]+ .+|refactor: .+|build: .+|chore: .+|docs: .+)"; then
|
|
37
|
+
echo "❌ Неправильный формат коммита: '$COMMIT_MSG'"
|
|
38
|
+
show_help
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# Дополнительная проверка: feat/fix должны иметь #номер
|
|
42
|
+
if echo "$COMMIT_MSG" | grep -q "^\(feat\|fix\):"; then
|
|
43
|
+
if ! echo "$COMMIT_MSG" | grep -q "^\(feat\|fix\): #[0-9]"; then
|
|
44
|
+
echo "❌ Ошибка: feat и fix коммиты должны содержать номер задачи"
|
|
45
|
+
echo "💡 Твой коммит: $COMMIT_MSG"
|
|
46
|
+
echo "✅ Пример: feat: #9 добавить нормализацию чисел"
|
|
47
|
+
exit 1
|
|
48
|
+
fi
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
# Закрытие issues при fix: #номер
|
|
52
|
+
if echo "$COMMIT_MSG" | grep -q "^fix: #[0-9]"; then
|
|
53
|
+
ISSUE_NUMBER=$(echo "$COMMIT_MSG" | grep -o '#[0-9]*' | sed 's/#//')
|
|
54
|
+
echo "🔧 Закрываю issue #$ISSUE_NUMBER..."
|
|
55
|
+
|
|
56
|
+
COMMIT_HASH=$(git rev-parse --short HEAD)
|
|
57
|
+
REPO_URL=$(git remote get-url origin | sed 's/\.git$//')
|
|
58
|
+
COMMIT_URL="$REPO_URL/commit/$COMMIT_HASH"
|
|
59
|
+
|
|
60
|
+
gh issue close "$ISSUE_NUMBER" --comment "Исправлено в коммите: [$COMMIT_HASH]($COMMIT_URL) - $COMMIT_MSG"
|
|
61
|
+
fi
|
|
62
|
+
|
|
63
|
+
# Запускаем commitlint
|
|
64
|
+
npx --no -- commitlint --edit "$1"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
|
|
3
|
+
COMMIT_MSG=$(git log -1 --pretty=%B)
|
|
4
|
+
COMMIT_HASH=$(git rev-parse --short HEAD)
|
|
5
|
+
REPO_URL=$(git remote get-url origin)
|
|
6
|
+
|
|
7
|
+
# Исправляем URL
|
|
8
|
+
if echo "$REPO_URL" | grep -q "git@github.com"; then
|
|
9
|
+
REPO_URL=$(echo "$REPO_URL" | sed 's/git@github.com:/https:\/\/github.com\//' | sed 's/\.git$//')
|
|
10
|
+
else
|
|
11
|
+
REPO_URL=$(echo "$REPO_URL" | sed 's/\.git$//')
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Пуш коммита
|
|
15
|
+
git push origin HEAD
|
|
16
|
+
|
|
17
|
+
# Закрытие issues при feat: #номер И fix: #номер
|
|
18
|
+
if echo "$COMMIT_MSG" | grep -q "^\(feat\|fix\): #[0-9]"; then
|
|
19
|
+
ISSUE_NUMBER=$(echo "$COMMIT_MSG" | grep -o '#[0-9]*' | sed 's/#//')
|
|
20
|
+
echo "🔧 Закрываю issue #$ISSUE_NUMBER..."
|
|
21
|
+
|
|
22
|
+
COMMIT_LINK="$REPO_URL/commit/$COMMIT_HASH"
|
|
23
|
+
|
|
24
|
+
gh issue close "$ISSUE_NUMBER" --comment "✅ Завершено в коммите: [$COMMIT_HASH]($COMMIT_LINK) - $COMMIT_MSG"
|
|
25
|
+
fi
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
|
|
3
|
+
CURRENT_BRANCH=$(git branch --show-current)
|
|
4
|
+
if [ "$CURRENT_BRANCH" = "main" ]; then
|
|
5
|
+
echo "✅ Разрешённая ветка: $CURRENT_BRANCH"
|
|
6
|
+
exit 0
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
# Простая проверка: начинается с v и есть дефис
|
|
10
|
+
if ! echo "$CURRENT_BRANCH" | grep -q "^v.*-.*"; then
|
|
11
|
+
echo "❌ Неправильный формат ветки: $CURRENT_BRANCH"
|
|
12
|
+
echo "✅ Должен быть: vX.Y.Z-description"
|
|
13
|
+
echo "📝 Пример: v2.3.0-normalize-operators"
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
echo "✅ Формат ветки правильный: $CURRENT_BRANCH"
|