com1.txt
This commit is contained in:
243
Readme.md
Normal file
243
Readme.md
Normal file
@@ -0,0 +1,243 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user