Plowman: a gitmouth alternative

149 views
Skip to first unread message

Éverton Ribeiro

unread,
May 23, 2013, 12:57:49 PM5/23/13
to open...@googlegroups.com
Hi,

In the last month, came round working in a alternative to gitmouth: https://github.com/azukiapp/plowman

Basically it is an implementation that takes advantage of the libraries, performance and properties of distributed Erlang to implement exactly the same function gitmouth. We were motivated by the issues outlined in: https://groups.google.com/d/msg/openruko/13x_2MpRY6Y/4GnkJRTpOA0J, and also by our idea of building more parts of the architecture using the Erlang VM.

We are using in our tests a few weeks and we are pleased with the results, both in performance, stability and compatibility with the architecture openruko.

Running over the Erlang VM, but implemented in http://elixir-lang.org, a functional language (with some resemblance to ruby), which in addition to offering a more pleasant syntax and a basic library fuller, ends up facilitating the development of the Erlang ecosystem.

Every kind of help is welcome, whether with code, ideas or opinions.

Hugs

Jeff Lindsay

unread,
May 23, 2013, 1:11:37 PM5/23/13
to Éverton Ribeiro, openruko
I still don't get why you guys are making such OpenRuko specific solutions for this. It's a great component, make it general. Then we can use it for other things. Take a look at gitreceive as a trivial example of an actual standalone component that *could* be used with OpenRuko, as well as any other system for any other purpose.


--
You received this message because you are subscribed to the Google Groups "OpenRuko" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openruko+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Jeff Lindsay
http://progrium.com

Éverton Ribeiro

unread,
May 23, 2013, 1:31:55 PM5/23/13
to open...@googlegroups.com, Éverton Ribeiro
Hi Jeff

I agree with you that it is best to make this more generic type of component, modularizing and parameterizing key checks and the process called git-shell, but our time is limited and resources are few, as a staturp our focus at the moment is have a functional system.

I have several ideas on how to make it more generic and suggestions are welcome.

Note: it could even be extended to become a ssh load balance, regardless of git.

Jeff Lindsay

unread,
May 23, 2013, 2:33:46 PM5/23/13
to Éverton Ribeiro, openruko
Yeah, if you have the performance down you could split out a load balancer into a separate component. If I get an excuse or need something more scalable than gitreceive, I'll look into contributing. Interested in playing with Elixir.

And I didn't mean to sound too negative. It's a cool project, nicely done. :)

-jeff

Romain

unread,
May 24, 2013, 3:28:02 AM5/24/13
to Jeff Lindsay, Éverton Ribeiro, openruko
Hi,

I tried the same thing in go (https://github.com/Filirom1/gogit) but soon I realized that the ssh library was too restrictive for gitmouth. I achieve gogit by patching the ssh library :-/ 

I still consider this implementation experimental.

If you guys come with a better implementation with plowman, feel free to update the chef recipes to replace the old gitmouth ;)

Did you handle the following situation ?
  • Pass SIGTERM, SIGKILL through to dyno

  • Flow control using SIGCONT/SIGSTOP

  • Max timeout Kill the event chain after X minutes

  • Brute force attacks - Limit connections by user/IP

  • Locking - only one concurrent commit per repository

Cheers
Romain


2013/5/23 Jeff Lindsay <prog...@gmail.com>

Éverton Ribeiro

unread,
May 24, 2013, 12:01:24 PM5/24/13
to Romain, Jeff Lindsay, openruko
Hi Romain,

I sought inspiration in your implementation when we started to working on plowman.
It's a pity you can not move forward with this approach, I like golang :D

About the chef, we have more to report, but go to make this in other thread.

Now about the situations that you raised, I think more work is needed. In particular the questions of security. In addition we have two more things:

- More log messages, like in gitmouth;
- Better use of Erlang distribution features;

Cheers

-- 
Everton Ribeiro
Azuki - Co-founder
cel: +55.11.963.643.154

Reply all
Reply to author
Forward
0 new messages