Skip to content

Commit bfa6fee

Browse files
RossTarrantCopilot
andcommitted
fix: resolve rebase feature flag conflicts
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 4c926ea commit bfa6fee

6 files changed

Lines changed: 33 additions & 38 deletions

File tree

pkg/github/issues.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -348,10 +348,10 @@ Options are:
348348
}
349349

350350
// attachIFC adds the IFC label to a successful tool result when
351-
// InsidersMode is enabled. If the visibility lookup fails the
351+
// IFC labels are enabled. If the visibility lookup fails the
352352
// label is omitted rather than misclassifying the result.
353353
attachIFC := func(r *mcp.CallToolResult) *mcp.CallToolResult {
354-
if r == nil || r.IsError || !deps.GetFlags(ctx).InsidersMode {
354+
if r == nil || r.IsError || !deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
355355
return r
356356
}
357357
isPrivate, err := FetchRepoIsPrivate(ctx, client, owner, repo)
@@ -1044,7 +1044,7 @@ func SearchIssues(t translations.TranslationHelperFunc) inventory.ServerTool {
10441044
[]scopes.Scope{scopes.Repo},
10451045
func(ctx context.Context, deps ToolDependencies, _ *mcp.CallToolRequest, args map[string]any) (*mcp.CallToolResult, any, error) {
10461046
var options []searchOption
1047-
if deps.GetFlags(ctx).InsidersMode {
1047+
if deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
10481048
options = append(options, withSearchPostProcess(searchIssuesIFCPostProcess(deps)))
10491049
}
10501050
result, err := searchIssuesHandler(ctx, deps, args, options...)
@@ -1900,7 +1900,7 @@ func ListIssues(t translations.TranslationHelperFunc) inventory.ServerTool {
19001900
}
19011901

19021902
result := MarshalledTextResult(resp)
1903-
if deps.GetFlags(ctx).InsidersMode {
1903+
if deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
19041904
if result.Meta == nil {
19051905
result.Meta = mcp.Meta{}
19061906
}

pkg/github/issues_test.go

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,6 @@ func Test_IssueRead_IFC_InsidersMode(t *testing.T) {
325325
t.Run("insiders mode disabled omits ifc label", func(t *testing.T) {
326326
deps := BaseDeps{
327327
Client: mustNewGHClient(t, makeMockClient(false, 0)),
328-
Flags: FeatureFlags{InsidersMode: false},
329328
}
330329
handler := serverTool.Handler(deps)
331330

@@ -339,8 +338,8 @@ func Test_IssueRead_IFC_InsidersMode(t *testing.T) {
339338

340339
t.Run("insiders mode enabled on public repo emits public untrusted", func(t *testing.T) {
341340
deps := BaseDeps{
342-
Client: mustNewGHClient(t, makeMockClient(false, 0)),
343-
Flags: FeatureFlags{InsidersMode: true},
341+
Client: mustNewGHClient(t, makeMockClient(false, 0)),
342+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
344343
}
345344
handler := serverTool.Handler(deps)
346345

@@ -357,8 +356,8 @@ func Test_IssueRead_IFC_InsidersMode(t *testing.T) {
357356

358357
t.Run("insiders mode enabled on private repo with get_comments emits private untrusted", func(t *testing.T) {
359358
deps := BaseDeps{
360-
Client: mustNewGHClient(t, makeMockClient(true, 0)),
361-
Flags: FeatureFlags{InsidersMode: true},
359+
Client: mustNewGHClient(t, makeMockClient(true, 0)),
360+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
362361
}
363362
handler := serverTool.Handler(deps)
364363

@@ -375,8 +374,8 @@ func Test_IssueRead_IFC_InsidersMode(t *testing.T) {
375374

376375
t.Run("insiders mode skips ifc label when visibility lookup fails", func(t *testing.T) {
377376
deps := BaseDeps{
378-
Client: mustNewGHClient(t, makeMockClient(false, http.StatusInternalServerError)),
379-
Flags: FeatureFlags{InsidersMode: true},
377+
Client: mustNewGHClient(t, makeMockClient(false, http.StatusInternalServerError)),
378+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
380379
}
381380
handler := serverTool.Handler(deps)
382381

@@ -910,7 +909,6 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
910909
searchResult := &github.IssuesSearchResult{Issues: []*github.Issue{makeIssue("octocat", "public-repo", 1)}}
911910
deps := BaseDeps{
912911
Client: mustNewGHClient(t, makeMockClient(searchResult, []repoFixture{{owner: "octocat", repo: "public-repo"}})),
913-
Flags: FeatureFlags{InsidersMode: false},
914912
}
915913
handler := serverTool.Handler(deps)
916914

@@ -924,8 +922,8 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
924922
t.Run("insiders mode all public emits public untrusted", func(t *testing.T) {
925923
searchResult := &github.IssuesSearchResult{Issues: []*github.Issue{makeIssue("octocat", "public-repo", 1)}}
926924
deps := BaseDeps{
927-
Client: mustNewGHClient(t, makeMockClient(searchResult, []repoFixture{{owner: "octocat", repo: "public-repo"}})),
928-
Flags: FeatureFlags{InsidersMode: true},
925+
Client: mustNewGHClient(t, makeMockClient(searchResult, []repoFixture{{owner: "octocat", repo: "public-repo"}})),
926+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
929927
}
930928
handler := serverTool.Handler(deps)
931929

@@ -950,7 +948,7 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
950948
{owner: "octocat", repo: "private-repo", isPrivate: true},
951949
{owner: "octocat", repo: "public-repo"},
952950
})),
953-
Flags: FeatureFlags{InsidersMode: true},
951+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
954952
}
955953
handler := serverTool.Handler(deps)
956954

@@ -971,7 +969,7 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
971969
Client: mustNewGHClient(t, makeMockClient(searchResult, []repoFixture{
972970
{owner: "octocat", repo: "broken", repoStatus: http.StatusInternalServerError},
973971
})),
974-
Flags: FeatureFlags{InsidersMode: true},
972+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
975973
}
976974
handler := serverTool.Handler(deps)
977975

@@ -989,8 +987,8 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
989987
t.Run("insiders mode empty results emits public untrusted", func(t *testing.T) {
990988
searchResult := &github.IssuesSearchResult{Issues: []*github.Issue{}}
991989
deps := BaseDeps{
992-
Client: mustNewGHClient(t, makeMockClient(searchResult, nil)),
993-
Flags: FeatureFlags{InsidersMode: true},
990+
Client: mustNewGHClient(t, makeMockClient(searchResult, nil)),
991+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
994992
}
995993
handler := serverTool.Handler(deps)
996994

@@ -1876,7 +1874,6 @@ func Test_ListIssues_IFC_InsidersMode(t *testing.T) {
18761874
gqlClient := githubv4.NewClient(githubv4mock.NewMockedHTTPClient(matcher))
18771875
deps := BaseDeps{
18781876
GQLClient: gqlClient,
1879-
Flags: FeatureFlags{InsidersMode: false},
18801877
}
18811878
handler := serverTool.Handler(deps)
18821879

@@ -1892,8 +1889,8 @@ func Test_ListIssues_IFC_InsidersMode(t *testing.T) {
18921889
matcher := githubv4mock.NewQueryMatcher(query, vars, makeResponse(false))
18931890
gqlClient := githubv4.NewClient(githubv4mock.NewMockedHTTPClient(matcher))
18941891
deps := BaseDeps{
1895-
GQLClient: gqlClient,
1896-
Flags: FeatureFlags{InsidersMode: true},
1892+
GQLClient: gqlClient,
1893+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
18971894
}
18981895
handler := serverTool.Handler(deps)
18991896

@@ -1919,8 +1916,8 @@ func Test_ListIssues_IFC_InsidersMode(t *testing.T) {
19191916
matcher := githubv4mock.NewQueryMatcher(query, vars, makeResponse(true))
19201917
gqlClient := githubv4.NewClient(githubv4mock.NewMockedHTTPClient(matcher))
19211918
deps := BaseDeps{
1922-
GQLClient: gqlClient,
1923-
Flags: FeatureFlags{InsidersMode: true},
1919+
GQLClient: gqlClient,
1920+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
19241921
}
19251922
handler := serverTool.Handler(deps)
19261923

pkg/github/repositories.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,7 @@ func GetFileContents(t translations.TranslationHelperFunc) inventory.ServerTool
741741
}
742742

743743
// attachIFC adds the IFC label to a successful tool result when
744-
// InsidersMode is enabled. The visibility lookup is performed
744+
// IFC labels are enabled. The visibility lookup is performed
745745
// lazily on first use and cached because GetFileContents has
746746
// many possible return paths and would otherwise re-fetch on
747747
// each. If the visibility lookup fails we skip the label rather
@@ -752,7 +752,7 @@ func GetFileContents(t translations.TranslationHelperFunc) inventory.ServerTool
752752
ifcIsPrivate bool
753753
)
754754
attachIFC := func(r *mcp.CallToolResult) *mcp.CallToolResult {
755-
if r == nil || r.IsError || !deps.GetFlags(ctx).InsidersMode {
755+
if r == nil || r.IsError || !deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
756756
return r
757757
}
758758
if !ifcLabelKnown {

pkg/github/repositories_test.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,6 @@ func Test_GetFileContents_IFC_InsidersMode(t *testing.T) {
521521
t.Run("insiders mode disabled omits ifc label from result meta", func(t *testing.T) {
522522
deps := BaseDeps{
523523
Client: mustNewGHClient(t, makeMockClient(false)),
524-
Flags: FeatureFlags{InsidersMode: false},
525524
}
526525
handler := serverTool.Handler(deps)
527526

@@ -535,8 +534,8 @@ func Test_GetFileContents_IFC_InsidersMode(t *testing.T) {
535534

536535
t.Run("insiders mode enabled on public repo emits public untrusted label", func(t *testing.T) {
537536
deps := BaseDeps{
538-
Client: mustNewGHClient(t, makeMockClient(false)),
539-
Flags: FeatureFlags{InsidersMode: true},
537+
Client: mustNewGHClient(t, makeMockClient(false)),
538+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
540539
}
541540
handler := serverTool.Handler(deps)
542541

@@ -560,8 +559,8 @@ func Test_GetFileContents_IFC_InsidersMode(t *testing.T) {
560559

561560
t.Run("insiders mode enabled on private repo emits private trusted label", func(t *testing.T) {
562561
deps := BaseDeps{
563-
Client: mustNewGHClient(t, makeMockClient(true)),
564-
Flags: FeatureFlags{InsidersMode: true},
562+
Client: mustNewGHClient(t, makeMockClient(true)),
563+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
565564
}
566565
handler := serverTool.Handler(deps)
567566

@@ -604,8 +603,8 @@ func Test_GetFileContents_IFC_InsidersMode(t *testing.T) {
604603
},
605604
})
606605
deps := BaseDeps{
607-
Client: mustNewGHClient(t, mockedClient),
608-
Flags: FeatureFlags{InsidersMode: true},
606+
Client: mustNewGHClient(t, mockedClient),
607+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
609608
}
610609
handler := serverTool.Handler(deps)
611610

pkg/github/search.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ func SearchRepositories(t translations.TranslationHelperFunc) inventory.ServerTo
163163
}
164164

165165
callResult := utils.NewToolResultText(string(r))
166-
if deps.GetFlags(ctx).InsidersMode {
166+
if deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
167167
attachSearchRepositoriesIFCLabel(result.Repositories, callResult)
168168
}
169169
return callResult, nil, nil

pkg/github/search_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,6 @@ func Test_SearchRepositories_IFC_InsidersMode(t *testing.T) {
207207
t.Run("insiders mode disabled omits ifc label", func(t *testing.T) {
208208
deps := BaseDeps{
209209
Client: mustNewGHClient(t, makeMockClient([]repoFixture{{owner: "octocat", name: "public-repo"}})),
210-
Flags: FeatureFlags{InsidersMode: false},
211210
}
212211
handler := serverTool.Handler(deps)
213212

@@ -224,7 +223,7 @@ func Test_SearchRepositories_IFC_InsidersMode(t *testing.T) {
224223
{owner: "octocat", name: "public-a"},
225224
{owner: "octocat", name: "public-b"},
226225
})),
227-
Flags: FeatureFlags{InsidersMode: true},
226+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
228227
}
229228
handler := serverTool.Handler(deps)
230229

@@ -245,7 +244,7 @@ func Test_SearchRepositories_IFC_InsidersMode(t *testing.T) {
245244
{owner: "octocat", name: "private-repo", isPrivate: true},
246245
{owner: "octocat", name: "public-repo"},
247246
})),
248-
Flags: FeatureFlags{InsidersMode: true},
247+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
249248
}
250249
handler := serverTool.Handler(deps)
251250

@@ -262,8 +261,8 @@ func Test_SearchRepositories_IFC_InsidersMode(t *testing.T) {
262261

263262
t.Run("insiders mode empty results emits public untrusted", func(t *testing.T) {
264263
deps := BaseDeps{
265-
Client: mustNewGHClient(t, makeMockClient(nil)),
266-
Flags: FeatureFlags{InsidersMode: true},
264+
Client: mustNewGHClient(t, makeMockClient(nil)),
265+
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
267266
}
268267
handler := serverTool.Handler(deps)
269268

0 commit comments

Comments
 (0)