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
|
- Include additions to **Anitya/The New Hotness** to support interactions with another
|
||||||
platform
|
platform
|
||||||
|
|
||||||
Index
|
Interactions
|
||||||
-----
|
------------
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
@ -59,6 +59,14 @@ Index
|
||||||
monitorgating
|
monitorgating
|
||||||
releng
|
releng
|
||||||
|
|
||||||
|
Summary
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
summary
|
||||||
|
|
||||||
Conclusions
|
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