| |
@@ -0,0 +1,120 @@
|
| |
+ .. _summary:
|
| |
+
|
| |
+ Summary of Dist Git Deployment
|
| |
+ ==============================
|
| |
+
|
| |
+ This document is a summary of all the interactions with all the services identified
|
| |
+ in this investigation. It also summarize the features that are currently available
|
| |
+ in current dist git deployment.
|
| |
+
|
| |
+ Here is a diagram showing all the interactions between dist git and services in Fedora
|
| |
+ infrastructure.
|
| |
+
|
| |
+ .. image:: ../_static/dist_git_interactions.drawio.png
|
| |
+ :target: ../_images/dist_git_interaction.drawio.png
|
| |
+
|
| |
+ API
|
| |
+ ----
|
| |
+
|
| |
+ Following is the list of all dist git API endpoints that are currently used by services
|
| |
+ in Fedora infrastructure.
|
| |
+
|
| |
+ More information about endpoints could be found in `API documentation
|
| |
+ <https://src.fedoraproject.org/api/0>`_.
|
| |
+
|
| |
+ - ``/api/0/fork`` creates a fork of project
|
| |
+ - ``/api/0/projects`` lists all the projects
|
| |
+ - ``/api/0/<namespace>/<package_name>`` returns all the info about project
|
| |
+ - ``/api/0/<namespace>/<package_name>/c/<commit_hash>/flag`` adds/edits flag on commit
|
| |
+ - ``/api/0/<namespace>/<package_name>/git/modifyacls`` modifies ACL for the git repository
|
| |
+ - ``/api/0/<namespace>/<package_name>/hascommit`` checks whether a specified user has commit
|
| |
+ access to repository
|
| |
+ - ``/api/0/<namespace>/<package_name>/pull-request/new`` opens a new pull request
|
| |
+ - ``/api/0/<namespace>/<package_name>/pull-request/<pr_id>/flag`` adds/edits flag on pull request
|
| |
+ - ``/api/0/<namespace>/<package_name>/pull-request/<pr-id>/merge`` merges a pull request
|
| |
+ - ``/api/0/<namespace>/<package_name>/watchers/update`` sets watch status for specified user
|
| |
+ - ``/_dg/anitya/<namespace>/<package_name>`` gets/sets monitoring settings
|
| |
+ - ``/_dg/bzoverrides/<namespace>/<package_name>`` gets/sets the bugzilla overrides for
|
| |
+ the project. Used for EPEL maintainers.
|
| |
+ - ``/_dg/orphan/<namespace>/<package_name>`` orphans a package
|
| |
+
|
| |
+
|
| |
+ Messaging Schema
|
| |
+ ----------------
|
| |
+
|
| |
+ Following is the list of all the dist git topics that are being listened by services
|
| |
+ in Fedora Infrastructure.
|
| |
+
|
| |
+ More information about messaging schema could be found in `Fedora Messaging documentation
|
| |
+ <https://fedora-messaging.readthedocs.io/en/stable/user-guide/schemas.html#pagure>`_
|
| |
+
|
| |
+ - ``org.fedoraproject.prod.pagure.git.receive`` when commit is pushed to repository
|
| |
+ - ``org.fedoraproject.prod.pagure.pull-request.new`` when new PR is opened
|
| |
+ - ``org.fedoraproject.prod.pagure.pull-request.rebased`` when PR is rebased
|
| |
+ - ``org.fedoraproject.prod.pagure.pull-request.updated`` when PR is updated
|
| |
+ - ``org.fedoraproject.prod.pagure.pull-request.comment.added`` when comment is added to PR
|
| |
+
|
| |
+
|
| |
+ HTTP Endpoints
|
| |
+ --------------
|
| |
+
|
| |
+ Following is the list of all the dist git HTTP endpoints that are being accessed by services
|
| |
+ in Fedora Infrastructure.
|
| |
+
|
| |
+ - ``/<namespace>/<package_name>/blob/rawhide/f/gating.yaml`` to get the Rawhide
|
| |
+ gating settings. This file is in the default branch.
|
| |
+ - ``/<namespace>/<package_name>/raw/rawhide/f/dead.package`` to check if the package is
|
| |
+ retired. This file is the only file in default branch when the package is retired.
|
| |
+ - ``/<namespace>/<package_name>/raw/<branch>/f/<package_name>.yaml`` to obtain
|
| |
+ definition file for module
|
| |
+ - ``/extras/pagure_bz.json`` to get list of maintainers for packages.
|
| |
+ - ``/extras/pagure_owner_alias.json`` to get owners of packages.
|
| |
+ - ``/extras/pagure_poc.json`` to get point of contacts for packages.
|
| |
+
|
| |
+
|
| |
+ Git Interactions
|
| |
+ ----------------
|
| |
+
|
| |
+ On dist git every package is also git repository and hence it could be cloned and allow the
|
| |
+ packager to do any git operation with it.
|
| |
+
|
| |
+
|
| |
+ Access Control
|
| |
+ --------------
|
| |
+
|
| |
+ Dist git is using `ACL implementation
|
| |
+ <https://pagure.io/pagure/blob/master/f/pagure/lib/git_auth.py>`_ from Pagure.
|
| |
+ Access Control Lists are used to control permissions of users to package sources.
|
| |
+
|
| |
+
|
| |
+ Web Interface Features
|
| |
+ ----------------------
|
| |
+
|
| |
+ This is a list of specific UI features that are not inherited from Pagure. The rest
|
| |
+ is inherited from Pagure.
|
| |
+
|
| |
+ - Links to `Koji <https://koji.fedoraproject.org/koji/>`_,
|
| |
+ `Bodhi <https://bodhi.fedoraproject.org/>`_,
|
| |
+ `Bugzilla <https://bugzilla.redhat.com>`_,
|
| |
+ `Fedora Packages <https://packages.fedoraproject.org/>`_
|
| |
+ and `Koschei <https://koschei.fedoraproject.org/>`_
|
| |
+ - ``Issues`` tab is just a link to bugzilla tracker for the repository
|
| |
+ - Monitoring status setting (backend implemented in `dist git
|
| |
+ <https://pagure.io/pagure-dist-git/blob/master/f/pagure_distgit/plugin.py>`_)
|
| |
+ - Orphaning and taking orphaned projects (backend implemented in `dist git
|
| |
+ <https://pagure.io/pagure-dist-git/blob/master/f/pagure_distgit/plugin.py>`_)
|
| |
+
|
| |
+
|
| |
+ Lookaside Cache
|
| |
+ ---------------
|
| |
+
|
| |
+ https://src.fedoraproject.org/repo/pkgs/ is hosting lookaside cache, which is used
|
| |
+ by build system to obtain sources for the packages. It is hosted on same machine as dist
|
| |
+ git and contains folder structure in which the sources are stored.
|
| |
+
|
| |
+
|
| |
+ FAS integration
|
| |
+ ---------------
|
| |
+
|
| |
+ Dist git is using `FAS integration
|
| |
+ <https://pagure.io/pagure/blob/master/f/pagure/ui/oidc_login.py>`_ from Pagure.
|
| |
Add summary file for dist-git decoupling ARC investigation.
Signed-off-by: Michal Konecny mkonecny@redhat.com