github-tools / github-tools/github

Add ability to add custom authorisation headers?

Abierto
#415 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
JavaScript
Estrellas
3.8k
Forks
809
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I am working on an app where I would like to use github.js to access an internal api acting as a proxy to `api.github.com`.

I am doing this because I want to expose specific github features to non github members (the ability to log issues in private repositories for example).

the internal api simply forwards the api calls to `api.github.com` using a pre-configured token that has the appropriate scopes.

Unfortunately github uses `token` as a keyword in the token authorisation header, but my api uses the more standard `bearer` keyword. I did a [trivial fix](https://github.com/clembou/github/commit/16a434127ab6d73e172fb662c61283274be41d3a) in my fork that lets me change this. However I would like to avoid using a fork of the library if at all possible.

Would you accept a PR adding support for passing additional headers that would allow users to add or override default values? This would be a more generic way to fix my issue and might be of interest to other users (it is mentionned in https://github.com/github-tools/github/issues/322 for example).

if so I am happy to take a stab at it.

I would probably do the following:
- add a `__customHeaders` property initialised from a new optional parameter on `Requestable`
- add something like
```js
if (this.__customHeaders) {
headers = Object.assign(headers, this.__customHeaders);
}
```
in [`__getRequestHeaders__`](https://github.com/clembou/github/blob/master/lib/Requestable.js#L105)
- make sure __customHeaders gets passed to the various subclasses constructors across the library

I noticed that a new [`AcceptHeader`](https://github.com/github-tools/github/blob/master/lib/Requestable.js#L49) parameter was recently added, perhaps this could be consolidated with my proposed change (e.g. you could just passe `{Accept: 'v3'}` as custom headers.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.