fix: guard trail finding remotes · Entire

fix: guard trail finding remotes

cb3110b→main·

dipree·1mo ago·2 files·+24 added/-3 removed

Sessions

9f874b20290cView transcript

Changes

2

17 unmodified lines

18
19
20
21
21
22
23
408 unmodified lines

432
433
434
436
435
436
438
437
438
439
440

17 unmodified lines

"text/tabwriter"

"github.com/entireio/cli/cmd/entire/cli/api"
    "github.com/entireio/cli/cmd/entire/cli/gitremote"
    "github.com/entireio/cli/cmd/entire/cli/paths"

"github.com/spf13/cobra"
408 unmodified lines

}

func resolveTrailReviewTarget(ctx context.Context, client *api.Client, selector string) (trailReviewTarget, error) {
    host, owner, repo, err := gitremote.ResolveRemoteRepo(ctx, "origin")
host, owner, repo, err := resolveTrailRemote(ctx)
    if err != nil {
        return trailReviewTarget{}, fmt.Errorf("failed to resolve repository: %w", err)
        return trailReviewTarget{}, err
    }

selector = strings.TrimSpace(selector)

Mcmd/entire/cli/trail_review_cmd.go+2/-3

13 unmodified lines

14
15
16
17
18
19
20
45 unmodified lines

66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92

13 unmodified lines

"github.com/entireio/cli/cmd/entire/cli/api"
    "github.com/entireio/cli/cmd/entire/cli/paths"
    "github.com/entireio/cli/cmd/entire/cli/testutil"

"github.com/spf13/cobra"
)
45 unmodified lines

}
}

// Not parallel: uses t.Chdir() to point remote resolution at a fake repo.
func TestResolveTrailReviewTargetRejectsUnsupportedForge(t *testing.T) {
    repoDir := t.TempDir()
    testutil.InitRepo(t, repoDir)
    cmd := exec.CommandContext(context.Background(), "git", "remote", "add", "origin", "git@gitlab.com:acme/my-app.git")
    cmd.Dir = repoDir
    cmd.Env = testutil.GitIsolatedEnv()
    if err := cmd.Run(); err != nil {
        t.Fatalf("git remote add: %v", err)
    }
    t.Chdir(repoDir)

_, err := resolveTrailReviewTarget(context.Background(), api.NewClient("tok"), "")
    if err == nil {
        t.Fatal("expected error for gitlab.com origin, got nil")
    }
    if !strings.Contains(err.Error(), "not on a forge supported by Entire trails") {
        t.Fatalf("error message does not mention unsupported forge: %v", err)
    }
}

func TestTrailReviewCommentsPath(t *testing.T) {
    t.Parallel()
    got := trailReviewCommentsPath("trail id/with slash", trailReviewListOptions{