Ryan Rueger

ryan@rueg.re / me.jpg
$ curl -L rueg.re/pgp | gpg --import -

Passwordless Git over HTTP(s) for Overleaf

A cool feature of Overleaf is that you can use it with git: under the project’s menu you can choose Git under the sync options.

This is brilliant if you still prefer the old-school way of writing LaTeX (directly on your computer using $EDITOR) but are collaborating with people who prefer the Overleaf workflow.

However, one minor drawback is that you cannot upload your ssh key for passwordless authentication. This is where git-credential helpers come in.

In your ~/.gitconfig you can define a “helper” for Overleaf. The general block goes as follows

[credential "https://git.overleaf.com"]
  username = <USERNAME>
  helper = "!f() { test \"$1\" = get && echo password=<PASSWORD>; }; f"

The leading ! of the helper command tells git to interpret this as a shell command; which in turn gives us a lot of flexibility. We only need to know that git passes an argument to the helper command which is either get, store or erase. We only need to get the credential value.

Since we may not want our password to be stored in the ~/.gitconfig in plaintext, we can also evaluate a command. For example, if you use pass

helper = "!f() { test \"$1\" = get && echo password=$(pass overleaf); }; f"

or more crudely, directly with gpg

helper = "!f() { test \"$1\" = get && echo password=$(gpg -dq ~/.overleaf.gpg); }; f"

Git is documented very well in general, and using password credential helpers is no exception. Looking under man gitcredentials will likely answer any further questions.

Happy Overleafing via git.