Pagure Dist Git Interactions With Fedora CI

Fedora CI is a service that handles Continuous Integration of packages in Fedora project. As that it interacts with dist-git. Fedora CI consists of multiple services:

  • Jenkins - Fedora hosted instance that runs the tests

  • Greenwave - service to evaluate gating policies on test results

  • ResultsDB - stores results of the tests

  • WaiverDB - service for recording waivers against test results

Possible Interactions

The following are a set of documented interactions possible between Pagure Dist Git and Fedora CI.

Rawhide gating

  • To configure rawhide gating rules for Greenwave user needs to add gating.yaml file to package repository

Notification about results

  • Notification about CI results is done by creating flags using API calls:

    • /api/0/<package_name>/pull-request/<pr_id>/flag

    • /api/0/<package_name>/c/<commit_id>/flag

    Those flags are then visible on the corresponding commit or pull request.

Triggering tests on pull requests

  • The automatic trigger of CI when creating pull request is done by emitting message topic and it’s consumed by Jenkins

Changes proposed

In order to switch out Pagure Dist Git for an alternative that provides a relatively compatible API pattern, the following changes must be made in the places mentioned below.


  • If URL for dist git is change it will need to be reflected in each component that is part of Fedora CI and directly interacts with dist-git:

    • Greenwave - HTTP get request to the repository to check the gating.yaml


  • In case message schema will change we would need to update the topics that are consumed by Fedora CI. The configuration for Jenkins is here.