From 779b5bb34f424d6c9a8c944733ab9efd3ad148d9 Mon Sep 17 00:00:00 2001 From: Jose Gracia Date: Wed, 15 May 2024 13:38:26 +0200 Subject: [PATCH] Add git http protocol --- ...est_practise--Connecting_Hawk_to_the_world | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/guides/Best_practise--Connecting_Hawk_to_the_world b/guides/Best_practise--Connecting_Hawk_to_the_world index 5768660..bb71f80 100644 --- a/guides/Best_practise--Connecting_Hawk_to_the_world +++ b/guides/Best_practise--Connecting_Hawk_to_the_world @@ -95,12 +95,43 @@ Git essentially supports two [protocols](https://git-scm.com/book/en/v2/Git-on-t Both protocols can routed through a SOCKS5 proxy. -Two protocols: https and ssh +==**TODO: do we recommend one over the other?**== -Push works with https protocol as well, see below. ### git https protocol +Requirements: + - set up a proxy with ssh as describe in [this section](#setting-up-a-proxy-with-ssh) + - set https proxy variables as describe in [this section](#httpshttp-proxy-variables) + +The https protocol is mostly used to clone public git repositories for read-only access (without the intension to push changes upstream). In these cases, git does not use any kind of authentication. However, git can also use authentication through the https protocol. + +In the simplest case, cloning public repositories without authentication just requires setting up the SOCKS5 proxy and defining the https/http proxy environment variables as explained above. Then just clone with +```bash +# set up proxy with ssh and continue in the terminal which just opened +# set https/http proxy environment variables as describe above, then +hawk> git clone https://github.com:user/project.git + +hawk> git pull +``` + +To access remote repositories with authentication, we recommend using _access tokens_. These access tokens are supported my most repositories. Follow the links to the respective documentation: [github](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens), gitlab, [gitea](https://docs.codeberg.org/advanced/access-token/), etc. + +We recommend to set up dedicated access tokens for access from Hawk. Then work on the repository with +```bash +# set up proxy with ssh and continue in the terminal which just opened +# set https/http proxy environment variables as describe above, then +# set up access tokens for repository +hawk> git clone https://github.com:user/project.git +# enter user name +# enter access token as password + +hawk> git fetch +hawk> git pull +hawk> git push +``` +Any of these commands may ask you for credentials such as username and password. Enter your access code when prompted for the password. You may consider [managing credentials in git](https://git-scm.com/docs/gitcredentials). + ### Git with ssh protocol @@ -136,5 +167,7 @@ git fetch git pull git push ``` +Any of these commands my ask you for credentials to unlock the ssh public key. + Again, we recommend to keep the reverse tunnel open as briefly as possible.