Use case
As a developer I want to create an issue or pull request on my own forge, even when the target is a software project hosted on another forge. Very much like I want to write an email to someone@gmail.com using my preferred email client and not the Google mail web interface.
Mirroring software projects
It is currently possible to move a software project from one forge to another using the following internal file formats provided by GitHub, GitLab and Gitea.
Convert to… | GitHub | Gitea | GitLab |
---|---|---|---|
GitHub | GitHub | Gitea | Gitlab |
Gitea | Gitea | GitLab | |
GitLab | Gitea | GitLab |
The Gitea inernal format will be documented (JSON schema) and maintained so that it can be used as a pivot format outside of Gitea.
The code to dump and restore software project data in the current internal formats (GitHub, Gitea or GitLab) is neither incremental nor idempotent.
The Gitea code to dump and restore software project data will be modified to be idempotent so that it can:
- be resumed when an import is interrupted
- be used for mirroring
Relaying modifications from a mirror
The mirror of a project is readonly. If a user tries to modify a mirror, for instance by adding an issue, a merge request or a pull request, it will be transparently forwarded to the forge from which the project originates.