All Projects → pouchcontainer → pouchrobot

pouchcontainer / pouchrobot

Licence: Apache-2.0 license
An AI robot to collaborate in any open source project on GitHub

Programming Languages

go
31211 projects - #10 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to pouchrobot

Gh
Minimalistic GitHub API client in R
Stars: ✭ 153 (+292.31%)
Mutual labels:  github-api
Octohatrack
🐙👒 Show _all_ the contributors to a GitHub repository.
Stars: ✭ 175 (+348.72%)
Mutual labels:  github-api
Metrics
📊 An infographics generator with 30+ plugins and 200+ options to display stats about your GitHub account and render them as SVG, Markdown, PDF or JSON!
Stars: ✭ 4,621 (+11748.72%)
Mutual labels:  github-api
Onestlatech.github.io
✊ Manifeste des travailleuses et travailleurs du numérique pour une autre réforme des retraites
Stars: ✭ 157 (+302.56%)
Mutual labels:  github-api
Beefun Pro
Github client for iOS in Swift.
Stars: ✭ 172 (+341.03%)
Mutual labels:  github-api
Ghapi
A delightful and complete interface to GitHub's amazing API
Stars: ✭ 187 (+379.49%)
Mutual labels:  github-api
Php Github Api
A simple PHP GitHub API client, Object Oriented, tested and documented.
Stars: ✭ 1,914 (+4807.69%)
Mutual labels:  github-api
Builderbook
Open source web application to learn JS stack: React, Material-UI, Next.js, Node.js, Express.js, Mongoose, MongoDB database.
Stars: ✭ 3,015 (+7630.77%)
Mutual labels:  github-api
Githubdb
A Lightweight Cloud based JSON Database with a MongoDB like API for Node.
Stars: ✭ 174 (+346.15%)
Mutual labels:  github-api
Buildapks
Really quickly build APKs on handheld device (smartphone or tablet) in Amazon, Android, Chromebook and Windows📲 See https://buildapks.github.io/docsBuildAPKs/setup to start building APKs.
Stars: ✭ 218 (+458.97%)
Mutual labels:  github-api
Codehub
A UWP GitHub Client
Stars: ✭ 162 (+315.38%)
Mutual labels:  github-api
Auto Green
自动保持 GitHub 提交状态常绿 a commit every day, keep your girlfriend far away.
Stars: ✭ 164 (+320.51%)
Mutual labels:  github-api
Orgmanager
Invite System for GitHub Organizations
Stars: ✭ 196 (+402.56%)
Mutual labels:  github-api
Gh Got
Convenience wrapper for Got to interact with the GitHub API
Stars: ✭ 156 (+300%)
Mutual labels:  github-api
Tentacle
A Swift framework for the GitHub API
Stars: ✭ 244 (+525.64%)
Mutual labels:  github-api
Starring
⭐️ Automatically star the npm-packages that you are using on GitHub.
Stars: ✭ 153 (+292.31%)
Mutual labels:  github-api
Ansibullbot
Bot for management of Ansible issues and PRs on GitHub.
Stars: ✭ 183 (+369.23%)
Mutual labels:  github-api
Jcabi Github
Object Oriented Wrapper of Github API
Stars: ✭ 252 (+546.15%)
Mutual labels:  github-api
Hubcaps
a rust interface for github
Stars: ✭ 245 (+528.21%)
Mutual labels:  github-api
Curiosity
Find Amazing Github Projects ⚡️
Stars: ✭ 216 (+453.85%)
Mutual labels:  github-api

pouchrobot

License GoDoc Go Report Card

Main Links

Introduction

pouchrobot is a cute robot to help collaboration in any open source projects become better. Also there is a GitHub user pouchrobot who is the exact instance of project pouchrobot.

Everyone knows that collaboration of a software project is quite trivial, repeated and time-costing. If owner of a project needs to guarantee the efficiency of development and testing, or releasing, he must invest some human resources there. However, if a robot could do him a favor to automatically handle collaborating affairs, it could bring lots of convenience. Fortunately pouchrobot is such an intelligent robot to take the role of a GitHub user account to automatically do what a human would act manually to manage the project.

