Repository navigation
Remove private repository references from source and fixtures - #37
Merged
Merged
Conversation
Ten sites named a private tracking repository: three in VersioningRunner, two in each beta template, two in the changed-file pattern fixtures and one in the versioning action. One of them was not a comment. It sat inside the string of a versioning warning annotation, so the text rendered on the pull request of whichever repository ran the check and sent the reader to a 404. Where a reference carried meaning it has been replaced by what it meant, rather than deleted. Everywhere else the surrounding comment already said it. The git history keeps the originals and is not being rewritten for this.
…ummary The line naming which engine produced a compliance verdict was written only to the job summary. GitHub exposes no API for job summaries, so it could never be read back, and the argument that the rules version is recorded rested on something nobody could check. Built once and emitted twice, to the log and to the summary, from one string so the two cannot drift. The log line drops the backticks, which are summary markdown. The new test asserts position rather than presence: moving the emission back inside the summary guard would still match a plain text search and would silently undo the only thing that makes this observable.
Three more private repository names were in the tree. The fixtures carried one in four places, including a comment asserting that repository's production state; the same name was in two unit-test cases. Both installer comments named the private one alongside the public one. Five comments cited a file and line inside another repository's source. Those fail the in-source comment rule on their own, independently of visibility, so they now say what that system did rather than where it did it. The bare name stays: it posts checks on public pull requests and contributors invoke it by name, so it is not a dangling reference. Also corrects .editorconfig, which pointed contributors at this repository's pre-transfer path. No pathspec, predicate, assertion or exit code changes. The fixtures assert a path shape and the repository name in them is arbitrary.
The previous two passes were done by reading, and reading missed six sites. This one checks the tree against the names themselves rather than against memory. Two classes of name, and the second is what reading misses. A repository named outright, and a repository identified by an assembly it ships: a type-level collision comment and two sets of deserialisation fixtures named engine assemblies belonging to private repositories. The fixtures keep their meaning. Each substituted assembly name is arbitrary to what is being asserted: the closure test needs an assembly absent from the closure, and the parser tests need an assembly-qualified name to split. The upgrade-map cases now use one placeholder throughout rather than two. Two tokens that look like hits are not: both name a project that ships in a public repository and merely collides with a directory name in a private one.
The previous pass still left four private repositories identifiable. A name was matched whole, so a shortened form of it was not, and a namespace contained no form of the name at all. What that missed. One measurement table, written out twice in two files, naming three private tools with per-repository type counts and a private UI namespace underneath. The dated figures go with it: a measurement belongs in the record rather than in a comment. One source comment naming the namespace and method the tests had just been cleaned of. And an adapter namespace in three test cases. Separately, names of the bot's own source files and classes are now gone, where the bare name stays. Verified rather than assumed: FullMessage and GroupErrors are public Test_Toolkit API and are kept; the rest are its own and are not. Test meanings are unchanged. Each substituted namespace keeps its segment count and its position relative to the subject, which is what the assertions turn on.
sakanni
marked this pull request as ready for review
October 19, 2026 09:12
Fourteen comments cited issue numbers from the repository this one replaced. They 404 today, and they are worse than dangling: live numbering restarted at 1 and is climbing, so each will eventually resolve to an unrelated issue with no sign that it is the wrong one. One of them was not a comment. It was inside a versioning warning annotation, so it rendered on the pull request of whichever repository ran the check, which is the second time that has happened on this branch. Where the citation carried meaning it is replaced by the meaning. Numbers that refer to this repository's own issues, and to pull requests in other public repositories, are untouched. Also removes four names of the bot's own executables, classes and source files. Its bare name stays, as before. Our own identifiers that merely contain one of those names, and our own comparison helpers named after its rules, are not affected. One over-long comment line re-wrapped.
Comment punctuation only, no rule, severity or setting changed. This file is centrally distributed, so a cosmetic edit was previously left out to avoid triggering a redistribution for nothing. That reason no longer holds: the file is already changed in this branch, which repointed its header at the current repository path, so the redistribution happens either way and the marginal cost here is zero.
Pair of the one nine lines above, missed on the previous pass. Names the rule it matches rather than the bot's class and method.
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.
Issues addressed by this PR
No linked issue.
Comments, test fixtures and two warning annotations named private repositories or cited issue numbers from the repository this one replaced, and several comments cited a file and line inside another repository's source. Both are against our conventions for a public repo.
Test files
None.
Changelog
Two versioning warning annotations no longer end with a reference the reader cannot open. These render on the pull request of whichever repository ran the check, so the text was reaching contributors.
Compliance checks now write the Test_Toolkit commit that supplied the rules to the job log as well as the run summary, so the rules version behind a verdict can be read back.
Additional comments
Two behaviour changes, both small and both in the Changelog above.
The versioning check emitted two warnings whose text ended in a reference to a repository the reader cannot see. The warnings still fire on the same condition and say the same thing; only the dangling reference is gone.
The Test_Toolkit commit line was written only to the job summary, and GitHub exposes no API for those, so the version that produced a verdict could never be read back. It is now built once and emitted to both, with a test asserting it sits outside the summary guard.
Everything else is comments and fixture strings. Substituted names are arbitrary to what is asserted, so no expected result, pathspec, predicate or exit code changes.
On the branch head: 392 .NET tests pass across four projects, 83 pathspec assertions pass, and the PowerShell suite gains the two cases covering the new log line.