A collection of reusable Docker-based CI/CD cubes for the SourceCraft.dev platform, enabling automated notifications and repository management.
This project provides three specialized Docker cubes that extend SourceCraft.dev's CI/CD capabilities:
- Telegram Notification Cube - Send build status updates to Telegram
- Yandex Messenger Cube - Integrate with Yandex Messenger for notifications
- Git Mirror Cube - Automatically mirror repositories between different Git providers
- Development: GitHub (collaboration, code review, version control)
- CI/CD: SourceCraft.dev (build, test, deploy)
- Container Registry: Yandex Cloud Container Registry
- Runtime: Docker containers with Node.js
Sends customizable notifications to Telegram chats and channels about CI/CD pipeline status.
Environment Variables:
- TELEGRAM_BOT_TOKEN: Your Telegram bot token
- TELEGRAM_CHAT_ID: Target chat/channel ID
- MESSAGE: Custom notification message
- BUILD_STATUS: Current build status (success/failure)
Outputs:
- MESSAGE_ID: Telegram message ID
- STATUS: Delivery status
- TIMESTAMP: Send timestamp
Integrates with Yandex Messenger for enterprise team notifications.
Environment Variables:
- YANDEX_TOKEN: Yandex Messenger API token
- CHAT_ID or YANDEX_CHAT_ID: Target chat ID
- MESSAGE: Notification content
- BUILD_STATUS: Build status indicator
Outputs:
- MESSAGE_ID: Yandex message ID
- STATUS: Delivery status
- CHAT_ID: Target chat
- TIMESTAMP: Send timestamp
Automatically mirrors repositories between different Git hosting providers.
Environment Variables:
- SOURCE_REPO: Source repository URL
- TARGET_REPO: Target repository URL
- GIT_TOKEN: Authentication token for private repositories
- BRANCH: Branch to mirror (default: main)
- CLONE_DEPTH: Clone depth for optimization (default: 1)
Outputs:
- MIRROR_STATUS: Success/failure status
- SOURCE_COMMIT: Source commit hash
- DURATION_MS: Operation duration
- TIMESTAMP: Mirror timestamp
- Yandex Cloud account with Container Registry access
- SourceCraft.dev account
- GitHub account
- Docker installed locally
- Node.js - local testing
- Clone the repository
- Implement cubes with proper SOURCECRAFT_OUTPUT handling
- Test locally with Docker
- Push to branch
- Test in SourceCraft CI/CD
- Test and push
- All progress pushed to GitHub branches
- Create Pull Requests
- Review team's code
- Merge to main
- Final push to SourceCraft
- Run complete CI/CD pipeline
hack-dev-cubes/
├── .sourcecraft/
│ ├── ci.yaml # Main CI/CD configuration
│ └── example-pipeline.yaml # Usage examples
├── .github/
│ └── workflows/
├── telegram-cube/
│ ├── Dockerfile
│ ├── package.json
│ └── src/
│ └── index.js
├── yandex-messenger-cube/
│ ├── Dockerfile
│ ├── package.json
│ └── src/
│ └── index.js
├── git-mirror-cube/
│ ├── Dockerfile
│ ├── package.json
│ └── src/
│ └── index.js
├── docker-compose.yml # Local testing
└── README.md # This file
- Timeline: 48 hours
- Platform: SourceCraft.dev for CI/CD, GitHub for collaboration
- Goal: Functional, documented, demonstrable CI/CD extensions
- Focus: Working implementation over perfection
- Developer 1: Yandex Messenger & Git Mirror Cubes
- Developer 2: Telegram Notification Cube
- Platform: SourceCraft.dev + GitHub hybrid approach
Built for SourceCraft.dev Hackathon - Extending CI/CD with Docker Cubes
Коллекция многоразовых CI/CD-кубов на основе Docker для платформы SourceCraft.dev, позволяющих автоматизировать уведомления и управление репозиториями.
Этот проект предоставляет три специализированных Docker-куба, которые расширяют возможности SourceCraft.dev в области CI/CD:
- Telegram Notification Cube - Отправка обновлений статуса сборки в Telegram
- Yandex Messenger Cube - Интеграция с Yandex Messenger для получения уведомлений
- Git Mirror Cube - Автоматическое зеркалирование репозиториев между различными поставщиками Git
- Разработка: GitHub (совместная работа, проверка кода, контроль версий)
- CI/CD: SourceCraft.dev (сборка, тестирование, развертывание)
- Реестр контейнеров: Yandex Cloud Container Registry
- Среда выполнения: контейнеры Docker с Node.js
Отправляет настраиваемые уведомления в чаты и каналы Telegram о статусе конвейера CI/CD.
Переменные среды:
- TELEGRAM_BOT_TOKEN: токен вашего бота Telegram
- TELEGRAM_CHAT_ID: идентификатор целевого чата/канала
- MESSAGE: Настраиваемое уведомление
- BUILD_STATUS: текущий статус сборки (успех/неудача)
Выходы:
- MESSAGE_ID: Идентификатор сообщения в Telegram
- СТАТУС: Статус доставки
- ОТМЕТКА времени: Отметка времени отправки
Интегрируется с Yandex Messenger для уведомлений корпоративной команды.
Переменные среды:
- YANDEX_TOKEN: токен API Yandex Messenger
- CHAT_ID или YANDEX_CHAT_ID: Идентификатор целевого чата
- СООБЩЕНИЕ: Содержимое уведомления
- BUILD_STATUS: индикатор состояния сборки
Выходы:
- MESSAGE_ID: Идентификатор сообщения в Яндексе
- СТАТУС: Статус доставки
- Идентификатор чата: Целевой чат
- ВРЕМЕННАЯ МЕТКА: Отправьте временную метку
Автоматически отображает репозитории между разными хостинг-провайдерами Git.
Переменные среды:
- SOURCE_REPO: URL исходного репозитория
- TARGET_REPO: URL целевого репозитория
- GIT_TOKEN: Токен аутентификации для частных репозиториев
- ВЕТВЬ: Переход к зеркалу (по умолчанию: главная)
- CLONE_DEPTH: глубина клонирования для оптимизации (по умолчанию: 1)
Выходы:
- MIRROR_STATUS: Статус успешного выполнения/сбоя
- SOURCE_COMMIT: Хэш исходной фиксации
- DURATION_MS: Продолжительность операции
- ВРЕМЕННАЯ МЕТКА: Зеркальная временная метка
- Облачная учетная запись Яндекса с доступом к реестру контейнеров
- Учетная запись SourceCraft.dev
- учетная запись на GitHub
- Локально установленный Docker
- Node.js - локальное тестирование
- Клонирование репозитория
- Внедрение кубов с надлежащей обработкой SOURCECRAFT_OUTPUT
- Локальное тестирование с помощью Docker
- Переход к ветви
- Тестирование в SourceCraft CI/CD
- Тестирование и переход
- Весь прогресс перенесен в ветки GitHub
- Создаем запросы на доработку
- Проверяем код команды
- Объединяем с основным
- Завершаем загрузку в SourceCraft
- Запускаем полный конвейер CI/CD
hack-dev-cubes/
├── .исходный код/
│ ├── ci.yaml # Основная конфигурация CI/CD
│ └── пример конвейера.yaml # Примеры использования
├── .github/
│ └── рабочие процессы/
├── telegram-cube/
│ ├── Dockerfile
│ ├── package.json
│ └── src/
│ └── index.js
├── яндекс-мессенджер-куб/
│ ├── Dockerfile
│ ├── package.json
│ └── src/
│ └── index.js
├── git-зеркальный куб/
│ ├── Файл Dockerfile
│ ├── package.json
│ └── src/
│ └── index.js
├── docker-compose.yml # Локальное тестирование
└── README.md # Этот файл
- Сроки: 48 часов
- Платформа: SourceCraft.dev для CI/CD, GitHub для совместной работы
- Цель: функциональные, документированные, демонстрируемые расширения CI/CD
- Фокус: Работа над совершенствованием реализации
- Разработчик 1: Yandex Messenger и зеркальные кубы Git
- Разработчик 2: Telegram Notification Cube
- Платформа: гибридный подход SourceCraft.dev + GitHub
Создан для хакатона SourceCraft.dev - расширение CI/CD с помощью Docker Cubes.