Skip to content

IgorPerikov/mighty-watcher

Repository files navigation

Codacy grade Codecov Travis (.org) GitHub Docker Pulls

Mighty Watcher

Finds issues available for contributing, based on repositories you starred

Table of contents

Search criteria

  • Non-assigned
  • Open
  • Was updated less than N days ago(configurable, see how-to)
  • Labeled as help wanted or similar, all labels can be found here
  • Starred by account, which issued API access token. If you are lacking starred repositories, there are some advices here

How to use

  • Install Docker
  • Obtain github API access token. You could generate it by going to your GitHub personal access tokens page. Mighty Watcher requires no scopes. I'd recommend you to put API token in env variable (e.g. MIGHTY_WATCHER_GITHUB_TOKEN) rather than passing it around everytime.
  • Set environment variables in docker run command:
name description required default behaviour
TOKEN GitHub API access token ✔️
INCLUDE Comma-separated language names(in lower case) to be included, nb only main language counts ✖️ include all languages
DAYS Days since last issue update to be included ✖️ 90
PARALLELISM Parallelism level for fetching data from github, more details below ✖️ 10
EXCLUDE Comma-separated repositories to be excluded from search, following $repo/$name template, e.g. IgorPerikov/mighty-watcher ✖️ none will be excluded
  • Launch Docker container from terminal:
  docker pull igorperikov/mighty-watcher:latest
  docker run -e TOKEN=$MIGHTY_WATCHER_GITHUB_TOKEN --rm igorperikov/mighty-watcher:latest

Privacy policy

I do not track a thing about you. Your api token in absolute safety - you can check this by codebase or by tcpdumping the outcome traffic - application will communicate only with github api server via https. The only thing I can see is amount of docker image pulls (not runs!), it is provided by docker hub

Lacking starred repositories?

Limitations

Github rate limiting

Github lets you make up to 5000 API calls per hour and I am limiting amount of processed repositories to 1000. So if you have more than 1000 starred repositories you should split requests by 1 language via INCLUDE variable to fit into limits. If you have more than that or still hitting some limits - please contact me, I haven't thought about it thoroughly.

Api abuse detection

PARALLELISM variable defines amount of threads to use to fetch data from Github. If you're hitting some limits, set lower amount and try again in a few minutes. You can increase this value too if no error occurs to get results faster, but chances are high that you will trigger api abuse mechanisms. I warned you ⚠️

Contribution

How to build

Kotlin style guide is predefined Kotlin style guide from Intellij Idea settings.

Unit testing

  • ./gradlew clean test

E2E testing

  • Build new docker image locally docker build -t igorperikov/mighty-watcher:local .
  • Launch it via docker command

Issues labeling

  • Contribute your own labels, if list misses any
  • Put labels on issues in your repositories if you want to get some help
  • Spread the word!

Roadmap

Contact me

For general feedback please proceed to the feedback issue. If something doesn't work as expected or you have a feature request - don't hesitate to create new issue