Skip to content

Conversation

@FluxCapacitor2
Copy link
Collaborator

This PR moves all GitHub-specific backend logic that's worth sharing with other providers (i.e. nothing extremely GitHub specific, like the GitHub App installation process) into backend/src/lib/git/githubGitProvider.ts.

GitHubGitProvider implements a generic interface named GitProvider that can be implemented multiple times for other providers like GitLab, BitBucket, etc.

I've also removed most mentions of GitHub from the field names in our OpenAPI spec and on the frontend. Instead of exposing the GitHub installation ID or a githubConnected boolean field, we now have a field called gitProvider that can currently only be "github" or null.

The frontend still has some GitHub-specific things, like branch and commit URLs and the GitHub App installation flow.

Testing checklist:

  • Creating an app from a GitHub repo
  • Switching the deployment source of an app to a different GitHub repo
  • Importing a repo
    • ...from a template
    • ...from a private repo that the installation has access to
    • ...from a public repo on the same Git server
    • ...from a publish repo on a different Git server
  • CI/CD
    • Creating/updating checks when commits are pushed & builds complete
    • Creating/updating checks when a workflow run completes
  • Connecting an organization to GitHub

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants