feat: implement a specialized `TokenSource` interface
Changes:
* Introduce a new `TokenSource` interface for generating
authentication headers.
* Implement three variants of the interface:
1. `staticTokenSource` to wrap a personal, project, or group access token, or
a job token.
2. `OAuthTokenSource` to wrap an `oauth2.TokenSource`.
3. `passwordCredentialsTokenSource` to encapsulate the resource owner
password credentials flow.
* Update all `New*Client` calls to create an appropriate `TokenSource` and pass
it to `newClient`.
* Introduce a new `NewTokenClient` constructor that accepts a `TokenSource`
directly.
* Add unit tests for constructor functions that ensure correct authentication
to the backend.
-
mentioned in commit 89f40840
-
mentioned in merge request sue445/create-merge-request!133 (merged)
-
mentioned in merge request gitlab-org/cli!2107 (merged)
-
mentioned in merge request gitlab-org/terraform-provider-gitlab!2540 (merged)
-
mentioned in merge request gitlab-org/release-tools!4241 (merged)
-
mentioned in merge request gitlab-com/gl-infra/woodhouse!643 (merged)
-
mentioned in merge request fforster/gitlab-mcp!88 (merged)
-
mentioned in merge request schober-server/kubernetes/images/gitlab-token-refresher!14 (merged)
-
mentioned in merge request gitlab-com/gl-infra/autolabels!58 (merged)
-
mentioned in merge request gitlab-com/gl-infra/ringctl!309 (merged)
-
mentioned in merge request gitlab-com/gl-infra/platform/runway/runwayctl!1032 (merged)
-
mentioned in merge request gitlab-org/terraform-provider-gitlab!2545 (closed)
-
mentioned in merge request gitlab-org/cli!2147 (closed)
-
mentioned in merge request gitlab-org/container-registry!2355 (merged)
-
mentioned in merge request sue445/tanuki_reminder!252 (merged)
-
mentioned in merge request fforster/epic-update!12 (merged)