Project:Repository mirror and CI

The project is currently providing three services for Gentoo:
 * syncing git mirrors of all registered Gentoo repositories (including basic QA),
 * pkgcheck CI running on master branch of gentoo.git repository and pull requests,
 * pull request assignment and bug ↔ PR linking.

Schedule
The scripts are running on the following schedule:
 * pull request assignment — every 4 minutes
 * repository mirrors + gentoo CI — every 20 minutes (with approximate runtime of 4–6 minutes for repo updates, followed by 10 minutes of CI runtime)
 * pull request CI — every 20 minutes (with approximate runtime of 15 minutes)

Hardware/hosting
The scripts are currently running on Gentoo Infrastructure machines. The report repositories and syncing mirror of Gentoo repository are hosted on Gentoo Infrastructure. Hosting mirrors of all repositories (including a second mirror of Gentoo) are hosted on GitHub.

Thanks
I would like to thank Todd Goodman who has supported this project since its very beginning. The scripts were running on his private hardware until they were migrated to Gentoo Infastructure on 2018-06-02.

Scripts
All the scripts are open source. They can be found in the following repositories:
 * repo-mirror-ci for main set of scripts
 * pkgcheck-result-parser that parses pkgcheck XML output and generates HTML reports
 * mgorny/pkgcore for additional pkgcore patches used by the system
 * mgorny/pkgcheck for additional pkgcheck patches used by the system

Repository mirrors
The repository mirrors provide exact copies of all registered Gentoo repositories with all the caches pregenerated. Therefore, they are suitable for direct use for syncing.

The tool defaults to using gentoo-mirror list.

In order to make use the mirrors instead of original repositories, use the following configuration:

The commits to Gentoo repository mirror are OpenPGP-signed. The key fingerprint is listed below:

In order to enable git verification in Portage, please add the following bits to your gentoo section of repos.conf:

Additional resources:
 * all repository mirrors
 * repository status report
 * XML repository list using mirrors as sources