Skip to content

Commit 9dba835

Browse files
Add ApiURI for gitlab provider (#27)
* Add ApiURI for gitlab provider it can let us using private server * Increase code coverage for provider_gitlab.go --------- Co-authored-by: Julien NOBLET <[email protected]>
1 parent 9c4619a commit 9dba835

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

pkg/provider/provider_gitlab.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
type Gitlab struct {
1818
ProjectID int
1919
ArchiveName string // ArchiveName (the archive you upload for a release on gitlab), example: binaries.zip
20+
ApiURI string // ApiURI (in case you're using a private gitlab server), example: gitlab.mydomain.tld/api/v4/projects/%d/releases to use gitlab.com let it blank
2021

2122
tmpDir string // temporary directory this is used internally
2223
decompressProvider Provider // provider used to decompress the downloaded archive
@@ -41,6 +42,12 @@ type gitlabReleaseLink struct {
4142

4243
// getReleasesURL get the releases URL for the gitlab repository
4344
func (c *Gitlab) getReleasesURL() (string, error) {
45+
if c.ApiURI != "" {
46+
return fmt.Sprintf(c.ApiURI,
47+
c.ProjectID,
48+
), nil
49+
}
50+
4451
return fmt.Sprintf("https://gitlab.com/api/v4/projects/%d/releases",
4552
c.ProjectID,
4653
), nil

pkg/provider/provider_gitlab_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ func TestProviderGitlab(t *testing.T) {
2424
t.Fatal(err)
2525
}
2626

27+
pp := &provider.Gitlab{
28+
ProjectID: 24021648,
29+
ArchiveName: fmt.Sprintf("binaries_%s.zip", runtime.GOOS),
30+
ApiURI: "https://gitlab.com/api/v4/projects/%d/releases", // same as original
31+
}
32+
33+
if err := pp.Open(); err != nil {
34+
t.Fatal(err)
35+
}
36+
defer pp.Close()
37+
38+
err = ProviderTestWalkAndRetrieve(pp)
39+
if err != nil {
40+
t.Fatal(err)
41+
}
42+
2743
badProvider := &provider.Gitlab{
2844
ProjectID: 424242424242424242,
2945
ArchiveName: fmt.Sprintf("binaries_%s.zip", runtime.GOOS),
@@ -32,4 +48,14 @@ func TestProviderGitlab(t *testing.T) {
3248
if err != nil {
3349
t.Fatal(err)
3450
}
51+
52+
badProviderApi := &provider.Gitlab{
53+
ProjectID: 24021648,
54+
ArchiveName: fmt.Sprintf("binaries_%s.zip", runtime.GOOS),
55+
ApiURI: "https://bad.url/api/%d/R",
56+
}
57+
err = ProviderTestUnavailable(badProviderApi)
58+
if err != nil {
59+
t.Fatal(err)
60+
}
3561
}

0 commit comments

Comments
 (0)