/doghub

a functional stale bot for Github Issue and PRs.

Primary LanguageClojureGNU General Public License v3.0GPL-3.0

doghub

Doghub monitors stale Issues and Pull Requests for your different Github projects in a private and centralized manner. You can use doghub for both your personal and professional projects.

Table of Contents

Why use doghub?

  • Allows maintainers to be independent without the need for an external service in their repo (instead you can use a token and manage the daemon yourself on your server)

  • Offers full centralized control over your project(s)

Main features:

  1. Doghub will comment on stale Issues and PRs. You can configure a limit for the number of days a PR or an issue can remain inactive on the repo. (At present, this is the only feature in doghub. In the future, there is a plan to support a custom handler, which will let the user decide to apply a specific action for stale issues (e.g., close, comment, label etc.))

  2. Doghub can work either with a list of repositories or a list of organisations. (An organisation can own multiple repositories, while a repository relates to one project)

Quickstart

  1. Create doghub.edn file:
{

  :github-config {
     :token "my-token"
  }

    
  :repositories ["MalloZup/missile", "MalloZup/doghub"]
  	;; the list of Github repositories that you want monitored in terms of stale Issues and PRs

  :issue-days 130 
  	;; the number of days that an issue can remain inactive

  :prs-days 2 
  	;; the number of days for Pull-requests to remain unactioned. PRs older than this will require action.


 ;; by default doghub will create a comment on the issue or PR. You can customize the prefix message.


 :prefix-msg "autogenerated with https://github.com/MalloZup/doghub: "


 ;; the message is composed of prefix-msg + std-msg.  std-msg will be " the PR/issue is older than 'x'(10) days. 
  
 ;; the bot will just update the comments.  RATE-LIMITING will be logged in case requests exceed a specified limit.


}

Instead of a list of repositories you can also use a list of organisations (see the doghub.edn.example config file).

  1. Start the daemon:

java -jar doghub-VERSION-standalone.jar

The configuration file should be in the same dir where you start the daemon. Otherwise use the ENV variable CONFIG_FILE_PATH to setup a config file from another location.

If you use doghub, feel free to add a PR of your project!