github.com/google/go-github/v49@v49.1.0/github/activity_events.go (about) 1 // Copyright 2013 The go-github AUTHORS. All rights reserved. 2 // 3 // Use of this source code is governed by a BSD-style 4 // license that can be found in the LICENSE file. 5 6 package github 7 8 import ( 9 "context" 10 "fmt" 11 ) 12 13 // ListEvents drinks from the firehose of all public events across GitHub. 14 // 15 // GitHub API docs: https://docs.github.com/en/rest/activity/events#list-public-events 16 func (s *ActivityService) ListEvents(ctx context.Context, opts *ListOptions) ([]*Event, *Response, error) { 17 u, err := addOptions("events", opts) 18 if err != nil { 19 return nil, nil, err 20 } 21 22 req, err := s.client.NewRequest("GET", u, nil) 23 if err != nil { 24 return nil, nil, err 25 } 26 27 var events []*Event 28 resp, err := s.client.Do(ctx, req, &events) 29 if err != nil { 30 return nil, resp, err 31 } 32 33 return events, resp, nil 34 } 35 36 // ListRepositoryEvents lists events for a repository. 37 // 38 // GitHub API docs: https://docs.github.com/en/rest/activity/events#list-repository-events 39 func (s *ActivityService) ListRepositoryEvents(ctx context.Context, owner, repo string, opts *ListOptions) ([]*Event, *Response, error) { 40 u := fmt.Sprintf("repos/%v/%v/events", owner, repo) 41 u, err := addOptions(u, opts) 42 if err != nil { 43 return nil, nil, err 44 } 45 46 req, err := s.client.NewRequest("GET", u, nil) 47 if err != nil { 48 return nil, nil, err 49 } 50 51 var events []*Event 52 resp, err := s.client.Do(ctx, req, &events) 53 if err != nil { 54 return nil, resp, err 55 } 56 57 return events, resp, nil 58 } 59 60 // ListIssueEventsForRepository lists issue events for a repository. 61 // 62 // GitHub API docs: https://docs.github.com/en/rest/issues/events#list-issue-events-for-a-repository 63 func (s *ActivityService) ListIssueEventsForRepository(ctx context.Context, owner, repo string, opts *ListOptions) ([]*IssueEvent, *Response, error) { 64 u := fmt.Sprintf("repos/%v/%v/issues/events", owner, repo) 65 u, err := addOptions(u, opts) 66 if err != nil { 67 return nil, nil, err 68 } 69 70 req, err := s.client.NewRequest("GET", u, nil) 71 if err != nil { 72 return nil, nil, err 73 } 74 75 var events []*IssueEvent 76 resp, err := s.client.Do(ctx, req, &events) 77 if err != nil { 78 return nil, resp, err 79 } 80 81 return events, resp, nil 82 } 83 84 // ListEventsForRepoNetwork lists public events for a network of repositories. 85 // 86 // GitHub API docs: https://docs.github.com/en/rest/activity/events#list-public-events-for-a-network-of-repositories 87 func (s *ActivityService) ListEventsForRepoNetwork(ctx context.Context, owner, repo string, opts *ListOptions) ([]*Event, *Response, error) { 88 u := fmt.Sprintf("networks/%v/%v/events", owner, repo) 89 u, err := addOptions(u, opts) 90 if err != nil { 91 return nil, nil, err 92 } 93 94 req, err := s.client.NewRequest("GET", u, nil) 95 if err != nil { 96 return nil, nil, err 97 } 98 99 var events []*Event 100 resp, err := s.client.Do(ctx, req, &events) 101 if err != nil { 102 return nil, resp, err 103 } 104 105 return events, resp, nil 106 } 107 108 // ListEventsForOrganization lists public events for an organization. 109 // 110 // GitHub API docs: https://docs.github.com/en/rest/activity/events#list-public-organization-events 111 func (s *ActivityService) ListEventsForOrganization(ctx context.Context, org string, opts *ListOptions) ([]*Event, *Response, error) { 112 u := fmt.Sprintf("orgs/%v/events", org) 113 u, err := addOptions(u, opts) 114 if err != nil { 115 return nil, nil, err 116 } 117 118 req, err := s.client.NewRequest("GET", u, nil) 119 if err != nil { 120 return nil, nil, err 121 } 122 123 var events []*Event 124 resp, err := s.client.Do(ctx, req, &events) 125 if err != nil { 126 return nil, resp, err 127 } 128 129 return events, resp, nil 130 } 131 132 // ListEventsPerformedByUser lists the events performed by a user. If publicOnly is 133 // true, only public events will be returned. 134 // 135 // GitHub API docs: https://docs.github.com/en/rest/activity/events#list-events-for-the-authenticated-user 136 // GitHub API docs: https://docs.github.com/en/rest/activity/events#list-public-events-for-a-user 137 func (s *ActivityService) ListEventsPerformedByUser(ctx context.Context, user string, publicOnly bool, opts *ListOptions) ([]*Event, *Response, error) { 138 var u string 139 if publicOnly { 140 u = fmt.Sprintf("users/%v/events/public", user) 141 } else { 142 u = fmt.Sprintf("users/%v/events", user) 143 } 144 u, err := addOptions(u, opts) 145 if err != nil { 146 return nil, nil, err 147 } 148 149 req, err := s.client.NewRequest("GET", u, nil) 150 if err != nil { 151 return nil, nil, err 152 } 153 154 var events []*Event 155 resp, err := s.client.Do(ctx, req, &events) 156 if err != nil { 157 return nil, resp, err 158 } 159 160 return events, resp, nil 161 } 162 163 // ListEventsReceivedByUser lists the events received by a user. If publicOnly is 164 // true, only public events will be returned. 165 // 166 // GitHub API docs: https://docs.github.com/en/rest/activity/events#list-events-received-by-the-authenticated-user 167 // GitHub API docs: https://docs.github.com/en/rest/activity/events#list-public-events-received-by-a-user 168 func (s *ActivityService) ListEventsReceivedByUser(ctx context.Context, user string, publicOnly bool, opts *ListOptions) ([]*Event, *Response, error) { 169 var u string 170 if publicOnly { 171 u = fmt.Sprintf("users/%v/received_events/public", user) 172 } else { 173 u = fmt.Sprintf("users/%v/received_events", user) 174 } 175 u, err := addOptions(u, opts) 176 if err != nil { 177 return nil, nil, err 178 } 179 180 req, err := s.client.NewRequest("GET", u, nil) 181 if err != nil { 182 return nil, nil, err 183 } 184 185 var events []*Event 186 resp, err := s.client.Do(ctx, req, &events) 187 if err != nil { 188 return nil, resp, err 189 } 190 191 return events, resp, nil 192 } 193 194 // ListUserEventsForOrganization provides the user’s organization dashboard. You 195 // must be authenticated as the user to view this. 196 // 197 // GitHub API docs: https://docs.github.com/en/rest/activity/events#list-organization-events-for-the-authenticated-user 198 func (s *ActivityService) ListUserEventsForOrganization(ctx context.Context, org, user string, opts *ListOptions) ([]*Event, *Response, error) { 199 u := fmt.Sprintf("users/%v/events/orgs/%v", user, org) 200 u, err := addOptions(u, opts) 201 if err != nil { 202 return nil, nil, err 203 } 204 205 req, err := s.client.NewRequest("GET", u, nil) 206 if err != nil { 207 return nil, nil, err 208 } 209 210 var events []*Event 211 resp, err := s.client.Do(ctx, req, &events) 212 if err != nil { 213 return nil, resp, err 214 } 215 216 return events, resp, nil 217 }