diff --git a/docs/dist-git-move/index.rst b/docs/dist-git-move/index.rst index 603925c..e8e8230 100644 --- a/docs/dist-git-move/index.rst +++ b/docs/dist-git-move/index.rst @@ -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 ----------- diff --git a/docs/dist-git-move/summary.rst b/docs/dist-git-move/summary.rst new file mode 100644 index 0000000..5ad5781 --- /dev/null +++ b/docs/dist-git-move/summary.rst @@ -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 +`_. + +- ``/api/0/fork`` creates a fork of project +- ``/api/0/projects`` lists all the projects +- ``/api/0//`` returns all the info about project +- ``/api/0///c//flag`` adds/edits flag on commit +- ``/api/0///git/modifyacls`` modifies ACL for the git repository +- ``/api/0///hascommit`` checks whether a specified user has commit + access to repository +- ``/api/0///pull-request/new`` opens a new pull request +- ``/api/0///pull-request//flag`` adds/edits flag on pull request +- ``/api/0///pull-request//merge`` merges a pull request +- ``/api/0///watchers/update`` sets watch status for specified user +- ``/_dg/anitya//`` gets/sets monitoring settings +- ``/_dg/bzoverrides//`` gets/sets the bugzilla overrides for + the project. Used for EPEL maintainers. +- ``/_dg/orphan//`` 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 +`_ + +- ``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. + +- ``///blob/rawhide/f/gating.yaml`` to get the Rawhide + gating settings. This file is in the default branch. +- ``///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. +- ``///raw//f/.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 +`_ 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 `_, + `Bodhi `_, + `Bugzilla `_, + `Fedora Packages `_ + and `Koschei `_ +- ``Issues`` tab is just a link to bugzilla tracker for the repository +- Monitoring status setting (backend implemented in `dist git + `_) +- Orphaning and taking orphaned projects (backend implemented in `dist git + `_) + + +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 +`_ from Pagure.