Автоматизация публикации расширений 1С на Infostart через GitHub Actions
В этой статье я расскажу, как настроить автоматическое обновление файлов поставки на Infostart сразу после создания релиза в GitHub. Больше не нужно вручную скачивать .cfe и загружать его через браузер.
Зачем это нужно?
Когда проект растет и конфигураций становится много (УНФ, Розница, УТ, ERP), рутинный процесс выпуска релиза начинает занимать слишком много времени. Автоматизация позволяет:
- Исключить ошибки «человеческого фактора» (загрузили не тот файл).
- Сократить время доставки обновлений до пользователей.
- Держать актуальные версии на всех площадках одновременно.
Мем-пауза: Когда релиз готов, а загружать лень

Как это работает
Процесс состоит из трех компонентов:
- GitHub Release: Источник файлов. Скрипт берет
.cfeиз активов последнего релиза. - Python-скрипт: «Мозг» системы, который умеет общаться с API Infostart.
- GitHub Actions: «Двигатель», который запускает процесс по событию или вручную.
1. Python-скрипт для загрузки
Мы используем небольшой скрипт на Python, который отправляет POST-запрос на специальную ссылку обновления Infostart. Эта ссылка содержит уникальный хэш, позволяющий обновлять файл без полной авторизации в браузере.
import requests
import argparse
def upload_to_infostart(url, file_path, version):
with open(file_path, 'rb') as f:
files = {'file': f}
data = {'v': version}
response = requests.post(url, files=files, data=data)
if response.json().get('SUCCESS'):
print(f"Версия {version} успешно загружена!")
2. Настройка GitHub Actions
Workflow настраивается на ручной запуск и скачивает нужный файл из Assets последнего релиза, передавая его в Python-скрипт.
on:
workflow_dispatch:
inputs:
force_upload:
description: 'Force upload even if versions match'
type: boolean
default: false
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Sync with Infostart
run: |
# Получение последнего релиза через gh + JSON, скачивание .cfe, вызов infostart_updater.py
python automation/infostart_updater.py --url "${{ secrets.INFOSTART_URL_UNF }}" --file "dist/unf.cfe" --version "$VERSION"
Пока оставили только ручной запуск (workflow_dispatch) — так проще контролировать момент синхронизации. Если нужна полная автоматизация, добавьте в on: блок release: types: [published], и workflow будет запускаться при каждом создании релиза на GitHub.
3. Безопасность (Secrets)
Самое важное — ссылки для обновления содержат секретные ключи. Мы храним их в GitHub Secrets. Это позволяет коду быть открытым, но при этом никто не сможет загрузить файлы в ваш профиль Infostart без доступа к настройкам репозитория.
Добавьте секреты в репозитории: Settings → Secrets and variables → Actions → New repository secret. Понадобятся INFOSTART_URL_UNF и INFOSTART_URL_UT.

Итог
Теперь процесс выпуска новой версии выглядит так:
- Запускаем локальный скрипт сборки и создания релиза.
- В GitHub: Actions → Sync with Infostart → Run workflow.
- Через 30 секунд файл уже обновлен на Infostart.

При загрузке обновляется только версия файла на Infostart — пользователи сразу видят актуальный номер (например, ver:1.8.7). Редактировать статью или проходить модерацию не требуется: изменения применяются автоматически.

Это освобождает время для более важных задач, чем «нажми кнопку в браузере».
Проект: 1C AI Autofill
Вступайте в нашу телеграмм-группу Инфостарт
