diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-01-29 16:17:19 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-02-01 11:10:32 +0300 |
commit | 92a82b098e0c596add78a0cf813d9871f23035bb (patch) | |
tree | cdee8824164432da4d70ef204220d501f956b0de | |
parent | 48b61b5c955bfc2117f05dd93c6caf61f91229ba (diff) |
git: Remove dangerous NewBranchReferenceName function
The `NewBranchReferenceName()` has dangerous semantics, as it may
sometimes convert the given reference name to a fully-qualified
reference by prepending "refs/heads/", and sometimes it won't. All users
have been converted to the new `NewReferenceNameFromBranchName()`
function, so let's remove the old and dangerous function.
-rw-r--r-- | internal/git/reference.go | 15 | ||||
-rw-r--r-- | internal/git/reference_test.go | 39 |
2 files changed, 0 insertions, 54 deletions
diff --git a/internal/git/reference.go b/internal/git/reference.go index d575f5f68..4822a171f 100644 --- a/internal/git/reference.go +++ b/internal/git/reference.go @@ -22,21 +22,6 @@ func (r Revision) String() string { // Revision does and must always contain a fully qualified reference. type ReferenceName string -// NewBranchReferenceName returns a new ReferenceName for the given branch. The -// branch may either be a fully qualified branch name ("refs/heads/master") or -// an unqualified name ("master"). In the latter case, the returned -// ReferenceName will still be a fully qualified reference by prepending -// "refs/heads". -func NewBranchReferenceName(branch string) ReferenceName { - if strings.HasPrefix(branch, "refs/heads/") { - return ReferenceName(branch) - } - if strings.HasPrefix(branch, "heads/") { - return ReferenceName("refs/" + branch) - } - return ReferenceName("refs/heads/" + branch) -} - // NewReferenceNameFromBranchName returns a new ReferenceName from a given // branch name. Note that branch is treated as an unqualified branch name. // This function will thus always prepend "refs/heads/". diff --git a/internal/git/reference_test.go b/internal/git/reference_test.go index 1d2019025..01687a2e3 100644 --- a/internal/git/reference_test.go +++ b/internal/git/reference_test.go @@ -52,45 +52,6 @@ func TestCheckRefFormat(t *testing.T) { } } -func TestReferenceName_NewBranchReferenceName(t *testing.T) { - for _, tc := range []struct { - desc string - reference string - expected string - }{ - { - desc: "fully qualified reference", - reference: "refs/heads/master", - expected: "refs/heads/master", - }, - { - desc: "partly qualified reference", - reference: "heads/master", - expected: "refs/heads/master", - }, - { - desc: "unqualified reference", - reference: "master", - expected: "refs/heads/master", - }, - { - desc: "weird branch name", - reference: "refs/master", - expected: "refs/heads/refs/master", - }, - { - desc: "tag is treated as a branch", - reference: "refs/tags/master", - expected: "refs/heads/refs/tags/master", - }, - } { - t.Run(tc.desc, func(t *testing.T) { - ref := NewBranchReferenceName(tc.reference) - require.Equal(t, ref.String(), tc.expected) - }) - } -} - func TestReferenceName_NewReferenceNameFromBranchName(t *testing.T) { for _, tc := range []struct { desc string |