EPMDEDP-17254: fix: Remove stray init master branch before pushing operator-authored repositories - #306
Merged
Conversation
…erator-authored repositories go-git hardcodes the post-init HEAD to master, so every repository whose history the operator authors (create strategy squashes history, emptyProject inits from scratch) carried a leftover master ref next to the checked-out default branch, and the all-heads push refspec delivered it to the remote. Every provisioned repository with a non-master default branch silently received a spurious master branch, polluting branch protection, webhook triggers, and default-branch heuristics. Remove the init branch after the default branch is checked out (HEAD is off master by then) and only for operator-authored histories: cloned repositories are never touched, since a branch of the same name there belongs to the source. Removal is idempotent on retries. Signed-off-by: Sergiy Kulanov <sergiy_kulanov@epam.com>
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.
go-git hardcodes the post-init HEAD to master, so every repository whose history the operator authors (create strategy squashes history, emptyProject inits from scratch) carried a leftover master ref next to the checked-out default branch, and the all-heads push refspec delivered it to the remote. Every provisioned repository with a non-master default branch silently received a spurious master branch, polluting branch protection, webhook triggers, and default-branch heuristics.
Remove the init branch after the default branch is checked out (HEAD is off master by then) and only for operator-authored histories: cloned repositories are never touched, since a branch of the same name there belongs to the source. Removal is idempotent on retries.