Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Github Enterprise support #114

Open
gragib opened this issue Feb 14, 2021 · 14 comments · May be fixed by #496
Open

Github Enterprise support #114

gragib opened this issue Feb 14, 2021 · 14 comments · May be fixed by #496
Labels
enhancement New feature or request

Comments

@gragib
Copy link
Contributor

gragib commented Feb 14, 2021

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?

@xcv58
Copy link
Collaborator

xcv58 commented Feb 14, 2021

@gragib
Copy link
Contributor Author

gragib commented Feb 14, 2021

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/.

@gragib
Copy link
Contributor Author

gragib commented Feb 14, 2021

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
Copy link
Contributor Author

gragib commented Feb 14, 2021

I have a hit a roadblock with the GraphQL API: path was added in GHE 3.0. I am on an older release.

fragment TreeEntryFields on TreeEntry {
oid
name
path
type
}

@gragib
Copy link
Contributor Author

gragib commented Feb 14, 2021

Removing path seems to get things in working order. What are the downsides?

@Siddhant-K-code Siddhant-K-code added the enhancement New feature or request label Feb 14, 2021
@Shegox
Copy link

Shegox commented Feb 14, 2021

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.

@gragib
Copy link
Contributor Author

gragib commented Feb 14, 2021

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.

@ajay-sreeram
Copy link

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

@gragib
Copy link
Contributor Author

gragib commented Feb 19, 2021

#123 (comment)

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.

@ajay-sreeram
Copy link

Thankyou @gragib

@rpgeddam
Copy link

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?

@Siddhant-K-code
Copy link
Collaborator

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

@rpgeddam
Copy link

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.

@conwnet
Copy link
Owner

conwnet commented Jun 22, 2022

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

@kcoms555 kcoms555 linked a pull request Apr 18, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants