Skip to content

Commit 7498be2

Browse files
authored
fix: warn users of overlapping repositories with orgs/users/etc. (#511)
1 parent 5841986 commit 7498be2

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

cmd/platform.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cmd
33
import (
44
"context"
55
"fmt"
6+
"slices"
67
"strings"
78

89
"github.com/lindell/multi-gitter/internal/http"
@@ -13,6 +14,7 @@ import (
1314
"github.com/lindell/multi-gitter/internal/scm/github"
1415
"github.com/lindell/multi-gitter/internal/scm/gitlab"
1516
"github.com/pkg/errors"
17+
log "github.com/sirupsen/logrus"
1618
"github.com/spf13/cobra"
1719
flag "github.com/spf13/pflag"
1820
)
@@ -163,6 +165,12 @@ func createGithubClient(flag *flag.FlagSet, verifyFlags bool, readOnly bool) (mu
163165
if err != nil {
164166
return nil, err
165167
}
168+
if slices.Contains(orgs, repoRefs[i].OwnerName) {
169+
log.Warnf("Repository %s and organization %s are both set. This is likely a mistake", repoRefs[i].String(), repoRefs[i].OwnerName)
170+
}
171+
if slices.Contains(users, repoRefs[i].OwnerName) {
172+
log.Warnf("Repository %s and user %s are both set. This is likely a mistake", repoRefs[i].String(), repoRefs[i].OwnerName)
173+
}
166174
}
167175

168176
mergeTypes, err := getMergeTypes(flag)
@@ -222,6 +230,12 @@ func createGitlabClient(flag *flag.FlagSet, verifyFlags bool) (multigitter.Versi
222230
if err != nil {
223231
return nil, err
224232
}
233+
if slices.Contains(groups, projRefs[i].OwnerName) {
234+
log.Warnf("Repository %s and group %s are both set. This is likely a mistake", projRefs[i].String(), projRefs[i].OwnerName)
235+
}
236+
if slices.Contains(users, projRefs[i].OwnerName) {
237+
log.Warnf("Repository %s and user %s are both set. This is likely a mistake", projRefs[i].String(), projRefs[i].OwnerName)
238+
}
225239
}
226240

227241
vc, err := gitlab.New(token, gitBaseURL, gitlab.RepositoryListing{
@@ -269,6 +283,12 @@ func createGiteaClient(flag *flag.FlagSet, verifyFlags bool) (multigitter.Versio
269283
if err != nil {
270284
return nil, err
271285
}
286+
if slices.Contains(orgs, repoRefs[i].OwnerName) {
287+
log.Warnf("Repository %s and organization %s are both set. This is likely a mistake", repoRefs[i].String(), repoRefs[i].OwnerName)
288+
}
289+
if slices.Contains(users, repoRefs[i].OwnerName) {
290+
log.Warnf("Repository %s and user %s are both set. This is likely a mistake", repoRefs[i].String(), repoRefs[i].OwnerName)
291+
}
272292
}
273293

274294
mergeTypes, err := getMergeTypes(flag)

internal/scm/gitea/gitea.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ type RepositoryReference struct {
7979
Name string
8080
}
8181

82+
func (r RepositoryReference) String() string {
83+
return fmt.Sprintf("%s/%s", r.OwnerName, r.Name)
84+
}
85+
8286
// ParseRepositoryReference parses a repository reference from the format "ownerName/repoName"
8387
func ParseRepositoryReference(val string) (RepositoryReference, error) {
8488
split := strings.Split(val, "/")

internal/scm/gitlab/gitlab.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ type ProjectReference struct {
7171
Name string
7272
}
7373

74+
func (p ProjectReference) String() string {
75+
return fmt.Sprintf("%s/%s", p.OwnerName, p.Name)
76+
}
77+
7478
// ParseProjectReference parses a repository reference from the format "ownerName/repoName"
7579
func ParseProjectReference(val string) (ProjectReference, error) {
7680
lastSlashIndex := strings.LastIndex(val, "/")

0 commit comments

Comments
 (0)