Giter VIP home page Giter VIP logo

gitdub's People

Contributors

mavam avatar stas00 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gitdub's Issues

Feature Request: Support for non-public repos

I'm using GitDub for a couple of public repos, and it works well. We'd also like to use it for a bunch of repos that are secured. There are a few ways I could do this by converting GitDub to use SSH w/ keys, or continuing to use https by adding user:pass into the command line. Wondered if you'd already thought about this and have a recommended solution.

reread config file upon request

It would be nice if gitdub would (re)read the config file upon receiving a request. This way the configuration could be changed (at least in part, in particular the repositories and email lists) without the need to restart the server. Not only would this eliminate a manual task and a potential pitfall (forgetting to do it), but it would also prevent notifications for incoming changes getting delayed (until the next change of that repo) if they happen to be during the downtime.

adding a note for configuring start/stop service

This issue is a setup documentation enhancement request:

After setting up gitdub I was looking for a quick way to configure it as a system service. I found this repo that has pre-made scripts which require just a few minor tweaks to make them workable. Here is the instructions page with details.

So perhaps it'd save others some time to share how mine was setup:

I used a debian rc.d template which works on ubuntu:

wget https://raw.github.com/frdmn/service-daemons/master/debian -O /etc/init.d/gitdub

Edit /etc/init.d/gitdub

# I placed the gitdub setup under /var/gitdub
NAME="gitdub"
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/var/gitdub"
APPDIR="/var/gitdub"
APPBIN="/var/gitdub/gitdub"
APPARGS="config.yml"
USER="nobody"
GROUP="nobody"

Make sure the script is executable:

chmod +x /etc/init.d/gitdub

Enable the daemon with:

update-rc.d gitdub defaults

Start the service with:

service gitdub start

Stop the service with:

service gitdub stop

I realize that people may use gitdub on various setups, therefore please consider including at least the link to that repo in the gitdub setup section to save others the search.

Thank you for this great tool, Matthias.

similar entries get subject confused

It seems that there is a minor bug with matching entries with shared leading substring. I tried using this configuration:

  - id: fastai/fastai
    subject: '[fastai]'

  - id: fastai/fastai_docs
    subject: '[fastai_docs]'

And all emails were sent with the subject of the first entry. I found a workaround by flipping the order of the two entries, putting the longer one first, and now it works, but this is probably something that needs to be fixed ;)

Thank you.

Is this project still maintained / functional?

I'm seeing:

[2017-02-08 20:54:00] INFO  gitdub | received push from XXXX for commits aba373...4607d9
2017-02-08 20:54:00 - NoMethodError - undefined method `each' for nil:NilClass:
        ./gitdub:80:in `process'
        ./gitdub:158:in `block in <class:GitDubServer>'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `call'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `block in compile!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `[]'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (3 levels) in route!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:994:in `route_eval'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (2 levels) in route!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1015:in `block in process_route'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `catch'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `process_route'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:973:in `block in route!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `each'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `route!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:985:in `route!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1085:in `block in dispatch!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1082:in `dispatch!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `block in call!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `call!'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:895:in `call'
        /var/lib/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
        /var/lib/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
        /var/lib/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
        /var/lib/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
        /var/lib/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
        /var/lib/gems/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
        /var/lib/gems/1.9.1/gems/rack-1.6.5/lib/rack/nulllogger.rb:9:in `call'
        /var/lib/gems/1.9.1/gems/rack-1.6.5/lib/rack/head.rb:13:in `call'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:182:in `call'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:2013:in `call'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `block in call'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1787:in `synchronize'
        /var/lib/gems/1.9.1/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `call'
        /var/lib/gems/1.9.1/gems/rack-1.6.5/lib/rack/handler/webrick.rb:88:in `service'
        /usr/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
        /usr/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
        /usr/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
192.30.252.34 - - [08/Feb/2017:20:54:00 PST] "POST / HTTP/1.1" 500 30

Is this a configuration issue or an issue where something has changed in how github / git-notifier / etc has operators?

Is there any way to get gitdub as a free service for open source projects?

With GitHub deprecating their commit notification email sending service (https://developer.github.com/changes/2018-04-25-github-services-deprecation/) people like me who came to heavily rely on this feature for a lot of their GitHub repos are looking for easy replacements: https://stackoverflow.com/questions/53422244/how-to-get-commit-notifications-by-email-after-january

gitdub seems like a nice way to integrate with the GitHub webhook and send out notification emails on each push. However, I neither have the skills nor the time to set up and maintain a web server just to send out these emails. Is anyone here aware of an easy solution to replicate the notification email functionality to which an open source project can just sign up for free?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.