fix: resolve rebase feature flag conflicts
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -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
@@ -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)
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user