Testing code that relies on the GitHub API is difficult because it keeps changing, has rate limit and fails in ways that are sometime creative (timeouts, undocumented results that vary over time etc.). This is from my past experience try to implement github2gitlab.
Looking at how pull requests are created, the Gitea API is mostly compatible with the GitHub API:
It may have been a deliberate choice made years ago but as of 2021 it is not 100%. However, this may be taken advantage of by implementing a common base for both. The common logic can be tested against Gitea which is stable. And the more difficult to test GitHub part can be reduced significantly.
That is unless the overlap is decreasing instead of increasing. I’m not sure how to figure that out.