nebari-dev / nebari-docs

📖 Documentation for Nebari
https://www.nebari.dev
BSD 3-Clause "New" or "Revised" License
14 stars 29 forks source link

[DOC] - Add details on using git in code-server #486

Open kcpevey opened 4 months ago

kcpevey commented 4 months ago

Preliminary Checks

Summary

The VSCode git extension works but there are some nuances about using it within Nebari that may be helpful to know.

Cloning a git repository

If you've never been to VSCode on Nebari before, you'll get the "Welcome Screen". This is the view of the welcome screen on a first login after clicking the git extension on the left sidebar": image

From here, you can "Clone Respository" either through the extension panel on the left OR through the Welcome Screen UI on the right.

Its worth noting that the above workflow is only available on first login since Nebari will remember your previous workspace and will open it instead of the Welcome Screen. You can either get a clean workspace by going to "File" -> "New Window", or try the alternative below.

The other alternative is to go "View" menu -> "Command Pallette" and search for the "Git: Clone" option. image

This will allow you to clone an external git repository: image

After cloning the repositories will appear in the extension UI on the left: image

GitHub login

If you select the option to "Clone from GitHub" you'll be given an opportunity to authenticate to GitHub which will allow you to pull private repos. I was able to go through that process succesfully.

GPG keys

The documentation on the git extension indicates that GPG keys can be used, but I ran into errors with that process. That will need more investigation.

Steps to Resolve this Issue

.

kcpevey commented 4 months ago

A few more details on gpg keys:

VS Code allows the usage of gpg keys, you just need to set Enable GPG signing to True in the settings.

VS Code on Nebari only loads the ~.bashrc, not ~/.bash_profile. GPG signing on Nebari requires running export GPG_TTY=$(tty) which is typically placed in ~/.bash_profile. In order to source the .bash_profile in VS Code terminals you can add this to your settings.json (gpg enabling also shown here for reference):

{
    "git.enableCommitSigning": true,
    "terminal.integrated.defaultProfile.linux": "bash",
    "terminal.integrated.profiles.linux": {
      "bash": {
        "path": "/bin/bash",
        "icon": "terminal-bash",
        "args": ["-l"]
      }
    },
}

This will ensure that bash is the default profile and will source the .bash_profile (based on this post)

settings.json is located at .local/share/code-server/User/settings.json on nebari.

This works well for the "regular" VS Code terminal, but it DOES NOT seem to be working for the "Output" interface of VS Code.

image

More investigation is needed to understand how the "output" interface is different from the "terminal".

kcpevey commented 4 months ago

I thought perhaps the "source control"/git extension was using the automation profile so I also added this to my settings:

    "git.terminalAuthentication": false,
    "terminal.integrated.automationProfile.linux": {
      "path": "/bin/bash",
      "args": ["-l"]
    }

This still didn't get past the GPG error.