Add support for downloading source artifacts from Github release
This adds support for retrieving the tarball or zip source artifact from a Github release. This is done through defining a "params.include_source_tarball" or "params.include_source_zip" boolean setting. With this, the resource will download the respective source artfact into the target directory as either "source.tar.gz" or "source.zip".
This commit is contained in:
@@ -3,6 +3,7 @@ package fakes
|
||||
|
||||
import (
|
||||
"io"
|
||||
"net/url"
|
||||
"os"
|
||||
"sync"
|
||||
|
||||
@@ -81,6 +82,24 @@ type FakeGitHub struct {
|
||||
result1 io.ReadCloser
|
||||
result2 error
|
||||
}
|
||||
GetTarballLinkStub func(tag string) (*url.URL, error)
|
||||
getTarballLinkMutex sync.RWMutex
|
||||
getTarballLinkArgsForCall []struct {
|
||||
tag string
|
||||
}
|
||||
getTarballLinkReturns struct {
|
||||
result1 *url.URL
|
||||
result2 error
|
||||
}
|
||||
GetZipballLinkStub func(tag string) (*url.URL, error)
|
||||
getZipballLinkMutex sync.RWMutex
|
||||
getZipballLinkArgsForCall []struct {
|
||||
tag string
|
||||
}
|
||||
getZipballLinkReturns struct {
|
||||
result1 *url.URL
|
||||
result2 error
|
||||
}
|
||||
}
|
||||
|
||||
func (fake *FakeGitHub) ListReleases() ([]github.RepositoryRelease, error) {
|
||||
@@ -339,4 +358,70 @@ func (fake *FakeGitHub) DownloadReleaseAssetReturns(result1 io.ReadCloser, resul
|
||||
}{result1, result2}
|
||||
}
|
||||
|
||||
func (fake *FakeGitHub) GetTarballLink(tag string) (*url.URL, error) {
|
||||
fake.getTarballLinkMutex.Lock()
|
||||
fake.getTarballLinkArgsForCall = append(fake.getTarballLinkArgsForCall, struct {
|
||||
tag string
|
||||
}{tag})
|
||||
fake.getTarballLinkMutex.Unlock()
|
||||
if fake.GetReleaseByTagStub != nil {
|
||||
return fake.GetTarballLinkStub(tag)
|
||||
} else {
|
||||
return fake.getTarballLinkReturns.result1, fake.getTarballLinkReturns.result2
|
||||
}
|
||||
}
|
||||
|
||||
func (fake *FakeGitHub) GetTarballLinkCallCount() int {
|
||||
fake.getTarballLinkMutex.RLock()
|
||||
defer fake.getTarballLinkMutex.RUnlock()
|
||||
return len(fake.getTarballLinkArgsForCall)
|
||||
}
|
||||
|
||||
func (fake *FakeGitHub) GetTarballLinkArgsForCall(i int) string {
|
||||
fake.getTarballLinkMutex.RLock()
|
||||
defer fake.getTarballLinkMutex.RUnlock()
|
||||
return fake.getTarballLinkArgsForCall[i].tag
|
||||
}
|
||||
|
||||
func (fake *FakeGitHub) GetTarballLinkReturns(result1 *url.URL, result2 error) {
|
||||
fake.GetTarballLinkStub = nil
|
||||
fake.getTarballLinkReturns = struct {
|
||||
result1 *url.URL
|
||||
result2 error
|
||||
}{result1, result2}
|
||||
}
|
||||
|
||||
func (fake *FakeGitHub) GetZipballLink(tag string) (*url.URL, error) {
|
||||
fake.getZipballLinkMutex.Lock()
|
||||
fake.getZipballLinkArgsForCall = append(fake.getZipballLinkArgsForCall, struct {
|
||||
tag string
|
||||
}{tag})
|
||||
fake.getZipballLinkMutex.Unlock()
|
||||
if fake.GetReleaseByTagStub != nil {
|
||||
return fake.GetZipballLinkStub(tag)
|
||||
} else {
|
||||
return fake.getZipballLinkReturns.result1, fake.getZipballLinkReturns.result2
|
||||
}
|
||||
}
|
||||
|
||||
func (fake *FakeGitHub) GetZipballLinkCallCount() int {
|
||||
fake.getZipballLinkMutex.RLock()
|
||||
defer fake.getZipballLinkMutex.RUnlock()
|
||||
return len(fake.getZipballLinkArgsForCall)
|
||||
}
|
||||
|
||||
func (fake *FakeGitHub) GetZipballLinkArgsForCall(i int) string {
|
||||
fake.getZipballLinkMutex.RLock()
|
||||
defer fake.getZipballLinkMutex.RUnlock()
|
||||
return fake.getZipballLinkArgsForCall[i].tag
|
||||
}
|
||||
|
||||
func (fake *FakeGitHub) GetZipballLinkReturns(result1 *url.URL, result2 error) {
|
||||
fake.GetZipballLinkStub = nil
|
||||
fake.getZipballLinkReturns = struct {
|
||||
result1 *url.URL
|
||||
result2 error
|
||||
}{result1, result2}
|
||||
}
|
||||
|
||||
var _ resource.GitHub = new(FakeGitHub)
|
||||
|
Reference in New Issue
Block a user