Git Product home page Git Product logo

dispatcher's Introduction

This project and it's web site is no longer being maintained.

dispatcher

Find potential GitHub projects to contribute to.

Dispatcher is a website that uses the GitHub API to search repos and present those which seem like a good fit to begin contributing to. It was initially created to help me find repos to contribute to on a tight time budget. While looking for such repos I realized this can be harder than it seems. While Dispatcher can't guarantee results, it will help shorten the time it takes to find these repos.

These results can be accessed through a GitHub Page.

Dispatcher looks at several factors all of which are configurable. The goal of the standard configuration is to find active repos with open issues that have accepted pull requests in the past and that do not have too many uncommented open pull requests.

Project Page

Contributing

Please feel free to submit issues, pull request or comments (my email adress is on my GitHub profile).

Generating pages

To generate a new set of pages use gensite.sh and deploysite.sh to deploy them to GitHub. build_and_deploy.sh does both. On first getting the repository, you will have to do a bundle install in the /lib folder.

The scripts are configured to deploy to the master repository and will need to be modified to deploy to a fork. They are also configured to use a .netrc file for GitHub configuration.

dispatcher's People

Contributors

gilles-leblanc 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dispatcher's Issues

Python page generation fails with exception

/home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/octokit-2.3.1/lib/octokit/response/raise_error.rb:16:in `on_complete': GET https://api.github.com/repos/benoitc/couchdbkit/pulls?state=open: 502 - Server Error (Octokit::BadGateway)
    from /home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/faraday-0.8.8/lib/faraday/response.rb:9:in `block in call'
    from /home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/faraday-0.8.8/lib/faraday/response.rb:63:in `on_complete'
    from /home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/faraday-0.8.8/lib/faraday/response.rb:8:in `call'
    from /home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/faraday-0.8.8/lib/faraday/connection.rb:253:in `run_request'
    from /home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/faraday-0.8.8/lib/faraday/connection.rb:106:in `get'
    from /home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/sawyer-0.5.1/lib/sawyer/agent.rb:94:in `call'
    from /home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/octokit-2.3.1/lib/octokit/client.rb:243:in `request'
    from /home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/octokit-2.3.1/lib/octokit/client.rb:125:in `get'
    from /home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/gems/octokit-2.3.1/lib/octokit/client/pull_requests.rb:20:in `pull_requests'
    from /home/bleakcabal/Documents/Programming/dispatcher/lib/pull_request_specification.rb:29:in `has_too_many_long_standing_pull_requests'
    from /home/bleakcabal/Documents/Programming/dispatcher/lib/pull_request_specification.rb:12:in `is_satisfied_by'
    from /home/bleakcabal/Documents/Programming/dispatcher/lib/repository_filter.rb:15:in `block in filter'
    from /home/bleakcabal/Documents/Programming/dispatcher/lib/repository_filter.rb:13:in `select'
    from /home/bleakcabal/Documents/Programming/dispatcher/lib/repository_filter.rb:13:in `filter'
    from /home/bleakcabal/Documents/Programming/dispatcher/lib/repository_downloader.rb:36:in `block in download'
    from /home/bleakcabal/Documents/Programming/dispatcher/lib/repository_downloader.rb:30:in `each'
    from /home/bleakcabal/Documents/Programming/dispatcher/lib/repository_downloader.rb:30:in `download'
    from gen_repos.rb:4:in `<main>'

Add other languages for the repos

Currently the program scans only Ruby projects and the web site has only a Ruby page.

Other languages should be included. Next languages should be Pyhon and Javascript.

Other languages could be added based on popularity and suitabilty, ie: Java, C, etc.

Investigate deprecation message when running gensite.sh

The bash script file gensite.sh generates these deprecation warnings:

DEPRECATED: Client#pull_requests: Passing state as positional argument is deprecated. Please use :state => 'closed'
DEPRECATED: Client#pull_requests: Passing state as positional argument is deprecated. Please use :state => 'open'

Make build and deploy scripts parameterizable.

The build and deploy scripts should be parameterizable so that it is possible to deploy only for a certain programming language.

This will be necessary to avoid hitting the api limits as the number of requests needed to deploy will grow.

Verify if we can read Travis CI build info if present

Certain projects have a Travis CI build status attached to a pull requests. Check if we can read this info.

If we can make a new issue to ignore pull requests that break the build in the long standing pull open pull requests.

Link Ruby projects page from Index

Currently the file ruby.html exists but unless you type it's adress directly you can't access it.

We should have some kind of menu/button/dropdown/links with the different languages (for now only Ruby, but others will be added soon).

Correct stylesheet errors

A first look seems to indicate the problem has to do with some stylesheets being sent over HTTP results in them not loading on certain configs.

Jazz up language pages

With Issue #17 the overall design of the page was greatly enhanced. We should still look to jazz up a bit the language pages.

Link project from projects page

Currently on the Ruby page it display a plain text list of all projects. It should display these as links with text below that present more info about the project (headline, issue count, etc.).

Create new visual design

I have currently used a stock GitHub pages design. While it is good, a custom design could help differentiate the site.

Add switch to deploysite shell script

Add a swtich to deploy site shell script.
-a
For automatic.
This would fill the commit message for the first commit when the switch is present. Currently this is not done because this commit can include other changes and we want to have a meaningful commit message for those.

The reason why we need to switch is because when we call the build and deploy shell script we want to be able to do everything without requiring user input for the commit message.

Filter repository with problematic pull requests status.

A repository with too many pull old pull requests for which no comments have been entered should be filtered out.

We should also look at the history of accepted pull requests to make a decision.

Similar to how we check for activity, we should make sure that a pull request has been integrated during this activity threshold.

Add bundler support

Handle dependencies with bundler.

Currently we have dependencies on:
octokit
netrc

Automate creation of GitHub page

The static Jekyll GitHub page creation (including fetching the necessary data) should be automated so that it could be scheduled.

Reduce number of presented projects

Too much choice is as bad as too little. The goal of the project is to help people rapidly find a project.

Even if after applying all the filters we still have tons of projects/repos, we should limit them to a certain fixed number, say like 20 or 30. The number can be played around a bit.

Rather the selecting the top X element of all repos, the final number could be selected at random. This way, each time the data is updated the list would be different.

Check comments by people other than pull request author

The pull request specification checks for long standing open pull requests with no comments.

It should rather check for long standing pull requests with no comments from people other than the pull request author.

Comments by other people on a pull request could mean it has been reviewed but deemed unfit to merge.

Factor in contributor contribution level

Currently we filter for a max and min number of contributors. This filter should also take into account the number of contributions by a contributor.

For example we should have a minimum number of contributors with a minimum contribution level (which should both be very low).

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.