summaryrefslogtreecommitdiff
path: root/internal/cli/forge_client.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-28 10:02:03 +0300
committerPaul Buetow <paul@buetow.org>2026-05-28 10:02:03 +0300
commitdcf90064e3671d4eccc5f0f59182a4afe23c95f9 (patch)
treeb2d866e647e036962a0f000d6aea8517097a234e /internal/cli/forge_client.go
parent1325155d123d9403ea964152b125efd960522603 (diff)
refactor(forge): unify repo lifecycle across GitHub and Codeberg (dq)
Diffstat (limited to 'internal/cli/forge_client.go')
-rw-r--r--internal/cli/forge_client.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/internal/cli/forge_client.go b/internal/cli/forge_client.go
new file mode 100644
index 0000000..4d8eb60
--- /dev/null
+++ b/internal/cli/forge_client.go
@@ -0,0 +1,21 @@
+package cli
+
+import (
+ "codeberg.org/snonux/gitsyncer/internal/codeberg"
+ "codeberg.org/snonux/gitsyncer/internal/config"
+ "codeberg.org/snonux/gitsyncer/internal/forge"
+ "codeberg.org/snonux/gitsyncer/internal/github"
+)
+
+func newRepoClientForOrg(org config.Organization) (forge.RepoClient, bool) {
+ switch {
+ case org.IsGitHub():
+ client := github.NewClient(org.GitHubToken, org.Name)
+ return &client, true
+ case org.IsCodeberg():
+ client := codeberg.NewClient(org.Name, org.CodebergToken)
+ return &client, true
+ default:
+ return nil, false
+ }
+}