Coder Social home page Coder Social logo

doghub's Introduction

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!

doghub's People

Contributors

audstav avatar mallozup avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

doghub's Issues

add org

given an ORG, comment all issue/PR

LOGO searched

if anyone has the motivation of doing a LOGO it would be more then welcome !!

It should have a dog and something related to watch something. Feel free ! ๐Ÿ˜

Let the user decide which action to do on old issue or prs

Commenting an issue or prs is not always suitable, depends on workflow.

Let user decide which action to perform, close and comment, comment only, or label issue with label.

Technically is a matter to implement a map action with this selector which will dispatch action

Handle case when date of issue is Null

Somehow we need to catch if the Issue datetime isn for some reason null

INFO: comparing issue with tolleration time(days) :130
Exception in thread "main" java.lang.NullPointerException
	at org.joda.time.format.DateTimeFormatterBuilder$NumberFormatter.parseInto(DateTimeFormatterBuilder.java:1305)
	at org.joda.time.format.DateTimeFormatterBuilder$Composite.parseInto(DateTimeFormatterBuilder.java:2516)
	at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:925)
	at clj_time.format$parse.invokeStatic(format.clj:160)
	at clj_time.format$parse.invoke(format.clj:156)
	at doghub.core$compare_issue_with_tdays.invokeStatic(core.clj:35)
	at doghub.core$compare_issue_with_tdays.invoke(core.clj:32)
	at doghub.core$comment_all_old_issues.invokeStatic(core.clj:49)
	at doghub.core$comment_all_old_issues.invoke(core.clj:40)
	at doghub.core$_main.invokeStatic(core.clj:59)
	at doghub.core$_main.invoke(core.clj:57)
	at clojure.lang.AFn.applyToHelper(AFn.java:152)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at doghub.core.main(Unknown Source)

improve structure

currently there is a file core. Split it in different namespaces as needed for refactoring

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.