Proposal: Client and SDK configuration file standard
Situation
There are numerous clients and SDK that communicate with the GitLab APIs (REST API and GraphQL), some of which are:
- glab (uses go-gitlab internally)
- GitLab Terraform Provider (uses go-gitlab internally)
- go-gitlab
- python-gitlab
- ... and probably many more
All of them have a "different" interface to configure (most importantly) the credentials, for example:
-
glab
has theglab auth
command which produces a configuration file - GitLab Terraform Provider that has provider arguments and can read credentials from environments variables
- go-gitlab and python-gitlab that implement APIs in their languages to get the credentials
Problem
The problem with the current situation is the "chaos" of these different ways to configure a client or an SDK. In addition you have to (re-)authenticate all the different toolings separately - for better and worse (separation of tokens etc), but for that you could also have "profiles".
Proposal
I think that all these clients and SDKs could benefit from a standardized configuration (file) format that can be consumed (or produced) when they need credentials (or potentially other parameters, like the API base URL, rate limiter settings, ...).
Other platforms support the "same" approach, e.g. AWS.
Maybe it even makes sense to leverage whatever glab
already has and refine it (if necessary) so that other tools can use it, too.
I don't have a concrete proposal yet, but would love to hear if that is something worth pursing.