#146 Add summary of dist git deployment to ARC investigation
Merged 6 months ago by t0xic0der. Opened 6 months ago by zlopez.
fedora-infra/ zlopez/arc dist_git_summary  into  main

file modified
+10 -2
@@ -41,8 +41,8 @@ 

  - Include additions to **Anitya/The New Hotness** to support interactions with another

    platform

  

- Index

- -----

+ Interactions

+ ------------

  

  .. toctree::

      :maxdepth: 1
@@ -59,6 +59,14 @@ 

      monitorgating

      releng

  

+ Summary

+ -------

+ 

+ .. toctree::

+     :maxdepth: 1

+ 

+     summary

+ 

  Conclusions

  -----------

  

@@ -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

rebased onto dfea22c0b3959ab8e54036b7b6be8fd88ad8aa45

6 months ago

I would suggest renaming the "Index" section to "Interactions" and then adding another table of contents where you can house the "Summary" page.

Including "Summary" amidst all the applications that interact with the Pagure Dist Git makes it stand out and I am not sure we want that to happen.

Use creates instead of create.

Use adds/edits instead of add/edit.

Use merges a instead of merge.

Use gets or sets instead of get or set.

Use orphans a instead of orphan.

Could you build this locally to check if the link is parsed correctly?

I suspect that as the links are spread across different lines, they would be broken but I can be mistaken.

Use hence instead of as that.

Use allow instead of allows.

Please use the same rendition of the word throughout the documentation.

It can either be Dist Git or Dist-Git or dist-git or dist git but please ensure that it is the same throughout the documentation.

ACLs are used to control permissions for both users and groups I think.

Use Koji instead of koji.

Use Bodhi instead of bodhi.

Use Bugzilla instead of bugzilla.

Use Fedora Packages instead of packages.

Use Koschei instead of koschei.

Please link in URLs to these services for greater reference for community members who will be reading this.

rebased onto e246fb70896b77eca5dad89ba33bbb80d69a2cab

6 months ago

Could you build this locally to check if the link is parsed correctly?

I suspect that as the links are spread across different lines, they would be broken but I can be mistaken.

I did a build locally before creating the PR.

rebased onto b28f60deb5c9e219c077719cdaf35aa23003d157

6 months ago

rebased onto 9d75197

6 months ago

Addressed all the comments

Pull-Request has been merged by t0xic0der

6 months ago