PagerDuty / go-pagerduty

go client library for PagerDuty v2 API
https://v2.developer.pagerduty.com/docs/rest-api
Apache License 2.0
287 stars 241 forks source link

Add Oauth2 TokenSource support #473

Open rubensf opened 1 year ago

rubensf commented 1 year ago

PagerDuty currently uses Oauth2 tokens that need to be acquired and refreshed with some frequency. The current setup only supports static string auth tokens.

While uses could do the Oauth2 handling themselves, it'd lead to a quite challenging maneuvering to re-create the PagerDuty client with the new token once the previous expires, which is unnecessary when there are official canned libraries to do that for us.

Another option could almost be to just use the oauth2 created Client [1], but the way prepRequest works would interfere with it.

Fixes #407

1: https://pkg.go.dev/golang.org/x/oauth2#Config.Client