This would be helpful as there are many git servers (public, company, self hosted, internal), and people may want to have repos mirrored in certain ways depending on the source and target servers.
This would allow greater flexibility of how repos are mirrored, which is goof for people not just wanting github->gitea mirroring.
It would be helpful if you could configure multiple git servers, and the mirroring action of each.
So something like this:
| Source | Target | Source Instance | Target Instance | Mirror Type |
|--------|--------|------------------------------------|------------------------------------|-----------------------|
| Github | Gitea | https://github.com | https://my-gitea-instance.internal | => (Source to Target) |
| Github | Gitlab | https://github.com | https://gitlab.com | <=> (Two Way Mirror) |
| Gitea | Gitea | https://my-gitea-instance.internal | https://localhost:3000 | => (Source to Target) |
| Gitlab | Gitea | https:gitlab.com | https://localhost:3000 | => (Source to Target) |
This would be helpful as there are many git servers (public, company, self hosted, internal), and people may want to have repos mirrored in certain ways depending on the source and target servers.
This would also solve issues:
#16
#26
#34 .
This would allow greater flexibility of how repos are mirrored, which is goof for people not just wanting github->gitea mirroring.
<!-- github-sync-id:3551269938 -->
Hi @micah686 I understand this requirement but this would required a significant amount of time building and testing each of them and since this is a free and open source project with no sponsorship I am currently blocked for next few months. I am happy to add community tested PR's on this. And I can also help out reviewing and testing things on the weekends.
And personally I built this cause I just wanted a backup of my GitHub repos so adding these features don't really serve any personal reason. Hence I think a community PR on these issues would be the right call. I can help with reviewing and testing them on my free weekends.
Hi @micah686 I understand this requirement but this would required a significant amount of time building and testing each of them and since this is a free and open source project with no sponsorship I am currently blocked for next few months. I am happy to add community tested PR's on this. And I can also help out reviewing and testing things on the weekends.
And personally I built this cause I just wanted a backup of my GitHub repos so adding these features don't really serve any personal reason. Hence I think a community PR on these issues would be the right call. I can help with reviewing and testing them on my free weekends.
<!-- github-comment-id:3445439536 -->
Yeah, I understand your position. I just thought this would be a good feature to work toward (long term wise).
I had written a simple C# console app to do something similar to what you did, but your solution is a lot more in depth than mine ever was.
If I could help out, I would, but I don't know typescript well enough.
I just noticed there were other issues asking for mirroring from/to different git servers, and I figured it would be better to slowly work on a solution that's expandable for mirroring to/from different git servers.
The project looks really nice so far, and I'm interested to see how it improves.
Yeah, I understand your position. I just thought this would be a good feature to work toward (long term wise).
I had written a simple C# console app to do something similar to what you did, but your solution is a lot more in depth than mine ever was.
If I could help out, I would, but I don't know typescript well enough.
I just noticed there were other issues asking for mirroring from/to different git servers, and I figured it would be better to slowly work on a solution that's expandable for mirroring to/from different git servers.
The project looks really nice so far, and I'm interested to see how it improves.
<!-- github-comment-id:3445457063 -->
@micah686 Yea I think long term wise I def see that this can be a good roadmap and overtime with enough interest from community and using my weekends maybe we will get there with all these options sometime next year.
@micah686 Yea I think long term wise I def see that this can be a good roadmap and overtime with enough interest from community and using my weekends maybe we will get there with all these options sometime next year.
<!-- github-comment-id:3445561768 -->
Making this the umbrella issue for the multi source, multi destination work.
Where things stand:
Sources: the next release (PR #376) adds GitLab (beta), Gitea and Forgejo as sources, one source per gitea-mirror account for now.
Destinations: Gitea and Forgejo. Pushing to GitHub or GitLab needs a push engine, which is scoped in #377.
The scaffolding from #368 lives on the feature/matrix branch. Matrix PRs should target that branch.
Mirroring stays one way. Two way sync will not be supported, this is a backup tool at its core and bidirectional sync has too many edge cases.
Folding #26, #34 and #221 into this issue so the discussion is in one place.
Making this the umbrella issue for the multi source, multi destination work.
Where things stand:
- Sources: the next release (PR #376) adds GitLab (beta), Gitea and Forgejo as sources, one source per gitea-mirror account for now.
- Destinations: Gitea and Forgejo. Pushing to GitHub or GitLab needs a push engine, which is scoped in #377.
- The scaffolding from #368 lives on the feature/matrix branch. Matrix PRs should target that branch.
- Mirroring stays one way. Two way sync will not be supported, this is a backup tool at its core and bidirectional sync has too many edge cases.
Folding #26, #34 and #221 into this issue so the discussion is in one place.
<!-- github-comment-id:5506860833 -->
One way mirroring from several kinds of sources shipped in v3.30.0: GitHub, GitLab (beta), Gitea and Forgejo as sources, Gitea or Forgejo as the destination.
Pushing to GitHub or GitLab as a destination is tracked in #377, and that is the only piece of the matrix still open. The scaffolding from #368 stays on the feature/matrix branch for it.
Two way mirroring will not be supported. It brings too many edge cases and unknowns for a tool whose job is to be a reliable backup, so the mirror stays one way.
Thanks for the write up and for the groundwork in #368.
Closing this. Where it ended up:
- One way mirroring from several kinds of sources shipped in v3.30.0: GitHub, GitLab (beta), Gitea and Forgejo as sources, Gitea or Forgejo as the destination.
- Pushing to GitHub or GitLab as a destination is tracked in #377, and that is the only piece of the matrix still open. The scaffolding from #368 stays on the feature/matrix branch for it.
- Two way mirroring will not be supported. It brings too many edge cases and unknowns for a tool whose job is to be a reliable backup, so the mirror stays one way.
Thanks for the write up and for the groundwork in #368.
<!-- github-comment-id:5507861397 -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
It would be helpful if you could configure multiple git servers, and the mirroring action of each.
So something like this:
This would be helpful as there are many git servers (public, company, self hosted, internal), and people may want to have repos mirrored in certain ways depending on the source and target servers.
This would also solve issues:
#16
#26
#34 .
This would allow greater flexibility of how repos are mirrored, which is goof for people not just wanting github->gitea mirroring.
Hi @micah686 I understand this requirement but this would required a significant amount of time building and testing each of them and since this is a free and open source project with no sponsorship I am currently blocked for next few months. I am happy to add community tested PR's on this. And I can also help out reviewing and testing things on the weekends.
And personally I built this cause I just wanted a backup of my GitHub repos so adding these features don't really serve any personal reason. Hence I think a community PR on these issues would be the right call. I can help with reviewing and testing them on my free weekends.
Yeah, I understand your position. I just thought this would be a good feature to work toward (long term wise).
I had written a simple C# console app to do something similar to what you did, but your solution is a lot more in depth than mine ever was.
If I could help out, I would, but I don't know typescript well enough.
I just noticed there were other issues asking for mirroring from/to different git servers, and I figured it would be better to slowly work on a solution that's expandable for mirroring to/from different git servers.
The project looks really nice so far, and I'm interested to see how it improves.
@micah686 Yea I think long term wise I def see that this can be a good roadmap and overtime with enough interest from community and using my weekends maybe we will get there with all these options sometime next year.
Making this the umbrella issue for the multi source, multi destination work.
Where things stand:
Folding #26, #34 and #221 into this issue so the discussion is in one place.
Closing this. Where it ended up:
Thanks for the write up and for the groundwork in #368.
@micah686 Please try out the new matrix feature and thnaks for your contribution