feat: exclude opted-out repos from the full pipeline (analysis + issue creation) with wildcard support#43
Closed
feat: exclude opted-out repos from the full pipeline (analysis + issue creation) with wildcard support#43
Conversation
Co-authored-by: vuillaut <4263646+vuillaut@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add handling for black list of repositories
feat: apply blacklist to metacheck analysis stage, not just issue creation
Mar 6, 2026
Collaborator
|
…add wildcard support Co-authored-by: vuillaut <4263646+vuillaut@users.noreply.github.com>
Author
Done in f4c4809:
|
Copilot
AI
changed the title
feat: apply blacklist to metacheck analysis stage, not just issue creation
feat: blacklist repos from the full pipeline (analysis + issue creation) with wildcard support
Mar 6, 2026
Collaborator
|
@copilot rename "blacklist" into "opt-outs" |
…nd tests Co-authored-by: vuillaut <4263646+vuillaut@users.noreply.github.com>
Author
Done in 7639cd6. All "blacklist" terminology has been replaced with "opt-outs":
|
Copilot
AI
changed the title
feat: blacklist repos from the full pipeline (analysis + issue creation) with wildcard support
feat: exclude opted-out repos from the full pipeline (analysis + issue creation) with wildcard support
Mar 6, 2026
Collaborator
|
Already implemented :D |
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.
Opted-out repositories are now excluded at both the metacheck analysis stage and the issue-creation stage, so no compute is wasted analyzing repos that will be skipped anyway.
Changes
metacheck_wrapper.py: Added--opt-outsoption (defaults to.opt-outsin the current directory). When the file exists and the input is a JSON file, a_filter_opt_out_repos()helper strips opted-out repos into a temp file before passing it to metacheck (temp file cleaned up after the run). If the default.opt-outsfile is absent, filtering is silently skipped. Opt-outs entries support*as a wildcard (e.g.https://github.com/SoftwareUnderstanding/*excludes all repos in that org); URL characters such as.are always treated as literals so patterns are safe to write without escaping. Invalid patterns emit a warning on stderr.pipeline.py: Passesopt_outs_fileas--opt-outsto the metacheck step, so a single file controls both analysis and issue-creation filtering.tests/test_metacheck_wrapper.py(new): Covers exact URL removal, trailing-slash normalization, org-level wildcard patterns, wildcard suffix patterns, literal-dot behaviour, extra JSON key preservation, empty opt-outs list, invalid format error, and missing default file.tests/test_pipeline.py: Updated expected metacheck args to include--opt-outs.Example — standalone metacheck usage
Example —
.opt-outsfile with wildcard patterns{ "repositories": [ "https://github.com/SoftwareUnderstanding/*", "https://github.com/some-org/specific-repo" ] }Place a
.opt-outsfile in the working directory and it will be picked up automatically. Therun-pipelinecommand passes the same file through to both stages automatically.Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.