100 lines
No EOL
6.3 KiB
Markdown
100 lines
No EOL
6.3 KiB
Markdown
# Дополнительная информация:
|
||
|
||
# Дополнительная информация:
|
||
Установить пользовательские скрипты в Forgejo можно через репозиторий Pub Packages. Это позволяет добавлять скрипты и пакеты, которые будут выполняться в экземпляре Forgejo.
|
||
## Шаги для установки скриптов
|
||
- Зарегистрировать репозиторий. Для этого нужно выполнить команду dart pub token add и указать URL-адрес экземпляра Forgejo.
|
||
- Опубликовать пакет. В файле pubspec.yaml необходимо добавить строку publish_to: https://forgejo.example.com/api/packages/{owner}/pub.
|
||
- Опубликовать пакет. Выполнить команду dart pub publish.
|
||
- Установить пакет. Использовать команду dart pub add {package_name} --hosted-url=https://forgejo.example.com/api/packages/{owner}/pub/.
|
||
|
||
Если пакет с таким же названием и версией уже существует, перед публикацией нужно удалить его.
|
||
После установки пользовательские скрипты и пакеты будут доступны для запуска в экземпляре Forgejo через команду forgejo forgejo-cli actions run.
|
||
|
||
# Else
|
||
Для интеграции пользовательских скриптов в Forgejo необходимо выполнить несколько шагов, включая настройку конфигурационных файлов, использование встроенных механизмов автоматизации и интеграцию с внешними сервисами. Вот основные методы:
|
||
1. Настройка через конфигурационный файл app.ini
|
||
Forgejo позволяет настраивать поведение через файл app.ini, расположенный по умолчанию в /etc/forgejo/app.ini. Для добавления пользовательских скриптов можно использовать следующие секции:
|
||
Резервное копирование:
|
||
[backup]
|
||
ENABLED = true
|
||
DESTINATION = s3://your-bucket/path
|
||
S3_ACCESS_KEY = YOUR_ACCESS_KEY
|
||
S3_SECRET_KEY = YOUR_SECRET_KEY
|
||
Это активирует автоматическое резервное копирование репозиториев в S3-совместимое хранилище.
|
||
blog.gibson.sh
|
||
blogops.mixinet.net
|
||
Настройка SMTP для уведомлений:
|
||
[mailer]
|
||
ENABLED = true
|
||
PROTOCOL = smtp
|
||
HOST = smtp.example.com
|
||
PORT = 587
|
||
USER = your_email@example.com
|
||
PASSWD = your_password
|
||
Позволяет отправлять уведомления о событиях (например, пул-реквесты).
|
||
forgejo.org
|
||
blog.gibson.sh
|
||
2. Использование действий (Actions)
|
||
Forgejo поддерживает автоматизацию через систему действий, которая позволяет запускать скрипты при определенных событиях (например, коммитах, тегах). Для этого:
|
||
Создайте файл .forgejo/actions.yml в корне репозитория:
|
||
name: Build and Deploy
|
||
on:
|
||
push:
|
||
branches:
|
||
- main
|
||
jobs:
|
||
build:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v2
|
||
- name: Run Build Script
|
||
run: ./build.sh
|
||
Это пример скрипта для сборки проекта при пуше в ветку main.
|
||
|
||
blogops.mixinet.net
|
||
netdevops.blog
|
||
Зарегистрируйте бегун (runner):
|
||
forgejo actions register --name "My Runner" --secret "your_secret"
|
||
Бегун должен быть установлен на сервере с доступом к необходимым ресурсам.
|
||
blogops.mixinet.net
|
||
3. Интеграция с внешними скриптами через API
|
||
Forgejo предоставляет REST API для управления репозиториями и событиями. Примеры использования:
|
||
Создание вебхука:
|
||
curl -X POST \
|
||
-H "Authorization: token YOUR_ACCESS_TOKEN" \
|
||
https://your-forgejo.com/api/v1/repos/owner/repo/hooks \
|
||
-d '{
|
||
"url": "https://your-script.com/webhook",
|
||
"events": ["push", "pull_request"]
|
||
}'
|
||
Это позволит вызывать внешний скрипт при событиях в репозитории.
|
||
netdevops.blog
|
||
lupyuen.github.io
|
||
Запуск скрипта через CLI:
|
||
forgejo repo clone git@your-forgejo.com:owner/repo /path/to/local/repo
|
||
cd /path/to/local/repo
|
||
./your_script.sh
|
||
4. Настройка пользовательских модулей
|
||
Для расширенной интеграции (например, кастомные шаблоны интерфейса) можно использовать:
|
||
Плагины: Forgejo поддерживает интеграцию с внешними модулями через API.
|
||
Кэширование: Настройка кэша через app.ini:
|
||
[cache]
|
||
ENABLED = true
|
||
CACHE_DIR = /var/cache/forgejo
|
||
|
||
blogops.mixinet.net
|
||
5. Пример скрипта для резервного копирования
|
||
Создайте файл /etc/forgejo/backup.sh:
|
||
#!/bin/bash
|
||
|
||
# Резервное копирование репозиториев в S3
|
||
forgejo backup --destination s3://your-bucket/forgejo --include-lfs
|
||
Добавьте задачу в crontab:
|
||
0 0 * * * /etc/forgejo/backup.sh > /var/log/forgejo/backup.log 2>&1
|
||
Итог
|
||
Установка пользовательских скриптов в Forgejo сводится к:
|
||
Настройке конфигурационных файлов (app.ini, actions.yml).
|
||
Использованию встроенных механизмов автоматизации (actions, вебхуки).
|
||
Интеграции с внешними сервисами через API или CLI.
|
||
Для сложных сценариев (например, CI/CD) рекомендуется использовать бегун (runner) и систему оркестрации, такую как Docker |