github1s
github1s copied to clipboard
Github Enterprise support
For a Github Enterprise server hosted behind a firewall at https://git.example.co/
, what changes need to be made use it with a self-hosted version of github1s
?
https://github.com/conwnet/github1s/blob/master/extensions/github1s/src/client.ts#L11 and API url in the file https://github.com/conwnet/github1s/blob/master/extensions/github1s/src/api.ts
It would be mighty convenient if https://api.github.com/
was replaced with a configurable variable. In my hypothetical situation, GHE equivalent is https://git.example.co/api/v3/
.
~1. How do I ensure basic authentication is used for all API calls?~ ~2. Where do I add the token?~ ~3. What permissions are required when generating the token?~
Figured it out.
I have a hit a roadblock with the GraphQL API: path
was added in GHE 3.0. I am on an older release.
https://github.com/conwnet/github1s/blob/182a6196cd585c975a3735bb6bb097de3b79c723/extensions/github1s/src/client.ts#L25-L30
Removing path
seems to get things in working order. What are the downsides?
One additional thing, which I noticed when setting it up for GitHub Enterprise Server that using GitHub pages is probably not the best idea for hosting because of two reasons:
-
It would be hosted under a different path: e.g.
pages.github.example.com/github1s/$ORG/$REPO
and this requires an adjustment in https://github.com/conwnet/github1s/blob/master/src/vs/github1s/util.ts#L18 E.g.:// remove path prefix (github1s) added by hosting on GitHub pages const pathname = urlObj.pathname.replace(/^\/github1s/,""); const parts = pathname.split(/\/|%2F/g).filter(Boolean);
-
hosting it under GitHub pages on an Enterprise Server would mean that the indexeddb (at least how far I understood it) could be accessed from any other GitHub page, meaning it would be quite easy to steal the tokens. As GitHub Enterprise doesn't support custom CNAMEs (like github.com) one should probably host it under a separate, isolated domain name and some static webserver (e.g. AWS S3 bucket).
Another more generic idea would be to allow github1s to open urls in the form of github1s.com/$hostname/$ORG/$repo
and adding support for multiple token/server. Then even Enterprise users could use github1s, even behind a firewall as requests are sent from the browser directly to the Enterprise Server and don't go over github1s.
At our place of work, we are supposed to use a Confluence wiki instead of GitHub Pages. Anybody who needs this will need to self-host it on localhost
.
I will try to sort out all the changes that need to be made and submit a PR in the near future.
~1. How do I ensure basic authentication is used for all API calls?~ ~2. Where do I add the token?~ ~3. What permissions are required when generating the token?~
Figured it out.
@gragib can you please elaborate the answers to these questions
https://github.com/conwnet/github1s/issues/123#issuecomment-779288452
The UI for generating and adding a token is in the above comment. You will need to modify the GutHub URL to point to your instance of GHE.
Thankyou @gragib
https://github.com/conwnet/github1s/blob/master/extensions/github1s/src/client.ts#L11 and API url in the file https://github.com/conwnet/github1s/blob/master/extensions/github1s/src/api.ts
These URLs aren't valid anymore. nor can I find an api.ts file in the repo. What's the new location for these settings?
https://github.com/conwnet/github1s/blob/master/extensions/github1s/src/client.ts#L11 and API url in the file https://github.com/conwnet/github1s/blob/master/extensions/github1s/src/api.ts
These URLs aren't valid anymore. nor can I find an api.ts file in the repo. What's the new location for these settings?
you will get all your answers at: https://github.com/conwnet/github1s/tree/master/extensions/github1s/src/interfaces
you will get all your answers at: https://github.com/conwnet/github1s/tree/master/extensions/github1s/src/interfaces
FWIW, this link isn't valid anymore either.
FWIW, this link isn't valid anymore either.
@rpgeddam Now you can visit here: https://github.com/conwnet/github1s/tree/1e814e91eeab88e4139c2ce57be78bd161c594a6/extensions/github1s/src/adapters