clean up pointerisms, fix building real client

google github library returns *Foo in singular case and []Foo if there
are many results. seems like the best approach is to pass them around
by-value, since *Foo seems to only be so that they can return 'nil'
instead of a zero-value.
This commit is contained in:
Alex Suraci
2015-08-08 11:22:43 -07:00
parent 79d0da629f
commit d2c9a5e136
6 changed files with 47 additions and 48 deletions

View File

@@ -14,14 +14,14 @@ type FakeGitHub struct {
ListReleasesStub func() ([]github.RepositoryRelease, error)
listReleasesMutex sync.RWMutex
listReleasesArgsForCall []struct{}
listReleasesReturns struct {
listReleasesReturns struct {
result1 []github.RepositoryRelease
result2 error
}
LatestReleaseStub func() (*github.RepositoryRelease, error)
latestReleaseMutex sync.RWMutex
latestReleaseArgsForCall []struct{}
latestReleaseReturns struct {
latestReleaseReturns struct {
result1 *github.RepositoryRelease
result2 error
}
@@ -34,19 +34,19 @@ type FakeGitHub struct {
result1 *github.RepositoryRelease
result2 error
}
CreateReleaseStub func(release *github.RepositoryRelease) (*github.RepositoryRelease, error)
CreateReleaseStub func(release github.RepositoryRelease) (*github.RepositoryRelease, error)
createReleaseMutex sync.RWMutex
createReleaseArgsForCall []struct {
release *github.RepositoryRelease
release github.RepositoryRelease
}
createReleaseReturns struct {
result1 *github.RepositoryRelease
result2 error
}
UpdateReleaseStub func(release *github.RepositoryRelease) (*github.RepositoryRelease, error)
UpdateReleaseStub func(release github.RepositoryRelease) (*github.RepositoryRelease, error)
updateReleaseMutex sync.RWMutex
updateReleaseArgsForCall []struct {
release *github.RepositoryRelease
release github.RepositoryRelease
}
updateReleaseReturns struct {
result1 *github.RepositoryRelease
@@ -61,10 +61,10 @@ type FakeGitHub struct {
result1 []github.ReleaseAsset
result2 error
}
UploadReleaseAssetStub func(release *github.RepositoryRelease, name string, file *os.File) error
UploadReleaseAssetStub func(release github.RepositoryRelease, name string, file *os.File) error
uploadReleaseAssetMutex sync.RWMutex
uploadReleaseAssetArgsForCall []struct {
release *github.RepositoryRelease
release github.RepositoryRelease
name string
file *os.File
}
@@ -79,10 +79,10 @@ type FakeGitHub struct {
deleteReleaseAssetReturns struct {
result1 error
}
DownloadReleaseAssetStub func(asset *github.ReleaseAsset) (io.ReadCloser, error)
DownloadReleaseAssetStub func(asset github.ReleaseAsset) (io.ReadCloser, error)
downloadReleaseAssetMutex sync.RWMutex
downloadReleaseAssetArgsForCall []struct {
asset *github.ReleaseAsset
asset github.ReleaseAsset
}
downloadReleaseAssetReturns struct {
result1 io.ReadCloser
@@ -173,10 +173,10 @@ func (fake *FakeGitHub) GetReleaseByTagReturns(result1 *github.RepositoryRelease
}{result1, result2}
}
func (fake *FakeGitHub) CreateRelease(release *github.RepositoryRelease) (*github.RepositoryRelease, error) {
func (fake *FakeGitHub) CreateRelease(release github.RepositoryRelease) (*github.RepositoryRelease, error) {
fake.createReleaseMutex.Lock()
fake.createReleaseArgsForCall = append(fake.createReleaseArgsForCall, struct {
release *github.RepositoryRelease
release github.RepositoryRelease
}{release})
fake.createReleaseMutex.Unlock()
if fake.CreateReleaseStub != nil {
@@ -192,7 +192,7 @@ func (fake *FakeGitHub) CreateReleaseCallCount() int {
return len(fake.createReleaseArgsForCall)
}
func (fake *FakeGitHub) CreateReleaseArgsForCall(i int) *github.RepositoryRelease {
func (fake *FakeGitHub) CreateReleaseArgsForCall(i int) github.RepositoryRelease {
fake.createReleaseMutex.RLock()
defer fake.createReleaseMutex.RUnlock()
return fake.createReleaseArgsForCall[i].release
@@ -206,10 +206,10 @@ func (fake *FakeGitHub) CreateReleaseReturns(result1 *github.RepositoryRelease,
}{result1, result2}
}
func (fake *FakeGitHub) UpdateRelease(release *github.RepositoryRelease) (*github.RepositoryRelease, error) {
func (fake *FakeGitHub) UpdateRelease(release github.RepositoryRelease) (*github.RepositoryRelease, error) {
fake.updateReleaseMutex.Lock()
fake.updateReleaseArgsForCall = append(fake.updateReleaseArgsForCall, struct {
release *github.RepositoryRelease
release github.RepositoryRelease
}{release})
fake.updateReleaseMutex.Unlock()
if fake.UpdateReleaseStub != nil {
@@ -225,7 +225,7 @@ func (fake *FakeGitHub) UpdateReleaseCallCount() int {
return len(fake.updateReleaseArgsForCall)
}
func (fake *FakeGitHub) UpdateReleaseArgsForCall(i int) *github.RepositoryRelease {
func (fake *FakeGitHub) UpdateReleaseArgsForCall(i int) github.RepositoryRelease {
fake.updateReleaseMutex.RLock()
defer fake.updateReleaseMutex.RUnlock()
return fake.updateReleaseArgsForCall[i].release
@@ -272,10 +272,10 @@ func (fake *FakeGitHub) ListReleaseAssetsReturns(result1 []github.ReleaseAsset,
}{result1, result2}
}
func (fake *FakeGitHub) UploadReleaseAsset(release *github.RepositoryRelease, name string, file *os.File) error {
func (fake *FakeGitHub) UploadReleaseAsset(release github.RepositoryRelease, name string, file *os.File) error {
fake.uploadReleaseAssetMutex.Lock()
fake.uploadReleaseAssetArgsForCall = append(fake.uploadReleaseAssetArgsForCall, struct {
release *github.RepositoryRelease
release github.RepositoryRelease
name string
file *os.File
}{release, name, file})
@@ -293,7 +293,7 @@ func (fake *FakeGitHub) UploadReleaseAssetCallCount() int {
return len(fake.uploadReleaseAssetArgsForCall)
}
func (fake *FakeGitHub) UploadReleaseAssetArgsForCall(i int) (*github.RepositoryRelease, string, *os.File) {
func (fake *FakeGitHub) UploadReleaseAssetArgsForCall(i int) (github.RepositoryRelease, string, *os.File) {
fake.uploadReleaseAssetMutex.RLock()
defer fake.uploadReleaseAssetMutex.RUnlock()
return fake.uploadReleaseAssetArgsForCall[i].release, fake.uploadReleaseAssetArgsForCall[i].name, fake.uploadReleaseAssetArgsForCall[i].file
@@ -338,10 +338,10 @@ func (fake *FakeGitHub) DeleteReleaseAssetReturns(result1 error) {
}{result1}
}
func (fake *FakeGitHub) DownloadReleaseAsset(asset *github.ReleaseAsset) (io.ReadCloser, error) {
func (fake *FakeGitHub) DownloadReleaseAsset(asset github.ReleaseAsset) (io.ReadCloser, error) {
fake.downloadReleaseAssetMutex.Lock()
fake.downloadReleaseAssetArgsForCall = append(fake.downloadReleaseAssetArgsForCall, struct {
asset *github.ReleaseAsset
asset github.ReleaseAsset
}{asset})
fake.downloadReleaseAssetMutex.Unlock()
if fake.DownloadReleaseAssetStub != nil {
@@ -357,7 +357,7 @@ func (fake *FakeGitHub) DownloadReleaseAssetCallCount() int {
return len(fake.downloadReleaseAssetArgsForCall)
}
func (fake *FakeGitHub) DownloadReleaseAssetArgsForCall(i int) *github.ReleaseAsset {
func (fake *FakeGitHub) DownloadReleaseAssetArgsForCall(i int) github.ReleaseAsset {
fake.downloadReleaseAssetMutex.RLock()
defer fake.downloadReleaseAssetMutex.RUnlock()
return fake.downloadReleaseAssetArgsForCall[i].asset

View File

@@ -17,13 +17,13 @@ type GitHub interface {
ListReleases() ([]github.RepositoryRelease, error)
LatestRelease() (*github.RepositoryRelease, error)
GetReleaseByTag(tag string) (*github.RepositoryRelease, error)
CreateRelease(release *github.RepositoryRelease) (*github.RepositoryRelease, error)
UpdateRelease(release *github.RepositoryRelease) (*github.RepositoryRelease, error)
CreateRelease(release github.RepositoryRelease) (*github.RepositoryRelease, error)
UpdateRelease(release github.RepositoryRelease) (*github.RepositoryRelease, error)
ListReleaseAssets(release github.RepositoryRelease) ([]github.ReleaseAsset, error)
UploadReleaseAsset(release *github.RepositoryRelease, name string, file *os.File) error
UploadReleaseAsset(release github.RepositoryRelease, name string, file *os.File) error
DeleteReleaseAsset(asset github.ReleaseAsset) error
DownloadReleaseAsset(asset *github.ReleaseAsset) (io.ReadCloser, error)
DownloadReleaseAsset(asset github.ReleaseAsset) (io.ReadCloser, error)
}
type GitHubClient struct {
@@ -105,8 +105,8 @@ func (g *GitHubClient) GetReleaseByTag(tag string) (*github.RepositoryRelease, e
return release, nil
}
func (g *GitHubClient) CreateRelease(release *github.RepositoryRelease) (*github.RepositoryRelease, error) {
createdRelease, res, err := g.client.Repositories.CreateRelease(g.user, g.repository, release)
func (g *GitHubClient) CreateRelease(release github.RepositoryRelease) (*github.RepositoryRelease, error) {
createdRelease, res, err := g.client.Repositories.CreateRelease(g.user, g.repository, &release)
if err != nil {
return &github.RepositoryRelease{}, err
}
@@ -119,12 +119,12 @@ func (g *GitHubClient) CreateRelease(release *github.RepositoryRelease) (*github
return createdRelease, nil
}
func (g *GitHubClient) UpdateRelease(release *github.RepositoryRelease) (*github.RepositoryRelease, error) {
func (g *GitHubClient) UpdateRelease(release github.RepositoryRelease) (*github.RepositoryRelease, error) {
if release.ID == nil {
return nil, errors.New("release did not have an ID: has it been saved yet?")
}
updatedRelease, res, err := g.client.Repositories.EditRelease(g.user, g.repository, *release.ID, release)
updatedRelease, res, err := g.client.Repositories.EditRelease(g.user, g.repository, *release.ID, &release)
if err != nil {
return &github.RepositoryRelease{}, err
}
@@ -137,7 +137,7 @@ func (g *GitHubClient) UpdateRelease(release *github.RepositoryRelease) (*github
return updatedRelease, nil
}
func (g *GitHubClient) ListReleaseAssets(release *github.RepositoryRelease) ([]github.ReleaseAsset, error) {
func (g *GitHubClient) ListReleaseAssets(release github.RepositoryRelease) ([]github.ReleaseAsset, error) {
assets, res, err := g.client.Repositories.ListReleaseAssets(g.user, g.repository, *release.ID, nil)
if err != nil {
return []github.ReleaseAsset{}, nil
@@ -151,7 +151,7 @@ func (g *GitHubClient) ListReleaseAssets(release *github.RepositoryRelease) ([]g
return assets, nil
}
func (g *GitHubClient) UploadReleaseAsset(release *github.RepositoryRelease, name string, file *os.File) error {
func (g *GitHubClient) UploadReleaseAsset(release github.RepositoryRelease, name string, file *os.File) error {
_, res, err := g.client.Repositories.UploadReleaseAsset(
g.user,
g.repository,

View File

@@ -95,8 +95,7 @@ func (c *InCommand) Run(destDir string, request InRequest) (InResponse, error) {
fmt.Fprintf(c.writer, "downloading asset: %s\n", *asset.Name)
assetToDownload := asset
err := c.downloadFile(&assetToDownload, path)
err := c.downloadFile(asset, path)
if err != nil {
return InResponse{}, err
}
@@ -110,7 +109,7 @@ func (c *InCommand) Run(destDir string, request InRequest) (InResponse, error) {
}, nil
}
func (c *InCommand) downloadFile(asset *github.ReleaseAsset, destPath string) error {
func (c *InCommand) downloadFile(asset github.ReleaseAsset, destPath string) error {
out, err := os.Create(destPath)
if err != nil {
return err

View File

@@ -109,8 +109,8 @@ var _ = Describe("In Command", func() {
})
It("downloads only the files that match the globs", func() {
Ω(*githubClient.DownloadReleaseAssetArgsForCall(0)).Should(Equal(buildAsset(0, "example.txt")))
Ω(*githubClient.DownloadReleaseAssetArgsForCall(1)).Should(Equal(buildAsset(1, "example.rtf")))
Ω(githubClient.DownloadReleaseAssetArgsForCall(0)).Should(Equal(buildAsset(0, "example.txt")))
Ω(githubClient.DownloadReleaseAssetArgsForCall(1)).Should(Equal(buildAsset(1, "example.rtf")))
})
})
@@ -151,9 +151,9 @@ var _ = Describe("In Command", func() {
})
It("downloads all of the files", func() {
Ω(*githubClient.DownloadReleaseAssetArgsForCall(0)).Should(Equal(buildAsset(0, "example.txt")))
Ω(*githubClient.DownloadReleaseAssetArgsForCall(1)).Should(Equal(buildAsset(1, "example.rtf")))
Ω(*githubClient.DownloadReleaseAssetArgsForCall(2)).Should(Equal(buildAsset(2, "example.wtf")))
Ω(githubClient.DownloadReleaseAssetArgsForCall(0)).Should(Equal(buildAsset(0, "example.txt")))
Ω(githubClient.DownloadReleaseAssetArgsForCall(1)).Should(Equal(buildAsset(1, "example.rtf")))
Ω(githubClient.DownloadReleaseAssetArgsForCall(2)).Should(Equal(buildAsset(2, "example.wtf")))
})
})
@@ -232,7 +232,7 @@ var _ = Describe("In Command", func() {
})
It("fetches from the latest release", func() {
Ω(*githubClient.DownloadReleaseAssetArgsForCall(0)).Should(Equal(buildAsset(0, "something.tgz")))
Ω(githubClient.DownloadReleaseAssetArgsForCall(0)).Should(Equal(buildAsset(0, "something.tgz")))
})
})
})

View File

@@ -88,10 +88,10 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
fmt.Fprintf(c.writer, "updating release %s\n", name)
release, err = c.github.UpdateRelease(existingRelease)
release, err = c.github.UpdateRelease(*existingRelease)
} else {
fmt.Fprintf(c.writer, "creating release %s\n", name)
release, err = c.github.CreateRelease(release)
release, err = c.github.CreateRelease(*release)
}
if err != nil {
@@ -117,7 +117,7 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
fmt.Fprintf(c.writer, "uploading %s\n", filePath)
name := filepath.Base(filePath)
err = c.github.UploadReleaseAsset(release, name, file)
err = c.github.UploadReleaseAsset(*release, name, file)
if err != nil {
return OutResponse{}, err
}

View File

@@ -38,8 +38,8 @@ var _ = Describe("Out Command", func() {
sourcesDir, err = ioutil.TempDir("", "github-release")
Ω(err).ShouldNot(HaveOccurred())
githubClient.CreateReleaseStub = func(gh *github.RepositoryRelease) (*github.RepositoryRelease, error) {
createdRel := *gh
githubClient.CreateReleaseStub = func(gh github.RepositoryRelease) (*github.RepositoryRelease, error) {
createdRel := gh
createdRel.ID = github.Int(112)
createdRel.HTMLURL = github.String("http://google.com")
createdRel.Name = github.String("release-name")
@@ -47,8 +47,8 @@ var _ = Describe("Out Command", func() {
return &createdRel, nil
}
githubClient.UpdateReleaseStub = func(gh *github.RepositoryRelease) (*github.RepositoryRelease, error) {
return gh, nil
githubClient.UpdateReleaseStub = func(gh github.RepositoryRelease) (*github.RepositoryRelease, error) {
return &gh, nil
}
})