All Projects → google → Triage Party

google / Triage Party

Licence: other
🎉 Triage Party: massively multi-player GitHub triage 🎉

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Triage Party

Django Dash
Customisable, modular dashboard application framework for Django.
Stars: ✭ 337 (-9.89%)
Mutual labels:  dashboard
Airframe React
Free Open Source High Quality Dashboard based on Bootstrap 4 & React 16: http://dashboards.webkom.co/react/airframe
Stars: ✭ 3,659 (+878.34%)
Mutual labels:  dashboard
Vudash
Powerful, Flexible, Open Source dashboards for anything
Stars: ✭ 363 (-2.94%)
Mutual labels:  dashboard
Natsboard
Dashboard for monitoring NATS (an open source messaging system)
Stars: ✭ 339 (-9.36%)
Mutual labels:  dashboard
Gitlab Monitor
A web-based monitor dashboard for GitLab CI
Stars: ✭ 343 (-8.29%)
Mutual labels:  dashboard
Tailwind Starter Kit
Tailwind Starter Kit a beautiful extension for TailwindCSS, Free and Open Source
Stars: ✭ 4,434 (+1085.56%)
Mutual labels:  dashboard
Parse Dashboard
A dashboard for managing your Parse Server Apps
Stars: ✭ 3,534 (+844.92%)
Mutual labels:  dashboard
Leaa
Leaa is a monorepo restful CMS / Admin built with Nest.js (@nestjsx/crud, node.js) and Ant Design.
Stars: ✭ 375 (+0.27%)
Mutual labels:  dashboard
Angular Material Dashboard
A material-design dashboard by using angular
Stars: ✭ 347 (-7.22%)
Mutual labels:  dashboard
Hygieia
CapitalOne DevOps Dashboard
Stars: ✭ 3,682 (+884.49%)
Mutual labels:  dashboard
Kbn network
Network Plugin for Kibana
Stars: ✭ 339 (-9.36%)
Mutual labels:  dashboard
Go Project Sample
Introduce the best practice experience of Go project with a complete project example.通过一个完整的项目示例介绍Go语言项目的最佳实践经验.
Stars: ✭ 344 (-8.02%)
Mutual labels:  dashboard
Coreui Free Laravel Admin Template
CoreUI Free Laravel Bootstrap Admin Template
Stars: ✭ 353 (-5.61%)
Mutual labels:  dashboard
Kubeview
Kubernetes cluster visualiser and graphical explorer
Stars: ✭ 335 (-10.43%)
Mutual labels:  dashboard
Shards Dashboard Vue
A free Vue admin dashboard template pack featuring a modern design system and lots of custom templates and components.
Stars: ✭ 363 (-2.94%)
Mutual labels:  dashboard
Minera
Minera is a web interface to monitor and manage mining devices
Stars: ✭ 337 (-9.89%)
Mutual labels:  dashboard
Mozaik
Mozaïk is a tool based on nodejs / react / redux / nivo / d3 to easily craft beautiful dashboards
Stars: ✭ 3,546 (+848.13%)
Mutual labels:  dashboard
Appmetrics Dash
A data visualizer that uses " Node Application Metrics" (appmetrics) to monitor and display Node.js application data as a html web application.
Stars: ✭ 377 (+0.8%)
Mutual labels:  dashboard
Machinery
State machine thin layer for structs (+ GUI for Phoenix apps)
Stars: ✭ 367 (-1.87%)
Mutual labels:  dashboard
Atlantabot
🤖 Another powerful Discord Bot with a web-dashboard used by more than 130k users!
Stars: ✭ 362 (-3.21%)
Mutual labels:  dashboard

Triage Party: massively multi-player GitHub triage 🎉

NOTE: This is not an officially supported Google product

Triage Party is a stateless web app to optimize issue and PR triage for large open-source projects using 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 configured via YAML, and designed for projects to self-host on anything from a Raspberry Pi, Google Cloud Run, or Kubernetes.

Table of Contents

