diff --git a/docs/docs.html.in b/docs/docs.html.in index 142c79bfa9823fff7ddb15f858eb1dabdc05f205..6bdf0c32b82b40b4b41d5970744ad2f92ba01db0 100644 --- a/docs/docs.html.in +++ b/docs/docs.html.in @@ -172,6 +172,9 @@
Functional testing
Testing libvirt with TCK test suite and Libvirt-test-API
+ +
New repo setup
+
Procedure for configuring new git repositories for libvirt
diff --git a/docs/newreposetup.rst b/docs/newreposetup.rst new file mode 100644 index 0000000000000000000000000000000000000000..ce54aa09d33e0e3b65e02bed98d0f89211df7436 --- /dev/null +++ b/docs/newreposetup.rst @@ -0,0 +1,137 @@ +=============================== +Repository infrastructure setup +=============================== + +GitLab Configuration +==================== + +The `GitLab organization `_ hosts the master copy +of all the libvirt Git repositories. + +When creating a new repository the following changes to the defaults are +required under the **Settings** page: + +* **General** + + * **Naming, topics, avatar** + + * *Project avatar*: upload ``docs/logos/logo-square-256.png`` + + * **Visibility, project features, permissions** + + * *Packages*: disabled + + * *Wiki*: disabled + + * *Snippets*: disabled + + * **Merge Requests** + + * *Merge method*: Fast-forward merge + + * *Merge options*: Enable 'delete source branch' option by default + + * *Merge checks*: Pipelines must succeed + + * **Merge request approvals** + + * *Any eligible user*: Num approvals required == 1 + +* **Integrations** + + * **Pipelines emails** + + * *Recipients*: ``libvirt-ci@redhat.com`` + +* **Repository** + + * **Push rules** + + * *Do not allow users to remove git tags with git push*: enabled + + * *Commit message*: ``Signed-off-by:`` + + * *Branch name*: ``^(master|v.*-maint)$`` + + * **Mirroring repositories** + + * *Git repository URL*: ``https://libvirtmirror@github.com/libvirt/$repo.git`` + + * *Mirror direction*: push + + * *Password*: see ``/root/libvirt-mirror-github-api-token.txt`` on ``libvirt.org`` + + * **Protected branches** + + * *Branch*: ``master`` + + * *Allowed to merge*: Developers + Maintainers + + * *Allowed to push*: None (or Developers + Maintainers if MRs not used) + + * *Require approval from code owners*: disabled + +GitHub configuration +==================== + +The `GitHub organization `_ hosts read-only +mirrors of all the libvirt Git repositories. + +When creating a new repository the following changes to the defaults are +required under the **Settings** page: + +* **Options** + + * **Features** + + * *Wikis*: disabled + + * *Sponsorships*: disabled + + * *Projects*: disabled + + * **Manage access** + + * Add the ``@committers`` team with the role "Write", which + grants the ``libvirtmirror`` user access to sync from GitLab. + + * **Integrations** + + * Check for *Repo Lockdown* (should be set automatically for all projects) + +In the master git repository create a file `.github/lockdown.yml` to restrict +use of issue tracker and pull requests. + + +libvirt.org +=========== + +The `libvirt project server `_ hosts read-only mirrors of +all the libvirt Git repositories in the directory ``/data/git``. + +When creating a new repository the following steps are required: + +* Create repo with + :: + + $ sudo su - + # cd /data/git + # mkdir $repo.git + # cd $repo.git + # git init --bare + # touch export + # touch git-daemon-export-ok + # cd .. + # chown -R gitmirror.gitmirror $repo.git + # chmod -R g+w $repo.git + # find -type d $repo.git | xargs chmod g+s + +* Set the ``description`` and ``config`` files following other repos' example + +* Setup mirroring + :: + + $ sudo su - gitmirror + # ./newrepo.sh /data/git/$repo.git + # cd mirrors + # $HOME/sync-one.sh $repo.git