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

7.4 KiB
Raw Blame History

  1. Получение API токена в Gitea Войдите в Gitea

Перейдите в Настройки пользователя → Приложения (Settings → Applications)

В разделе "Manage Access Tokens" нажмите "Generate Token"

Укажите имя: webhook-handler

Выберите права: read:repository (достаточно для чтения коммитов)

Нажмите "Generate Token" и скопируйте токен (он показывается только один раз)

  1. Настройка 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"

  1. . Подготовка сервера Установите 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