Files
new_test/Readme.md
2026-09-19 09:50:20 +00:00

244 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
1. Получение API токена в Gitea
Войдите в Gitea
Перейдите в Настройки пользователя → Приложения (Settings → Applications)
В разделе "Manage Access Tokens" нажмите "Generate Token"
Укажите имя: webhook-handler
Выберите права: read:repository (достаточно для чтения коммитов)
Нажмите "Generate Token" и скопируйте токен (он показывается только один раз)
2. Настройка Webhook в Gitea
Откройте репозиторий в Gitea
Перейдите в Настройки → Вебхуки (Settings → Webhooks)
Нажмите "Add Webhook" → выберите "Gitea"
Заполните форму:
Поле Значение
Target URL http://IP-вашего-сервера:5000/webhook (например, http://192.168.1.100:5000/webhook)
HTTP Method POST
POST Content Type application/json
Secret (опционально) можно оставить пустым
Trigger On Выберите "Push Events" и "Delete Events"
Branch filter Оставьте пустым (или укажите конкретные ветки)
Active ✅ Включено
Нажмите "Add Webhook"
3. . Подготовка сервера
Установите Python и зависимости:
bash
# Установка Python (если не установлен)
# Для Ubuntu/Debian:
sudo apt update
sudo apt install python3 python3-pip
# Для Windows: скачайте с python.org
# Установка зависимостей
pip install flask requests
Скачайте и настройте приложение:
bash
# Создайте директорию
mkdir gitea-webhook
cd gitea-webhook
и скопируйте в нее файл app.py
#Настройте переменные окружения:
bash
# Установите переменные (для Linux/Mac)
export GITEA_URL=https://gitea.your-company.com
export GITEA_TOKEN=your_api_token_here
# Для Windows (cmd)
set GITEA_URL=https://gitea.your-company.com
set GITEA_TOKEN=your_api_token_here
# Для Windows (PowerShell)
$env:GITEA_URL="https://gitea.your-company.com"
$env:GITEA_TOKEN="your_api_token_here"
Запустите приложение:
bash
python app.py
Инструкция по тестированию обнаружения новых и удаленных коммитов
Подготовка
bash
# 1. Создайте тестовый репозиторий или используйте существующий
mkdir test-webhook
cd test-webhook
# 2. Инициализируйте репозиторий
git init
# 3. Добавьте удаленный репозиторий (Gitea)
git remote add origin https://gitea.daes.prosyst.ru/YOUR_USER/test-webhook.git
# 4. Создайте первый коммит (базовый)
echo "Initial content" > README.md
git add README.md
git commit -m "Initial commit"
git push -u origin main
Сценарий 1: Создание ветки с несколькими коммитами
bash
# 1. Создайте ветку feature
git checkout -b feature/TSK-100
# 2. Создайте 3 коммита с задачами
echo "Feature 1" > feature1.txt
git add feature1.txt
git commit -m "TSK-100: Add feature 1"
echo "Feature 2" > feature2.txt
git add feature2.txt
git commit -m "TSK-100: Add feature 2"
echo "Feature 3" > feature3.txt
git add feature3.txt
git commit -m "TSK-100: Add feature 3"
# 3. Push ветку
git push -u origin feature/TSK-100
Ожидаемый вывод в консоли:
text
======================================================================
[PUSH] user/test-webhook:feature/TSK-100
[NEW] 3 commits:
+ abc123: TSK-100: Add feature 1
+ def456: TSK-100: Add feature 2
+ ghi789: TSK-100: Add feature 3
[SUMMARY] Found tasks: TSK-100
Сценарий 2: Rebase (переписывание истории)
Вариант A: Изменение сообщения коммита (reword)
bash
# 1. Сделайте rebase последних 3 коммитов
git rebase -i HEAD~3
# В редакторе появится:
# pick abc123 TSK-100: Add feature 1
# pick def456 TSK-100: Add feature 2
# pick ghi789 TSK-100: Add feature 3
# 2. Измените pick на reword для второго коммита:
# pick abc123 TSK-100: Add feature 1
# reword def456 TSK-100: Add feature 2
# pick ghi789 TSK-100: Add feature 3
# 3. В открывшемся редакторе измените сообщение на:
# "TSK-100: Update feature 2"
# 4. Сохраните и выйдите
# 5. Force push
git push --force origin feature/TSK-100
Ожидаемый вывод в консоли:
text
======================================================================
[PUSH] user/test-webhook:feature/TSK-100
[NEW] 3 commits:
+ abc123: TSK-100: Add feature 1
+ def456: TSK-100: Update feature 2
+ ghi789: TSK-100: Add feature 3
[REMOVED] 1 commits:
- def456_old: TSK-100: Add feature 2
Вариант B: Объединение коммитов (squash)
bash
# 1. Начните rebase
git rebase -i HEAD~3
# 2. Измените на squash:
# pick abc123 TSK-100: Add feature 1
# squash def456 TSK-100: Add feature 2
# squash ghi789 TSK-100: Add feature 3
# 3. В редакторе объедините сообщения:
# TSK-100: Add all features
# 4. Сохраните и выйдите
# 5. Force push
git push --force origin feature/TSK-100
Ожидаемый вывод в консоли:
text
======================================================================
[PUSH] user/test-webhook:feature/TSK-100
[NEW] 1 commits:
+ abc123_new: TSK-100: Add all features
[REMOVED] 2 commits:
- def456_old: TSK-100: Add feature 2
- ghi789_old: TSK-100: Add feature 3
Вариант C: Удаление коммита (drop)
bash
# 1. Начните rebase
git rebase -i HEAD~3
# 2. Удалите строку с коммитом:
# pick abc123 TSK-100: Add feature 1
# drop def456 TSK-100: Add feature 2
# pick ghi789 TSK-100: Add feature 3
# 3. Сохраните и выйдите
# 4. Force push
git push --force origin feature/TSK-100
Ожидаемый вывод в консоли:
text
======================================================================
[PUSH] user/test-webhook:feature/TSK-100
[NEW] 2 commits:
+ abc123: TSK-100: Add feature 1
+ ghi789: TSK-100: Add feature 3
[REMOVED] 1 commits:
- def456: TSK-100: Add feature 2
Сценарий 3: Изменение последнего коммита (amend)
bash
# 1. Измените последний коммит
echo "Updated feature" > feature3.txt
git add feature3.txt
git commit --amend -m "TSK-100: Updated feature 3"
# 2. Force push
git push --force origin feature/TSK-100
Ожидаемый вывод в консоли:
text
======================================================================
[PUSH] user/test-webhook:feature/TSK-100
[NEW] 1 commits:
+ ghi789_new: TSK-100: Updated feature 3
[REMOVED] 1 commits:
- ghi789_old: TSK-100: Add feature 3
Сценарий 4: Удаление ветки
bash
# 1. Удалите ветку локально и на сервере
git checkout main
git branch -d feature/TSK-100
git push origin --delete feature/TSK-100
Ожидаемый вывод в консоли:
text
======================================================================
[WEBHOOK] Event: delete
[BRANCH DELETED] refs/heads/feature/TSK-100
[TASKS IN DELETED BRANCH] TSK-100