Skip to content

πŸŽ‰ Triage Party: massively multi-player GitHub triage πŸŽ‰

License

Notifications You must be signed in to change notification settings

masihtehrani/triage-party

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Triage Party πŸŽ‰

NOTE: This is not an officially supported Google product

Triage Party is a tool for triaging incoming GitHub issues for large open-source projects, built with the GitHub API.

screenshot

Triage Party focuses on reducing response latency for incoming GitHub issues and PR's, and ensure that conversations are not lost in the ether. It was built from the Google Container DevEx team's experience contributing to popular open-source projects, such as minikube, Skaffold, and Kaniko.

Triage Party is a stateless Go web application, configured via YAML. While it has been optimized for Google Cloud Run deployments, it's deployable anywhere due to its low memory footprint: even on a Raspberry Pi.

Features

  • Queries that are not possible on GitHub:
    • conversation state (tag: recv, tag: send)
    • how long since a project member responded (responded: +15d)
    • duration (updated: +30d)
    • regexp (label: priority/.*)
    • reactions (reactions: >=5)
    • comment popularity (comments-per-month: >0.9)
    • duplicate detection
    • ... and more!
  • Multi-player mode: Supports up to 20 simultaneous players in group triage
  • Easily open an entire group of issues into browser tabs (must accept pop-up dialog)
  • Queries across multiple repositories
  • "Shift-Reload" for live data pull

Triage Party in production

See these fine examples in the wild:

Requirements

Try it!

Store a GitHub token some place on disk:

echo YOUR_GENERATED_TOKEN > $HOME/.github-token

Run:

go run cmd/server/main.go \
  --github-token-file=$HOME/.github-token \
  --config examples/generic-kubernetes.yaml \
  --repos kubernetes/sig-release

You will now see a constant stream of output as Triage Party is pulling content from GitHub. The first time a new repository is used, it will require some time (~45s in this case) to download the necessary data before minikube will render pages.

The site is now available at http://localhost:8080/, but will initially block page loads until content has been locally cached. After the first run, pages are rendered from memory within ~5ms.

Usage Tips

Triage Party can be configured to accept any triage workflow you can imagine. Here are some tips:

  • Use the drop-down labelled Solo on the top-right to enable multi-player mode
  • Use the blue box with arrow icon to open issues/pull requests into a new tab
    • The first time you click this, your browser will block pop-ups!
    • The notification to allow-popups may be hidden in the URL bar.
  • Rules work best when there is a documented resolution to remove it from the list
  • Pages work best if the process is defined so that the page is empty when triage is complete
  • If an non-actionable issue is shown as part of a daily or weekly triage, step back to tune your rules and/or define an appropriate resolution.

Configuration

YAML-based. See the configuration guide.

Deployments

Triage Party can be deployed on anything from Google Cloud Run to https://kubernetes.io/, or even a Raspberry Pi running https://www.netbsd.org/.

See the deployment guide for more information.

About

πŸŽ‰ Triage Party: massively multi-player GitHub triage πŸŽ‰

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 93.1%
  • CSS 4.2%
  • Dockerfile 1.4%
  • Shell 1.3%