[go: up one dir, main page]

Skip to content

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:

All of them have a "different" interface to configure (most importantly) the credentials, for example:

  • glab has the glab 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.

Edited by 🤖 GitLab Bot 🤖