Skip to content

Latest commit

 

History

History
76 lines (55 loc) · 2.74 KB

repokitteh.md

File metadata and controls

76 lines (55 loc) · 2.74 KB

RepoKitteh

What is RepoKitteh?

RepoKitteh is a GitHub application that provides an easy way to create, integrate and maintain GitHub bots. It is deployed in GCP and supplied to Envoy under a contract with the CNCF. The application is installed on specific GitHub repositories and interacts with these by receiving webhooks and making GitHub API calls. A root repokitteh.star script tells the application what to do based on the webhook received.

Integration with Envoy

The file repokitteh.star, which resides in the root of the Envoy repository tells RepoKitteh what functionality to use. The file is written in the Starlark language, which is a Python dialect with well defined threading and hermeticity guarantees.

For example, the statement

use("github.com/repokitteh/modules/assign.star")

tells RepoKitteh to use the assign.star module. Similar modules can be integrated in the future into Envoy in the same way.

Current Functionality

Set assignees to issues or pull requests.

Examples:

/assign @someone

Adds @someone as an assignee to the issue or pull request that this comment is made on.

/unassign @someone

Removes @someone as an assignee.

Only organization members can assign or unassign other users, who must be organization members as well.

Demo PR

Requests a a user to recview a pull request.

Examples:

/review @someone

Asks @someone to review the pull requests that this comment is made on.

/unreview @someone

Removes @someone from the reviewers list.

Only organization members can request a review from other users or cancel it, who must be organization members as well.

Demo PR

Wait for activity on an issue or a PR.

Example:

/wait

Sets the label waiting on a PR. When a new commit is pushed the label will be removed.

Demo PR

It is also possible to wait until any comment is submitted and/or a new commit is pushed.

Example:

/wait-any

Sets the label waiting:any on a PR. When a new commit is pushed or any comment is submitted the label will be removed.

Demo PR