Port core modules (config, exceptions, i18n, api_clients, gitea_cli), 14 CI scripts, 6 dev tools, 5 molecule tools, CLI entry point, workflows, Makefile, tests (784 tests, 100% coverage), and documentation from GRM. The devx package is published to the Gitea PyPI registry and consumed by GRM, infra, and other oblachno-oss projects as a pip dependency. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
devx — Reusable Development & CI/CD Tools
A Python package providing reusable development and CI/CD automation tools for oblachno-oss projects. devx consolidates release management, PR automation, wiki sync, badge generation, translation checks, and more into a single installable package.
An open-source project from Oblachno (облачно means cloudy in Bulgarian).
Installation
Install from the Gitea PyPI registry:
pip install devx --index-url https://git.oblachno.oblachno.fyi/api/packages/oblachno-oss/pypi/simple
Or add the registry to your pip.conf / pyproject.toml and install normally:
pip install devx
Usage
CI/CD Automation
devx provides CI/CD modules invoked via python -m devx.ci.*:
# Release automation (versioning, changelog, tagging)
python -m devx.ci.release
python -m devx.ci.release --dry-run
# Publish a release to the Gitea PyPI registry
python -m devx.ci.publish v1.0.0 oblachno-oss/devx
# Automated PR review
python -m devx.ci.pr_review 42 oblachno-oss/devx
# Auto-merge a PR (validates title, squash-merges)
python -m devx.ci.auto_merge feature-branch "DEVX-12: Add feature" oblachno-oss/devx 42
# Classify changes (user-facing vs workflow-only)
python -m devx.ci.classify_changes --base origin/master --head HEAD --github-output
# Sync documentation to Gitea wiki
python -m devx.ci.sync_wiki --repo oblachno-oss/devx --strict
# Generate and push quality badges
python -m devx.ci.push_badges
# Check translation completeness
python -m devx.ci.check_translations
# Documentation coverage check
python -m devx.ci.doc_coverage --fail-on-missing
# Validate a commit message
python -m devx.ci.validate_commit_msg commit-msg.txt --branch master
# Notify on CI failure (creates a Gitea issue)
python -m devx.ci.notify_failure --repo oblachno-oss/devx --run-id 123 --workflow ci --commit abc123
Developer Tools
devx provides developer tooling invoked via python -m devx.tools.*:
# Set up a development environment (venv, deps, hooks)
python -m devx.tools.setup --bin .venv/bin
# Install CI tools (actionlint, git-cliff, act_runner, tea)
python -m devx.tools.install_tools
python -m devx.tools.install_tools --tool git-cliff --tool tea
# Check unit test speed
python -m devx.tools.check_test_speed --max-seconds 10
# Configure repository (branch protection, labels)
python -m devx.tools.configure_repo
CLI
devx also provides a devx CLI command:
devx --help
devx --version
Configuration
devx reads configuration from environment variables with .env file fallback:
| Variable | Default | Description |
|---|---|---|
DEVX_GITEA_API_URL |
https://git.oblachno.oblachno.fyi/api/v1 |
Gitea API base URL |
DEVX_VIKUNJA_API_URL |
https://work.oblachno.oblachno.fyi/api/v1 |
Vikunja API base URL |
DEVX_LANG |
en |
Language (en, bg) |
REPO_TOKEN |
— | Gitea API token |
VIKUNJA_TOKEN |
— | Vikunja API token |
Copy .env.example to .env and fill in your tokens:
cp .env.example .env
Development
git clone https://git.oblachno.oblachno.fyi/oblachno-oss/devx.git
cd devx
make setup # Create venv, install deps, hooks, CI tools
make lint-all # ruff + pyright + bandit + actionlint
make pytest-cov # Unit tests with 100% coverage
See AGENTS.md for full project conventions, PR workflow, and architecture details.
License
GPL-3.0