#+TITLE: ssh-key-to-forge
Upload a publich SSH key to GitHub and Gitea.
** Configuration
All the information are expected to be stored in the global =gitconfig=.
The following keys are required:
- =github.user=: name of the user on GitHub
- =github.tokensshtoforge=: the API token to use (you might want to restrict the token to only access the SSH keys, with read/write permissions)
- =gitea.url=: URL of the Gitea instance
- =gitea.tokensshtoforge=: the API token to use
#+begin_src sh
; git config --global github.user
fcuny
; git config --global github.tokensshtoforge
<API TOKEN>
; git config --global gitea.url
https://git.fcuny.net
; git config --global gitea.tokensshtoforge
<API TOKEN>
#+end_src
** Run
Once you've build the command, you can run =ssh-key-to-forge= without any arguments if the public key is stored under =$HOME/.ssh/id_rsa.pub=. If you need to upload a different key, you can use the =-ssh-key= flag with the path to the key.
The program will ensure it's a proper public key that you're trying to upload. If there's no errors, nothing is printed on =STDERR= or =STDOUT=. If the key is already present, it will not do anything.
*** Errors
Errors are printed on =STDERR=. The only error that is considered fatal is if the ssh key is not a valid public key.