Examples

This page provides configuration examples for different use cases.

See the examples/ directory in the repository for complete, working example configurations.

Traditional Fedora (Anitya + Packit)

Monitor releases via Anitya and update specs with Packit.

version_source:
  type: anitya
  config:
    token: "your-token"

spec_manager:
  type: packit
  config: {}

git:
  user_name: "Fedora Packager Bot"
  user_email: "packager@example.com"
  auto_push: false

work_dir: "/var/lib/dist-git-manager"

projects:
  - name: "htop"
    identifier: 1234
    repo_url: "https://src.fedoraproject.org/rpms/htop.git"
    release_type: "semver"
    default_branch: "rawhide"
    upstream_project_url: "https://github.com/htop-dev/htop"
    upstream_tag_template: "v{version}"

See examples/anitya_config.yaml

Rust Packages (crates.io + rust2rpm)

Fetch versions from crates.io and generate specs with rust2rpm.

version_source:
  type: crates_io

spec_manager:
  type: rust2rpm

git:
  user_name: "Rust Packager Bot"
  user_email: "rust-bot@example.com"
  auto_push: false

work_dir: "/var/lib/dist-git-manager"

projects:
  - name: "serde"
    identifier: "serde"
    repo_url: "https://src.fedoraproject.org/rpms/rust-serde.git"
    release_type: "semver"
    default_branch: "rawhide"

See examples/crates_config.yaml

Python Packages (PyPI + pyp2spec)

Fetch versions from PyPI and generate specs with pyp2spec.

version_source:
  type: pypi

spec_manager:
  type: pyp2spec

git:
  user_name: "Python Packager Bot"
  user_email: "python-bot@example.com"
  auto_push: false

work_dir: "/var/lib/dist-git-manager"

projects:
  - name: "requests"
    identifier: "requests"
    repo_url: "https://src.fedoraproject.org/rpms/python-requests.git"
    release_type: "semver"
    default_branch: "rawhide"

See examples/pypi_config.yaml

Mixed Ecosystems

Use different version sources and spec managers for different projects:

# No global version_source or spec_manager

git:
  user_name: "Multi-Language Bot"
  user_email: "bot@example.com"
  auto_push: false

work_dir: "/var/lib/dist-git-manager"

projects:
  # Rust crate
  - name: "serde"
    identifier: "serde"
    repo_url: "https://src.fedoraproject.org/rpms/rust-serde.git"
    release_type: "semver"
    default_branch: "rawhide"
    version_source:
      type: crates_io
    spec_manager:
      type: rust2rpm

  # Python package
  - name: "requests"
    identifier: "requests"
    repo_url: "https://src.fedoraproject.org/rpms/python-requests.git"
    release_type: "semver"
    default_branch: "rawhide"
    version_source:
      type: pypi
    spec_manager:
      type: pyp2spec

  # Traditional Fedora
  - name: "htop"
    identifier: 1234
    repo_url: "https://src.fedoraproject.org/rpms/htop.git"
    release_type: "semver"
    default_branch: "rawhide"
    version_source:
      type: anitya
    spec_manager:
      type: packit
    upstream_project_url: "https://github.com/htop-dev/htop"
    upstream_tag_template: "v{version}"

See examples/mixed_config.yaml

Other Ecosystems

Additional example configurations are available for:

See the examples/ directory for all available examples.