github-tools / github-tools/github

Add ability to add custom authorisation headers?

Đang mở
#415 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.