Bonjour,
Now that switching to Go is decided, work started to re-implement whatever was done with the python fedeproxy codebase in the new Go fedeproxy codebase. This topic is a kind of checklist to track what has been done. It’s not a roadmap, although I’d be happy to make one if anyone is willing to jump on board to do some work. Right now I just have a very good feeling about the direction in which this is heading and I’m feeling more confident every day. As the code walkthrough accumulate it confirms the intuition that more time is going to be spent understanding and reusing the relevant parts of the Gitea codebase rather than writing code from scratch. Chasing the Gitea main branch on a weekly basis was no trouble at all so far … but it gets trickier as time passes and the worst is to come, i.e. trouble when a change in Gitea conflicts with a change in fedeproxy.
The following checklist is limited to what was implemented in python already
- fedeproxy specific code was written
- code sharable with Gitea was written
- code needs to be written
- code was already in the Gitea codebase
- go-fed ActivityPub implementation added as a dependency (1, 2)
- ActivityPub endpoint for Person (1, 2) & Repository
- getting issues from GitLab & Gitea via an API
- abstraction layer to interact with the API of GitLab & GitHub & Gitea
- creating a repository to store a file representation of issues
- storing a file representation of issues from a given project
- idempotent upload of issues from the file representation
- listening to hooks from Gitea & GitLab to keep the file representation of issues up to date
- file format to store issues
I’ll update this checklist as work progresses
Cheers