Implement keyword subscriptions in the GitHub label notifier

We store per-repository list of keywords in the Firestore - if any of the
keywords are found in the body of the newly opened issue then this is
considered as if the issue was labeled with a specified label.

We plan to use this to get early notifications about dart related issues
filed in the flutter/flutter repository: having words like `gen_snapshot`,
SIGSEGV, etc to notify everybody subscribed to dependency: dart label.

We are not planning to have any UI for editing keyword subscriptions for now.

Change-Id: Ie22342f0a34a46c3165c21f65998439cc5f5d581
Reviewed-on: https://dart-review.googlesource.com/c/dart_ci/+/128861
Reviewed-by: Alexander Thomas <athom@google.com>
5 files changed
tree: 1a18cdbfaa93bc952ae1071cb3bcd1d28ffa8253
  1. appengine/
  2. functions/
  3. github-label-notifier/
  4. results_feed/
  5. .firebaserc
  6. .gitignore
  7. AUTHORS
  8. firebase.json
  9. LICENSE
  10. README.md
README.md

dart_ci

Tools used by Dart's continuous integration (CI) testing infrastructure.

The repository is based at dart.googlesource.com/dart_ci. It is mirrored to github.com/dart-lang/dart_ci. Do not land pull requests on Github.

Results Feed

The results feed is an angular Dart application that displays changed results from the CI and from CQ runs (tryjobs). The code is in the results_feed directory. It is deployed to ci.dart.dev, using Firebase hosting.

Cloud functions

The automated testing of Dart on the CI and CQ publishes results to Cloud Pubsub, and cloud functions triggered by those Pubsub messages process the data and store it in Firestore. These functions are located in the functions directory, and are deployed on the dart-ci Google Cloud project.

Github Label Notifier

Internal users get automatic notifications of new GitHub issues created in certain repositories, by subscribing to issue labels on those repositories. This tool provides a UI for internal users to subscribe to their chosen issue labels. That UI is hosted at dart-github-label-notifier.firebaseapp.com. It also defines cloud functions that are triggered by GitHub webhooks and use the issue label subscriptions to send email notifications using SendGrid.