Add summary of dist git deployment to ARC investigation
Add summary file for dist-git decoupling ARC investigation. Signed-off-by: Michal Konecny <mkonecny@redhat.com>
This commit is contained in:
parent
6fef4d3f82
commit
9d75197c03
2 changed files with 130 additions and 2 deletions
|
@ -41,8 +41,8 @@ Requirements
|
|||
- Include additions to **Anitya/The New Hotness** to support interactions with another
|
||||
platform
|
||||
|
||||
Index
|
||||
-----
|
||||
Interactions
|
||||
------------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
@ -59,6 +59,14 @@ Index
|
|||
monitorgating
|
||||
releng
|
||||
|
||||
Summary
|
||||
-------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
summary
|
||||
|
||||
Conclusions
|
||||
-----------
|
||||
|
||||
|
|
120
docs/dist-git-move/summary.rst
Normal file
120
docs/dist-git-move/summary.rst
Normal file
|
@ -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.
|
Loading…
Add table
Add a link
Reference in a new issue