redrabbit / git.limo

A Git source code management tool powered by Elixir with easy installation & high extensibility.
https://git.limo
MIT License
497 stars 42 forks source link

Move Gitrekt into own repo #83

Open kloenk opened 2 years ago

kloenk commented 2 years ago

We are currently also looking at writing an git forge with elixir. We favor some different designs, like not using the erlang ssh module, indieweb integration and a plain json api.

If you could move gitrekt into its own repo, we could work on that part together.

redrabbit commented 2 years ago

Hi @Kloenk, the :gitrekt app is currently part of an umbrella application and could definitely be moved to it's own repository and Hex package. The interface is clean and can be used a a basic building block for Git related projects.

Note that you will have to implement your own SSH, HTTP(S), etc. transport protocols around GitRekt.WireProtocol. Also have a look at the GitRekt.GitRepo protocol and the GitGud.Repo and GitGud.RepoPool implementation. See #38 for more details.

I don't have much time left currently to work on this right now (christmas coming and professional projects to finish). But I will come back to this issue later on and try to get things moving.

Also, note that the :gitrekt app has currently no unit-tests at all. I'd like to implement a test helper module built-around System.cmd/3 to run git command and add unit and integration tests for GitRekt.Git, GitRekt.GitAgent, etc.

kloenk commented 2 years ago

Yep already created a test repo to play with it. But I think I will use gitaly, as ist rpc calls and has many helpful features. Just have to teach it that I'm not a gitlab server :)

mekeor commented 2 years ago

I would love to be able to use Gitrekt independently from GitLimo. That'd be a great contribution to the Elixir community as there no other good binding to Git for Elixir so far, AFAIK.

hrefhref commented 2 years ago

@mekeor You can easily use Gitrekt independently already. Drop

{:gitrekt, git: "https://github.com/almightycouch/gitgud", branch: "master", sparse: "apps/gitrekt"}

in your mix deps :)

pepicrft commented 1 year ago

Yep already created a test repo to play with it. But I think I will use gitaly, as ist rpc calls and has many helpful features. Just have to teach it that I'm not a gitlab server :)

@kloenk, what has been your experience with Gitaly? I'm building a localization platform with Git in its core, and I was debating between using Gitaly or building something on Elixir/Erlang.

kloenk commented 1 year ago

I sadly hat not much more time, working on it, so not sure of the current state. It looked usable, but some quirks to work around