Repository navigation
Conversation
Remove the IFC (information flow control) labels that tool results carried in _meta.ifc behind the ifc_labels feature flag, along with the code that only existed to compute them: the pkg/ifc package, the label helpers, the flag, the isPrivate/public GraphQL fields, the repository and project visibility lookups, and IFC-only tests. Removes exported Go API: package ifc, FetchRepoIsPrivate, FetchProjectIsPrivate, FeatureFlagIFCLabels and IssueQueryResult.GetIsPrivate.
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Removing _meta.ifc security labels and exported IFC APIs requires maintainer confirmation that external enforcement systems and downstream clients have migrated, which cannot be verified from this repository snapshot.
No open issues 🎉
What changed in this PR
Removes the GitHub MCP Server’s opt-in information flow control (IFC) labeling layer and the visibility requests used to support it. Tool schemas and default result payloads remain unchanged; IFC-enabled clients lose _meta.ifc, and related exported Go APIs are removed.
Changes:
- Deletes the IFC package, label helpers, and
ifc_labelsfeature flag. - Removes label attachment, IFC-only visibility lookups, GraphQL fields, and search hooks.
- Updates tests, fixtures, and the
get-mescript to reflect unlabeled results.
| File | Description |
|---|---|
script/get-me |
Prints profile JSON without the metadata wrapper. |
pkg/ifc/ifc.go |
Deletes security-label types and policies. |
pkg/ifc/ifc_test.go |
Deletes label-policy tests. |
pkg/http/server_test.go |
Removes the IFC feature-flag expectation. |
pkg/github/typed_security_outputs_test.go |
Removes IFC assertions and visibility fixtures. |
pkg/github/typed_search_outputs_test.go |
Removes search and repository label assertions. |
pkg/github/typed_repository_outputs_test.go |
Removes IFC protocol-parity assertions. |
pkg/github/typed_repository_commit_outputs_test.go |
Removes commit-label setup and assertions. |
pkg/github/typed_projects_outputs_test.go |
Updates GraphQL fixtures and removes IFC tests. |
pkg/github/typed_governance_outputs_test.go |
Removes label-metadata tests and visibility fixtures. |
pkg/github/typed_git_gist_outputs_test.go |
Removes IFC cases while retaining scope and lockdown checks. |
pkg/github/typed_discussion_notification_outputs_test.go |
Removes discussion and notification label assertions. |
pkg/github/typed_consolidated_pull_request_outputs_test.go |
Removes IFC setup from content-parity tests. |
pkg/github/typed_consolidated_issue_enrichment_test.go |
Retains structured-output checks without IFC assertions. |
pkg/github/typed_compatibility_test.go |
Deletes blame-label compatibility tests. |
pkg/github/typed_actions_outputs_test.go |
Retains annotation checks without IFC test dimensions. |
pkg/github/typed_account_repository_search_test.go |
Removes search-label setup and assertions. |
pkg/github/security_advisories.go |
Removes advisory labels and publication-state classification. |
pkg/github/security_advisories_test.go |
Deletes advisory-label tests. |
pkg/github/secret_scanning.go |
Removes alert labels and updates explanatory comments. |
pkg/github/search.go |
Removes labels from repository, code, account, and commit searches. |
pkg/github/search_utils.go |
Deletes the search metadata post-processing hook. |
pkg/github/search_test.go |
Deletes repository-search IFC tests. |
pkg/github/repositories.go |
Removes repository labels, visibility helper, and draft classification. |
pkg/github/repositories_test.go |
Deletes file, commit, and release label tests. |
pkg/github/pullrequests.go |
Removes read-result labels and search-label hooks. |
pkg/github/projects.go |
Removes visibility-only queries and simplifies helper returns. |
pkg/github/projects_v2_test.go |
Updates view fixtures and removes label assertions. |
pkg/github/projects_test.go |
Deletes IFC tests and updates status-update fixtures. |
pkg/github/notifications.go |
Removes notification-detail labels. |
pkg/github/labels.go |
Removes repository-label result annotations. |
pkg/github/issues.go |
Removes issue labels, privacy query fields, and IFC search helpers. |
pkg/github/issues_test.go |
Deletes IFC tests and updates issue-query expectations. |
pkg/github/issue_fields.go |
Removes field-definition security labels. |
pkg/github/ifc_labels.go |
Deletes shared label-attachment helpers. |
pkg/github/git.go |
Removes repository-tree labels. |
pkg/github/gists.go |
Removes gist result labels. |
pkg/github/find_duplicate.go |
Removes duplicate-candidate labels. |
pkg/github/find_duplicate_test.go |
Deletes duplicate-candidate label tests. |
pkg/github/fields_filtering_test.go |
Removes privacy fields from issue-query fixtures. |
pkg/github/feature_flags.go |
Deletes the IFC flag constant and allowlist entry. |
pkg/github/feature_flags_test.go |
Removes IFC flag-resolution cases. |
pkg/github/discussions.go |
Removes discussion and category result labels. |
pkg/github/dependabot.go |
Removes Dependabot alert labels. |
pkg/github/context_tools.go |
Removes profile and team-membership labels. |
pkg/github/context_tools_test.go |
Deletes profile-label feature-flag tests. |
pkg/github/code_scanning.go |
Removes code-scanning alert labels. |
pkg/github/actions.go |
Removes labels from Actions resources and logs. |
internal/ghmcp/server_test.go |
Updates the stdio GraphQL fixture for the reduced query. |
Review effort: Max (auto)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Removes IFC (information flow control) security labels. Tool results no longer carry
_meta.ifc, and theifc_labelsfeature flag is gone.Why
IFC labeling is being removed from this server, along with the extra visibility API calls it needed. No linked issue.
What changed
pkg/ifcandpkg/github/ifc_labels.go, and removed every label call site.ifc_labelsflag; passing it is now ignored like any unknown flag.isPrivate/publicGraphQL fields, repo/project visibility lookups, the search post-process hook, and the draft-release/published-advisory checks._metaoutput inscript/get-me.MCP impact
ifc_labelsenabled, results no longer include_meta.ifc; schemas and default output are unchanged. Removed exported Go API:pkg/ifc,FetchRepoIsPrivate,FetchProjectIsPrivate,FeatureFlagIFCLabels,IssueQueryResult.GetIsPrivate.Prompts tested (tool changes only)
Security / limits
Tool renaming
deprecated_tool_aliases.goNote: if you're renaming tools, you must add the tool aliases. For more information on how to do so, please refer to the official docs.
Lint & tests
./script/lint: passed, 0 issues./script/test: passedAlso passed:
go vet -tags e2e ./e2e/....script/generate-docsproduced no changes.Docs
script/generate-docsproduced no changes.