Browse Source

Adding GetLatestReleast endpoint

Craig Peterson 11 years ago
parent
commit
ef772c929d
2 changed files with 39 additions and 0 deletions
  1. +19
    -0
      github/repos_releases.go
  2. +20
    -0
      github/repos_releases_test.go

+ 19
- 0
github/repos_releases.go View File

@ -99,6 +99,25 @@ func (s *RepositoriesService) GetRelease(owner, repo string, id int) (*Repositor
return release, resp, err
}
// GetLatestRelease fetches the latest published release for the repository.
//
// GitHub API docs: https://developer.github.com/v3/repos/releases/#get-the-latest-release
func (s *RepositoriesService) GetLatestRelease(owner, repo string) (*RepositoryRelease, *Response, error) {
u := fmt.Sprintf("repos/%s/%s/releases/latest", owner, repo)
req, err := s.client.NewRequest("GET", u, nil)
if err != nil {
return nil, nil, err
}
release := new(RepositoryRelease)
resp, err := s.client.Do(req, release)
if err != nil {
return nil, resp, err
}
return release, resp, err
}
// CreateRelease adds a new release for a repository.
//
// GitHub API docs : http://developer.github.com/v3/repos/releases/#create-a-release


+ 20
- 0
github/repos_releases_test.go View File

@ -55,6 +55,26 @@ func TestRepositoriesService_GetRelease(t *testing.T) {
}
}
func TestRepositoriesService_GetLatestRelease(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/repos/o/r/releases/latest", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "GET")
fmt.Fprint(w, `{"id":3}`)
})
release, resp, err := client.Repositories.GetLatestRelease("o", "r")
if err != nil {
t.Errorf("Repositories.GetLatestRelease returned error: %v\n%v", err, resp.Body)
}
want := &RepositoryRelease{ID: Int(3)}
if !reflect.DeepEqual(release, want) {
t.Errorf("Repositories.GetLatestRelease returned %+v, want %+v", release, want)
}
}
func TestRepositoriesService_CreateRelease(t *testing.T) {
setup()
defer teardown()


Loading…
Cancel
Save