Add COPR document to dist-git ARC investigation

Signed-off-by: Michal Konecny <mkonecny@redhat.com>
This commit is contained in:
Michal Konecny 2023-11-02 12:37:57 +01:00
parent ad656bd141
commit b378a14159
2 changed files with 65 additions and 0 deletions

View file

@ -0,0 +1,64 @@
.. _copr:
Pagure Dist Git Interactions With COPR
====
`Copr <https://copr.fedorainfracloud.org/>`_ ("Community projects") is a service
that builds your open-source projects and creates your own RPM repositories.
Possible Interactions
----
The following are a set of documented interactions possible between Pagure Dist
Git and COPR.
Builds logic
^^^^
- COPR is using API calls for flagging dist-git commits or pull requests in
`build_logic.py module <https://github.com/fedora-copr/copr/blob/2789f06b36be5c13eae83c8695eb36de03a7728f/frontend/coprs_frontend/coprs/logic/builds_logic.py#L1101-L1109>`_.
It is calling `/api/0/<package_name>/pull-request/<pr_id>/flag` and
`/api/0/<package_name>/c/<commit_id>/flag` API endpoints.
CLI client
^^^^
- COPR is doing `git clone` from dist-git, which is wrapped in
`copr-distgit-client clone --dist-git fedora <pkgname>`.
Fedora messaging
^^^^
- COPR is listening to following dist-git topics:
* `org.fedoraproject.prod.pagure.git.receive`
* `org.fedoraproject.prod.pagure.pull-request.new`
* `org.fedoraproject.prod.pagure.pull-request.rebased`
* `org.fedoraproject.prod.pagure.pull-request.updated`
* `org.fedoraproject.prod.pagure.pull-request.comment.added`
- These topics are configured in
`frontend messaging configuration <https://pagure.io/fedora-infra/ansible/blob/main/f/roles/copr/frontend/templates/fedora-messaging/copr_messaging.toml>`_.
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
^^^^
- There are few configuration files that points to current dist-git. If the
URL should change we would need to update
`rpkg.conf <https://pagure.io/fedora-infra/ansible/blob/main/f/roles/copr/backend/templates/provision/rpkg.conf.j2>`_
and
`main.ini <https://pagure.io/fedora-infra/ansible/blob/main/f/roles/copr/backend/templates/provision/copr-rpmbuild/main.ini.j2>`_
with the URL to new service.
- In case the message schema of the new dist-git will change we need to update consumed topics in
`frontend messaging configuration <https://pagure.io/fedora-infra/ansible/blob/main/f/roles/copr/frontend/templates/fedora-messaging/copr_messaging.toml>`_.
Unnecessary
^^^^
- There isn't much interactions between Fedora dist-git and COPR and no change
is needed that would be unnecessary to do in case dist-git will change.

View file

@ -43,6 +43,7 @@ Index
.. toctree::
:maxdepth: 1
copr
hotness
notifications
toddlers