NOTE: pouchrobot GitHub user needs to gain some certain access (READ/WRITE) to the target open source project according different features.

Features

pouchrobot could help finish lots of work in open source project on GitHub. If we divide all these practical feature into categories, we can find the following four parts:

  • issue/pull request triage
  • weekly report auto generating via a filed issue
  • some doc auto generation for project via pull request
  • friendly notice for pull request's status change

issue/pr triage

When an active participant files an issue or puts forward a pull request, it would be much better for the community to quickly notice which aspect the issue/pr is related to. Clear information makes community feel more straightforward.

pouchrobot will triage issue/pr into different aspects. The working steps are like following:

  • First, it analyzes the issue body or pull request body to extract useful information.
  • Second, it maps the useful information to some fixed rules.
  • Third, it attached labels of project to the issue/pr.

We can see the real effect (the colored outlined labels) from the following graph.

triage-labels

TODO: we are going to make pouchrobot have abilities to import some certain fixed labels at the very beginning as a step of label initialization.

auto-generated weekly report

Weekly report means something for an open souce project. It conludes what happened in the past week in repo. While collecting these information is quite bothering. The good news is that pouchrobot have the ability to take care of this part via a newly filed issue.

Currently what covered in weekly report are:

  • repo star/watch/fork summary and change
  • pull request update divided into feature, bugfix, doc, test and others
  • code review statistics from community participants
  • contribitors newly joining the project

The following link contains a typical weekly report generated by pouchrobot: Weekly Report of PouchContainer from 2018-10-13 to 2018-10-20.

auto-generated documentation

We know that develops enjoy inventing awesome softwares via codes very much. However, a brilliant software contains not only great codes, but also instrument or document to attract end-users on board.

How about letting document editting be handled by pouchrobot via a pull request?

Currently only three kinds of document are covered:

  • API document generation only for swagger
  • CLI document generation only for golang cobra
  • repo's own CONTRIBUTORS file which records the emails for all contributors

friendly notice for pr's status change

  • notice pull request submitter continuous integration failure via comments from TravisCI and CircleCI(TODO)
  • notice pull request submitter to take a rebase action since too old to the master branch;
  • notice pull request submitter pull request conflict when a conflicting pull request merged into master branch;
  • automatically merge pull request when it meets the condition (TODO);
  • support retest pull request according maintainer's order (TODO);

Access requirement for features

feature Read access Write Access Admin Access
issue/pr triage yes yes no
weekly report generation yes no no
doc generation yes no no
auto notice yes no no

NOTE: attaching labels requires pouchrobot has write access of the repo.

Architecture

pouchrobot acts as a daemon process on a third-party public cloud. When running, it would have three kinds of API communication:

  • receive github webhook of project Pouch when events happen;
  • receive CI system webhooks, like travisCI and circleCI;
  • fetch and deal with object on project, like issue, pull request, comments and so so;

Here is the simple communication architecture of pouchrobot:

Communication Architecture

Quick Start

First of all, let us take a look at the command line usage of pouchrobot:

$ pouchrobot --help
Usage:
  An AI-based collaboration robot applied to open source project on GitHub [flags]

Flags:
  -c, --config string           Config file path for robot (default "config.json")

pouchrobot is totally fitable in running a container. In this repo, we can find a Dockerfile to build the corresponding image. When finishing the building, the following command could help to setup a brand new robot:

pouch run -d -v /root/newssh:/root/.ssh -v /config:/root/config -p 6789:6789 pouchrobot:v1.0 --config /root/config/config.json

You can make your own config file by following the format of config_template.json file

Contributing

You can contribute to pouchrobot in several different ways:

  • To report a problem or request a feature, please feel free to file an issue.
  • Of course, we welcome pull requests and patches. Setting up a local pouchrobot development environment and submitting PRs.

Copyright and License

Copyright © 2017. All rights reserved.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].