diff --git a/.gitea/workflows/pr-validation.yml b/.gitea/workflows/pr-validation.yml deleted file mode 100644 index d19ce0f..0000000 --- a/.gitea/workflows/pr-validation.yml +++ /dev/null @@ -1,72 +0,0 @@ - -name: PR Validation - -on: - pull_request: - branches: - - main - - develop - types: [opened, synchronize, reopened] - -jobs: - pr_checks: - runs-on: ubuntu-latest - steps: - # 1. Клонируем репозиторий - - name: Checkout code - uses: https://gitea.com/gitea/act_runner@v0.2.8 # Используем официальный action для проверки кода - with: - fetch-depth: 0 - - # 2. Получаем имя автора PR - - name: Get PR Author - id: pr_info - run: | - echo "username=${{ github.actor }}" >> $GITHUB_OUTPUT - echo "pr_number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT - - -# 3. Проверка: Шаблон сообщения коммита [1] ... - - name: Check Commit Message Format - run: | - USERNAME="${{ steps.pr_info.outputs.username }}" - BASE_SHA="${{ github.event.pull_request.base.sha }}" - HEAD_SHA="${{ github.event.pull_request.head.sha }}" - - echo "Checking commits between $BASE_SHA and $HEAD_SHA..." - - # Перебираем все коммиты в PR - git log $BASE_SHA..$HEAD_SHA --pretty=format:"%H %s" | while read -r commit_hash commit_msg; do - # Проверяем, начинается ли сообщение с [X] (где X - цифра) - # Регулярное выражение: символ '^', открывающая '[', цифра, закрывающая ']' - if ! echo "$commit_msg" | grep -q "^\[[0-9]+\]"; then - echo "❌ ОШИБКА: Коммит '$commit_msg' не соответствует шаблону '[X] *'" - echo "Коммит должен начинаться с цифры в квадратных скобках, например: [1] ..." - exit 1 - fi - done - echo "✅ Шаблон сообщений соответствует требованиям." - - # 4. Проверка: Проверка, что файлы лежат в подпапке автора - - name: Check Files Location - run: | - USERNAME="${{ steps.pr_info.outputs.username }}" - BASE_SHA="${{ github.event.pull_request.base.sha }}" - HEAD_SHA="${{ github.event.pull_request.head.sha }}" - - echo "Checking file locations..." - - # Получаем список файлов, которые изменились или добавились в PR - git diff --name-only --diff-filter=ACM $BASE_SHA..$HEAD_SHA | while read -r file; do - # Извлекаем первую папку из пути к файлу (разделитель '/') - # Например: "author/subfolder/file.txt" -> "author" - first_folder=$(echo "$file" | cut -d'/' -f1) - - # Проверяем, совпадает ли эта папка с именем автора PR - if [ "$first_folder" != "$USERNAME" ]; then - echo "❌ ОШИБКА: Файл '$file' не находится в подпапке автора ('$USERNAME')." - echo "Все изменения должны лежать в папке с именем автора." - exit 1 - fi - done - echo "✅ Файлы находятся в правильных папках."