@@ -16,6 +16,11 @@ import (
16
16
"github.com/stretchr/testify/require"
17
17
)
18
18
19
+ var validTags = map [string ]bool {
20
+ "v2.0.0" : true ,
21
+ "2.0.0" : true ,
22
+ }
23
+
19
24
func TestNewGithubRepository (t * testing.T ) {
20
25
require := require .New (t )
21
26
@@ -37,6 +42,7 @@ func TestNewGithubRepository(t *testing.T) {
37
42
"github_enterprise_host" : "github.enterprise" ,
38
43
"slug" : "owner/test-repo" ,
39
44
"token" : "token" ,
45
+ "strip_v_tag_prefix" : "true" ,
40
46
})
41
47
require .NoError (err )
42
48
require .Equal ("github.enterprise" , repo .client .BaseURL .Host )
@@ -160,7 +166,7 @@ func githubHandler(w http.ResponseWriter, r *http.Request) {
160
166
var data map [string ]string
161
167
json .NewDecoder (r .Body ).Decode (& data )
162
168
r .Body .Close ()
163
- if data ["sha" ] != testSHA || data ["ref" ] != "refs/tags/v2.0.0" {
169
+ if data ["sha" ] != testSHA || ( data ["ref" ] != "refs/tags/v2.0.0" && data [ "ref" ] != "refs/tags/2.0.0" ) {
164
170
http .Error (w , "invalid sha or ref" , http .StatusBadRequest )
165
171
return
166
172
}
@@ -171,10 +177,12 @@ func githubHandler(w http.ResponseWriter, r *http.Request) {
171
177
var data map [string ]string
172
178
json .NewDecoder (r .Body ).Decode (& data )
173
179
r .Body .Close ()
174
- if data ["tag_name" ] != "v2.0.0" {
180
+
181
+ if _ , ok := validTags [data ["tag_name" ]]; ! ok {
175
182
http .Error (w , "invalid tag name" , http .StatusBadRequest )
176
183
return
177
184
}
185
+
178
186
fmt .Fprint (w , "{}" )
179
187
return
180
188
}
@@ -283,3 +291,20 @@ func TestGithubCreateRelease(t *testing.T) {
283
291
err := repo .CreateRelease (& provider.CreateReleaseConfig {NewVersion : "2.0.0" , SHA : testSHA })
284
292
require .NoError (t , err )
285
293
}
294
+
295
+ func TestGitHubStripVTagRelease (t * testing.T ) {
296
+ ts := httptest .NewServer (http .HandlerFunc (githubHandler ))
297
+ defer ts .Close ()
298
+
299
+ repo := & GitHubRepository {}
300
+ err := repo .Init (map [string ]string {
301
+ "slug" : "owner/test-repo" ,
302
+ "token" : "token" ,
303
+ "strip_v_tag_prefix" : "true" ,
304
+ })
305
+ require .NoError (t , err )
306
+ repo .client .BaseURL , _ = url .Parse (ts .URL + "/" )
307
+
308
+ err = repo .CreateRelease (& provider.CreateReleaseConfig {NewVersion : "2.0.0" , SHA : testSHA })
309
+ require .NoError (t , err )
310
+ }
0 commit comments