diff --git a/github/activity_events.go b/github/activity_events.go index b9b3217..64aa960 100644 --- a/github/activity_events.go +++ b/github/activity_events.go @@ -115,3 +115,25 @@ func (s *ActivityService) ListEventsRecievedByUser(user string, publicOnly bool, resp, err := s.client.Do(req, events) return *events, resp, err } + +// ListEventsForOrganization provides the user’s organization dashboard. You +// must be authenticated as the user to view this. +// +// GitHub API docs: http://developer.github.com/v3/activity/events/#list-events-for-an-organization +func (s *ActivityService) ListEventsForOrganization(org, user string, opt *ListOptions) ([]Event, *Response, error) { + u := fmt.Sprintf("users/%v/events/orgs/%v", user, org) + if opt != nil { + params := url.Values{ + "page": []string{strconv.Itoa(opt.Page)}, + } + u += "?" + params.Encode() + } + req, err := s.client.NewRequest("GET", u, nil) + if err != nil { + return nil, nil, err + } + + events := new([]Event) + resp, err := s.client.Do(req, events) + return *events, resp, err +} diff --git a/github/activity_events_test.go b/github/activity_events_test.go index 43da4ee..853d09e 100644 --- a/github/activity_events_test.go +++ b/github/activity_events_test.go @@ -101,6 +101,26 @@ func TestActivityService_ListEventsRecievedByUser_publicOnly(t *testing.T) { } } +func TestActivityService_ListEventsForOrganization(t *testing.T) { + setup() + defer teardown() + + mux.HandleFunc("/users/u/events/orgs/o", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, "GET") + fmt.Fprint(w, `[{"id":"1"},{"id":"2"}]`) + }) + + events, _, err := client.Activity.ListEventsForOrganization("o", "u", nil) + if err != nil { + t.Errorf("Activities.ListEventsForOrganization returned error: %v", err) + } + + want := []Event{{ID: "1"}, {ID: "2"}} + if !reflect.DeepEqual(events, want) { + t.Errorf("Activities.ListEventsForOrganization returned %+v, want %+v", events, want) + } +} + func TestActivity_EventPayload_typed(t *testing.T) { raw := []byte(`{"type": "PushEvent","payload":{"push_id": 1}}`) var event *Event