fix: resolve rebase feature flag conflicts

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
RossTarrant
2026-05-21 09:23:56 +01:00
parent 4c926eacd9
commit bfa6fee63b
6 changed files with 33 additions and 38 deletions
+4 -4
View File
@@ -348,10 +348,10 @@ Options are:
}
// attachIFC adds the IFC label to a successful tool result when
// InsidersMode is enabled. If the visibility lookup fails the
// IFC labels are enabled. If the visibility lookup fails the
// label is omitted rather than misclassifying the result.
attachIFC := func(r *mcp.CallToolResult) *mcp.CallToolResult {
if r == nil || r.IsError || !deps.GetFlags(ctx).InsidersMode {
if r == nil || r.IsError || !deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
return r
}
isPrivate, err := FetchRepoIsPrivate(ctx, client, owner, repo)
@@ -1044,7 +1044,7 @@ func SearchIssues(t translations.TranslationHelperFunc) inventory.ServerTool {
[]scopes.Scope{scopes.Repo},
func(ctx context.Context, deps ToolDependencies, _ *mcp.CallToolRequest, args map[string]any) (*mcp.CallToolResult, any, error) {
var options []searchOption
if deps.GetFlags(ctx).InsidersMode {
if deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
options = append(options, withSearchPostProcess(searchIssuesIFCPostProcess(deps)))
}
result, err := searchIssuesHandler(ctx, deps, args, options...)
@@ -1900,7 +1900,7 @@ func ListIssues(t translations.TranslationHelperFunc) inventory.ServerTool {
}
result := MarshalledTextResult(resp)
if deps.GetFlags(ctx).InsidersMode {
if deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
if result.Meta == nil {
result.Meta = mcp.Meta{}
}
+16 -19
View File
@@ -325,7 +325,6 @@ func Test_IssueRead_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode disabled omits ifc label", func(t *testing.T) {
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(false, 0)),
Flags: FeatureFlags{InsidersMode: false},
}
handler := serverTool.Handler(deps)
@@ -339,8 +338,8 @@ func Test_IssueRead_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode enabled on public repo emits public untrusted", func(t *testing.T) {
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(false, 0)),
Flags: FeatureFlags{InsidersMode: true},
Client: mustNewGHClient(t, makeMockClient(false, 0)),
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -357,8 +356,8 @@ func Test_IssueRead_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode enabled on private repo with get_comments emits private untrusted", func(t *testing.T) {
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(true, 0)),
Flags: FeatureFlags{InsidersMode: true},
Client: mustNewGHClient(t, makeMockClient(true, 0)),
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -375,8 +374,8 @@ func Test_IssueRead_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode skips ifc label when visibility lookup fails", func(t *testing.T) {
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(false, http.StatusInternalServerError)),
Flags: FeatureFlags{InsidersMode: true},
Client: mustNewGHClient(t, makeMockClient(false, http.StatusInternalServerError)),
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -910,7 +909,6 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
searchResult := &github.IssuesSearchResult{Issues: []*github.Issue{makeIssue("octocat", "public-repo", 1)}}
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(searchResult, []repoFixture{{owner: "octocat", repo: "public-repo"}})),
Flags: FeatureFlags{InsidersMode: false},
}
handler := serverTool.Handler(deps)
@@ -924,8 +922,8 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode all public emits public untrusted", func(t *testing.T) {
searchResult := &github.IssuesSearchResult{Issues: []*github.Issue{makeIssue("octocat", "public-repo", 1)}}
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(searchResult, []repoFixture{{owner: "octocat", repo: "public-repo"}})),
Flags: FeatureFlags{InsidersMode: true},
Client: mustNewGHClient(t, makeMockClient(searchResult, []repoFixture{{owner: "octocat", repo: "public-repo"}})),
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -950,7 +948,7 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
{owner: "octocat", repo: "private-repo", isPrivate: true},
{owner: "octocat", repo: "public-repo"},
})),
Flags: FeatureFlags{InsidersMode: true},
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -971,7 +969,7 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
Client: mustNewGHClient(t, makeMockClient(searchResult, []repoFixture{
{owner: "octocat", repo: "broken", repoStatus: http.StatusInternalServerError},
})),
Flags: FeatureFlags{InsidersMode: true},
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -989,8 +987,8 @@ func Test_SearchIssues_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode empty results emits public untrusted", func(t *testing.T) {
searchResult := &github.IssuesSearchResult{Issues: []*github.Issue{}}
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(searchResult, nil)),
Flags: FeatureFlags{InsidersMode: true},
Client: mustNewGHClient(t, makeMockClient(searchResult, nil)),
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -1876,7 +1874,6 @@ func Test_ListIssues_IFC_InsidersMode(t *testing.T) {
gqlClient := githubv4.NewClient(githubv4mock.NewMockedHTTPClient(matcher))
deps := BaseDeps{
GQLClient: gqlClient,
Flags: FeatureFlags{InsidersMode: false},
}
handler := serverTool.Handler(deps)
@@ -1892,8 +1889,8 @@ func Test_ListIssues_IFC_InsidersMode(t *testing.T) {
matcher := githubv4mock.NewQueryMatcher(query, vars, makeResponse(false))
gqlClient := githubv4.NewClient(githubv4mock.NewMockedHTTPClient(matcher))
deps := BaseDeps{
GQLClient: gqlClient,
Flags: FeatureFlags{InsidersMode: true},
GQLClient: gqlClient,
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -1919,8 +1916,8 @@ func Test_ListIssues_IFC_InsidersMode(t *testing.T) {
matcher := githubv4mock.NewQueryMatcher(query, vars, makeResponse(true))
gqlClient := githubv4.NewClient(githubv4mock.NewMockedHTTPClient(matcher))
deps := BaseDeps{
GQLClient: gqlClient,
Flags: FeatureFlags{InsidersMode: true},
GQLClient: gqlClient,
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
+2 -2
View File
@@ -741,7 +741,7 @@ func GetFileContents(t translations.TranslationHelperFunc) inventory.ServerTool
}
// attachIFC adds the IFC label to a successful tool result when
// InsidersMode is enabled. The visibility lookup is performed
// IFC labels are enabled. The visibility lookup is performed
// lazily on first use and cached because GetFileContents has
// many possible return paths and would otherwise re-fetch on
// each. If the visibility lookup fails we skip the label rather
@@ -752,7 +752,7 @@ func GetFileContents(t translations.TranslationHelperFunc) inventory.ServerTool
ifcIsPrivate bool
)
attachIFC := func(r *mcp.CallToolResult) *mcp.CallToolResult {
if r == nil || r.IsError || !deps.GetFlags(ctx).InsidersMode {
if r == nil || r.IsError || !deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
return r
}
if !ifcLabelKnown {
+6 -7
View File
@@ -521,7 +521,6 @@ func Test_GetFileContents_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode disabled omits ifc label from result meta", func(t *testing.T) {
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(false)),
Flags: FeatureFlags{InsidersMode: false},
}
handler := serverTool.Handler(deps)
@@ -535,8 +534,8 @@ func Test_GetFileContents_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode enabled on public repo emits public untrusted label", func(t *testing.T) {
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(false)),
Flags: FeatureFlags{InsidersMode: true},
Client: mustNewGHClient(t, makeMockClient(false)),
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -560,8 +559,8 @@ func Test_GetFileContents_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode enabled on private repo emits private trusted label", func(t *testing.T) {
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(true)),
Flags: FeatureFlags{InsidersMode: true},
Client: mustNewGHClient(t, makeMockClient(true)),
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -604,8 +603,8 @@ func Test_GetFileContents_IFC_InsidersMode(t *testing.T) {
},
})
deps := BaseDeps{
Client: mustNewGHClient(t, mockedClient),
Flags: FeatureFlags{InsidersMode: true},
Client: mustNewGHClient(t, mockedClient),
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
+1 -1
View File
@@ -163,7 +163,7 @@ func SearchRepositories(t translations.TranslationHelperFunc) inventory.ServerTo
}
callResult := utils.NewToolResultText(string(r))
if deps.GetFlags(ctx).InsidersMode {
if deps.IsFeatureEnabled(ctx, FeatureFlagIFCLabels) {
attachSearchRepositoriesIFCLabel(result.Repositories, callResult)
}
return callResult, nil, nil
+4 -5
View File
@@ -207,7 +207,6 @@ func Test_SearchRepositories_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode disabled omits ifc label", func(t *testing.T) {
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient([]repoFixture{{owner: "octocat", name: "public-repo"}})),
Flags: FeatureFlags{InsidersMode: false},
}
handler := serverTool.Handler(deps)
@@ -224,7 +223,7 @@ func Test_SearchRepositories_IFC_InsidersMode(t *testing.T) {
{owner: "octocat", name: "public-a"},
{owner: "octocat", name: "public-b"},
})),
Flags: FeatureFlags{InsidersMode: true},
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -245,7 +244,7 @@ func Test_SearchRepositories_IFC_InsidersMode(t *testing.T) {
{owner: "octocat", name: "private-repo", isPrivate: true},
{owner: "octocat", name: "public-repo"},
})),
Flags: FeatureFlags{InsidersMode: true},
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)
@@ -262,8 +261,8 @@ func Test_SearchRepositories_IFC_InsidersMode(t *testing.T) {
t.Run("insiders mode empty results emits public untrusted", func(t *testing.T) {
deps := BaseDeps{
Client: mustNewGHClient(t, makeMockClient(nil)),
Flags: FeatureFlags{InsidersMode: true},
Client: mustNewGHClient(t, makeMockClient(nil)),
featureChecker: featureCheckerFor(FeatureFlagIFCLabels),
}
handler := serverTool.Handler(deps)