Coder Social home page Coder Social logo

jwcesign / gitautomator Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 1.0 125 KB

A smart automated GitHub bot for managing GitHub projects.

Home Page: https://github.com/apps/gitautomator

License: MIT License

Dockerfile 1.38% Python 98.62%
auto-comment auto-labeling auto-merge automation github-bot open-source

gitautomator's Introduction

logo

A smart automated GitHub bot for managing GitHub projects.

❤️ Introduction

GitAutomator responds to various events in your repository, acting as a smart assistant to enhance maintenance efficiency.

💾 Installation

Visit the relevant GitHub APP page to install GitAutomator. After installation, comment /cat on an issue or PR to check its functionality.

⛵ Plugins and Functions

Name Description
cat To verify if GitAutomator functions properly with your repository, use the /cat command in an issue or PR
ailabel GitAutomator will utilize ChatGPT to label an issue or PR based on the labels in your repository and the issue/PR content
aireleasenote GitAutomator checks the release note block[1], assesses its appropriateness, and provides notifications
approve GitAutomator will approve and merge a PR when the maintainer comments /approve
cherrypick GitAutomator will cherry-pick the commits of the PR to another <target_branch> when the maintainer comments /cherry-pick <target_branch>
label GitAutomator will add <target_label> to the PR or issue when an account comments /label <target_label>
prcomment GitAutomator will post a thank you comment when a new PR is submitted
prlabel GitAutomator will label a PR based on its title; it will label a title prefixed with fix as bug, doc as documentation, and feat as enhancement
prreact GitAutomator will react with a heart when a new PR is submitted
prreviewrequest GitAutomator will automatically request reviews from the maintainers configured in .github/gitautomator.yaml
  • [1]: The PR body should contain the following block:

    This could work excellently if you're looking to automatically generate polished release notes. Feel free to use this template for your PR.

📃 Configuration

You can define the specific behavior by configuring the .github/gitautomator.yaml file in your repository. The complete configuration is as follows:

owners:
- jwcesign # This identifies the maintainer of this repository. GitAutomator will request reviews from them for any new PR.
plugins:
- cat # This identifies the plugins to enable. If left blank, all plugins will be enabled.

🚀 Self Hosting Guide

Use the official GitHub App to manage your code repository. You can also deploy this App on a self-hosted server. Here are the detailed instructions.

Create GitHub App

First, you need to create a GitHub app. GitHub itself documents this. Below is the set of permissions needed.

Repository permissions:

  • Commit statuses: Read and write
  • Contents: Read and write
  • Merge queues: Read and write
  • Metadata: Read-only
  • Pull requests: Read and write
  • Issues: Read and write

In Subscribe to events select following events:

  • Commit comment
  • Issue comment
  • Issues
  • Label
  • Merge group
  • Merge queue entry
  • Pull request

Obtain App ID and Private Key

After creating a GitHub App, download the private key as app.pem in the current directory and remember the App ID.

Create a Webhook Channel

Visit https://smee.io to create a new channel, and remember the webhook proxy URL.

Configure GitHub App Webhook URL

Navigate to the GitHub App settings page, and fill the App's webhook URL field with the Smee webhook proxy URL.

Launch the Service

  1. Clone repository:
git clone https://github.com/jwcesign/gitautomator.git
  1. Export the necessary environment variables:
export APP_ID=xxx
export SMEEIO_URL=xxx
export CHATGPT_URL=https://api.openai.com/v1 # you can set another URL
export OPENAI_KEY=xxx # your OpenAI secret key
  1. Run the container service:
docker-compose up -d
  1. Enjoy your time!

🤝 Contribution

If you are interested in participating in joint development, welcome to STAR/FORK/PR.

gitautomator's People

Contributors

jwcesign avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

nasa03

gitautomator's Issues

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.