github-tools / github-tools/github
Add ability to add custom authorisation headers?
- Ngôn ngữ chính
- JavaScript
- Star
- 3.8k
- Fork
- 809
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
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.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Start in lib/Requestable.js at __getRequestHeaders__ and the Requestable constructor, then trace the various subclass constructors to see how the new option would be propagated. Compare the proposed custom headers with the existing AcceptHeader parameter; done means callers can supply or override authorization headers without using a fork.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript
- Lĩnh vực
- api
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100