github-tools / github-tools/github

Add ability to add custom authorisation headers?

未关闭
#415 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
JavaScript
星标
3.8k
派生
809
PR 合并指标
30 天内没有已合并 PR

描述

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.

贡献指南

这个仓库没有索引到贡献指南

调研方向

从 lib/Requestable.js 中的 __getRequestHeaders__ 和 Requestable 构造函数开始,然后跟踪各个子类构造函数,了解新选项将如何传递。将提议的自定义标头与现有的 AcceptHeader 参数进行比较;完成的标准是调用方可以在不使用 fork 的情况下提供或覆盖授权标头。

由索引模型根据 Issue 内容生成。

评估

技术栈
javascript
领域
api
Issue 类型
功能
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。