Skip to content

Instantly share code, notes, and snippets.

@tkdchen
Created May 25, 2023 03:44
Show Gist options
  • Save tkdchen/b9dbc7cee2ea4be61781c0d7cf614fa1 to your computer and use it in GitHub Desktop.
Save tkdchen/b9dbc7cee2ea4be61781c0d7cf614fa1 to your computer and use it in GitHub Desktop.
type GitClient interface {
GetWebhookByTargetUrl
}
type GitHubClient struct {} // implements interface GitClient
type GitLabClient struct {} // implements interface GitClient
type GitProvder interface {
CreateMergeRequest() error
DeleteMergeRequest() error
SetupPaCWebHook() error
DeletePaCWebHook() error
}
type GitServiceProvider struct {
client *GitClient
RepoUrl string
}
func (g GitProvider) GetNamespacedRepo() string {
return ""
}
type GitHubProvider struct {
GitServiceProvider
} // implements interface GitProvider
type GitLabProvider struct {
GitServiceProvider
} // implements interface GitProvider
func GitProviderFactory() (repoUrl string, *GitProvider, error) {
return GitHubProvider{}, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment