How to integrate git in WebIDE

Normally in an IDE we have the git function. For example, pull or push file and code from github. Is there any module in Theia to implement such fuction?

@LamYunfu thank you for the discussion, I’m not sure what you have tried yet but the main repository has both modules for git support being:

Alternatively, if you wish to use vscode extensions for additional git support (such as [github pull-requests and issues](https://open-vsx.org/extension/GitHub/vscode-pull-request-github, or gitlens), you’ll need to replace @theia/git in your application with the appropriate vscode builtin plugins being:

1 Like

thanks~

@vince-fugnitto Do I understand correctly that adding git and git-ui are the only necessary steps to have theia support vscode-pull-request?

I get the following error when doing so:

root ERROR [hosted-plugin: 52684] Activating extension 'GitHub Pull Requests and Issues' failed: { Error: No authentication provider 'github' is currently registered.
    at AuthenticationServiceImpl.<anonymous> (http://localhost:3000/bundle.js:29308:27)
    at step (http://localhost:3000/bundle.js:28975:23)
    at Object.next (http://localhost:3000/bundle.js:28956:53)
    at http://localhost:3000/bundle.js:28950:71
    at new Promise (<anonymous>)
    at ../node_modules/@theia/core/lib/browser/authentication-service.js.__awaiter (http://localhost:3000/bundle.js:28946:12)
    at AuthenticationServiceImpl.../node_modules/@theia/core/lib/browser/authentication-service.js.AuthenticationServiceImpl.getSessions (http://localhost:3000/bundle.js:29300:16)
    at AuthenticationMainImpl.<anonymous> (http://localhost:3000/48.bundle.js:2311:73)
    at step (http://localhost:3000/48.bundle.js:2235:23)
    at Object.next (http://localhost:3000/48.bundle.js:2216:53)

@jeluard it is definitely a pre-requisite, but it does not guarantee support as there may be missing APIs not yet implemented by the framework.

The version referenced in the following pull-request should work correctly: https://github.com/eclipse-theia/theia/pull/8870.

I’m unclear if I have to provide myself a GitHub authentication provider or not. Is it not provided by the builtins plugins? This is what I understand from the comment in getSession here.

I haven’t tried the extension myself, but it looks like it requires some setup?

Looking at https://github.com/eclipse-theia/theia/pull/8870, there does seem to be some extra work required to get a authentication provider working.

1 Like