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