Novel Features

  • Multiplayer mode: Up to 20 simultaneous players in group triage
  • Conversation direction tracking and filtering
  • Query across GitHub projects or repositories
  • Duplicate issue detection
  • Filters that are not possible on GitHub:
    • Follow-up latency by project members (responded: +15d)
    • Reactions (reactions: >=5)
    • Comment popularity (comments-per-month: >0.9)
  • Code review state-tracking (v1.2.0+)
  • Kanban dashboard (v1.2.0+)
  • Easily open groups of issues into browser tabs
  • YAML configuration for all pages, rules, and filters
  • GitHub Enterprise support (via --github-api-url cli flag)
  • Low latency (yet able to pull live data)

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 config/examples/kubernetes.yaml \
  --repos kubernetes/sig-release

If you do not have Go installed, you can run Triage Party using Docker:

export GITHUB_TOKEN="$(cat $HOME/.github-token)"
docker build --tag=tp .
docker run \
  --rm \
  -e GITHUB_TOKEN \
  -v "$PWD/config/examples/kubernetes.yaml:/app/config/config.yaml" \
  -p 8080:8080 tp

You can also use Personal Access Token from the GitHub CLI to run the application:

export GITHUB_TOKEN=$(grep oauth_token ~/.config/gh/config.yml| cut -d ":" -f 2 | sed "s/ //g")
docker build --tag=tp .
docker run \
  --rm \
  -e GITHUB_TOKEN \
  -v "$PWD/config/examples/kubernetes.yaml:/app/config/config.yaml" \
  -p 8080:8080 \
  tp

You'll see logs emitted as Triage Party pulls 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. Your new Triage Party site is now available at http://localhost:8080/, but will initially block page loads until the required content has been downloaded. 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:

box-with-arrow screenshot

  • Use the blue box-with-arrow icon to open issues/pull requests into a new tab
    • If nothing happens when clicked, your browser may be blocking pop-ups
    • The notification to allow-popups for Triage Party 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.

Multi-player mode

multi-player mode

Use the drop-down labelled Solo on the top-right of any page to enable multi-player mode. In multi-player mode, the number of issues are split among the number of players you have configured. Since Triage Party is state-less, players are assigned via the remainder of the issue or PR divided by the total number of players. Here is a workflow that we have seen work well for triage parties:

  1. Wait for attendees to show up
  2. The meeting host selects the appropriate number of players, and shares the resulting Triage Party URL
  3. If someone is showing up later, we may leave a slot open and re-shard later if they do not appear
  4. The meeting host assigns each attendee a player number
  5. Players move section by section, using the "open items in new tabs" feature to quickly work through issues
  6. When a player does not have the context necessary to resolve an item, they present their screen and discuss it with the other players
  7. When a player leaves, the meeting host "re-shards", and all players select the updated player count in the drop-down

NOTE: Multi-player works best if the "Resolution" field of each rule has a clear action to resolve the item and remove it from the list.

Kanban mode (NEW)

kanban mode

In v1.2.0, pages can now be displayed as a Kanban dashboard. The columns are based on the rule the issue was fonud in, and the rows are swim-lanes based on the assignee. To see a real-world example:

Best practices for designing a useful Kanban dashboard:

  • Rules should be designed and ordered in a way that represents progress: Not started -> Started -> Under Review -> Completed
  • Rules work best when they are mutually excusive (no issue matches multiple rules)
  • If a collection should be displayed in Kanban form by default, specify display: kanban in its configuration.
  • For velocity measurements and time estimate support, create a rule named __velocity__ containing recently closed issues to include. See the example configuration.

Data freshness

age screenshot

With the default Dockerfile, Triage Party refreshes data at least every 8 minutes, settable using the --max-refresh flag. Triage Party will give popular pages a higher refresh rate, up to every 30 seconds by default (settable using --min-refresh flag). This default is conservative, allowing Triage Party to work with repositories containing 10,000 open issues without hitting GitHub API limits.

Live data can be requested at any time by using forcing a refresh in their browser, typically by holding the Shift button as you reload the page. See forced refresh for your browser.

You can see how fresh a pages data is by mousing-over the "unique items" text in the top-center of the page.

Documentation

Thirsting for more? See:

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].