Skip to content

GitHub clone entirely written in Elixir.

License

Notifications You must be signed in to change notification settings

md-web-app/gitgud

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Git Gud

A GitHub clone written in Elixir with almost no-dependencies.

  • Git HTTP and SSH support.
  • User authentication and permissions.
  • Fully integrated GraphQL API.
  • Customizable Webhooks.
  • Native (NIF) implementation of Git commands.
  • Customizable Git storage backend.
  • Issue tracker, code review, continuous integration, ...

Install dependencies

First, ensure you have Git and libgit2 installed on your system:

OSX

brew install libgit2

Ubuntu

sudo apt-get install libgit2-dev

The former is necessary in temporarily because git-upload-pack and git-receive-pack server side commands use Erlang ports to execute the correspondent binaries. In future versions, those functions will be implemented natively and the dependency to Git will not be required anymore.

Generate SSH public keys

In order to provide SSH as a Git transport protocol, you must generate a valid SSH public key for the server:

ssh-keygen -t rsa -f /tmp/ssh-keys/ssh_host_rsa_key

In your config/config.exs file, add following entry:

config :gitgud, :ssh_key_dir: "/tmp/ssh-keys"

About

GitHub clone entirely written in Elixir.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 59.9%
  • C 35.4%
  • JavaScript 3.0%
  • HTML 1.5%
  • Other 0.2%