arc/docs/dist-git-move/monitorgating.rst
Ryan Lerch ba720c3d77 fix parsing errors and sphinx warnings
Signed-off-by: Ryan Lerch <rlerch@redhat.com>
2023-11-20 13:04:34 +00:00

92 lines
3.2 KiB
ReStructuredText

.. _monitorgating:
Pagure Dist Git Interactions With Monitor Gating
================================================
`Monitor Gating <https://pagure.io/fedora-ci/monitor-gating>`_ is a set of scripts that
is used to test if `Fedora CI Gating <https://docs.fedoraproject.org/en-US/ci/gating/>`_
is working as expected. It essentially follows a typical workflow of cloning a package
from dist-git, rebuild it in koji, create a update in bodhi, then checks that the CI
runs, and the build is gated appropriately.
Possible Interactions
---------------------
The following are a set of documented interactions possible between Pagure Dist Git and
Monitor Gating.
git and fedpkg CLI
~~~~~~~~~~~~~~~~~~
**cloning a repo**
Monitor Gating uses ``fedpkg clone`` to clone a repo from dist-git.
`utils.py#_107
<https://pagure.io/fedora-ci/monitor-gating/blob/production/f/monitor_gating/utils.py#_107>`_
**adding a remote**
Monitor Gating uses ``git remote add`` to add a fork on dist-git as a remote on a
cloned dist-git repo.
`utils.py#_136
<https://pagure.io/fedora-ci/monitor-gating/blob/production/f/monitor_gating/utils.py#_136>`_
**switching branches**
Monitor Gating uses ``fedpkg switch-branch`` to switch branches on a dist-git cloned
repo.
`utils.py#_149
<https://pagure.io/fedora-ci/monitor-gating/blob/production/f/monitor_gating/utils.py#_149>`_
**git pull, push, commit**
Monitor Gating uses ``git commit``, ``git pull```, and ``git push`` to get and make
changes to a dist-git repo.
`utils.py#_175-212
<https://pagure.io/fedora-ci/monitor-gating/blob/production/f/monitor_gating/utils.py#_175-212>`_
dist-git (pagure) API
~~~~~~~~~~~~~~~~~~~~~
**CI status**
Monitor gating currently gets the status of the CI run(s) on a pull request using
the get PR flags endpoint (``api/0/<namespace>/<name>/pull-request/<pr-id>/flag``).
`utils.py#_636
<https://pagure.io/fedora-ci/monitor-gating/blob/production/f/monitor_gating/utils.py#_636>`_
**open pull request**
Monitor Gating opens new Pull Requests on dist-git using the pagure API
(``api/0/<namespace>/<name>/pull-request/new``)
`utils.py#_214
<https://pagure.io/fedora-ci/monitor-gating/blob/production/f/monitor_gating/utils.py#_214>`_
**merge pull request**
Monitor Gating merges Pull Requests on dist-git using the pagure API
(``api/0/<namespace>/<name>/pull-request/<pr-id>/merge``)
`utils.py#_691
<https://pagure.io/fedora-ci/monitor-gating/blob/production/f/monitor_gating/utils.py#_691>`_
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.
Necessary
~~~~~~~~~
- The changes made to the Continuous Integration component with regards to the reporting
of CI status need to be updated in monitor gating. Currently dist-git uses the pagure
flags system.
- Monitor Gating will need to be updated to support Opening and Merging pull requests on
the new solution
Unnecessary
~~~~~~~~~~~
- No changes should be needed for the basic git / fedpkg commands. (this is based on the
assumption the new solution is based on git)