Hi Igniters, I've built a small tool that answers one question about a pull request: which test failures are actually caused by the change, and which were already broken or flaky before it.
https://ignite-pr-checker.is-a.dev What it does: * Analyses the PR's latest RunAll on TeamCity (ci2) and splits the failed tests into: - blockers: fail consistently in the branch's recent runs and never fail in the last ~100 master runs — attributed to the PR; - recently started failing: a fresh break to watch, not yet steady; - filtered noise: pre-existing on master or flapping on the same code. * Shows suites that didn't produce a reliable run (compilation, execution timeout, OOM, interrupted chain) separately instead of mining them for bogus failures. * Verdicts update live while a RunAll is still running — failures of already-finished suites are folded in, no need to wait ~4h for the chain. * Groups blockers by root cause (one broken thing often shows up as dozens of failing tests), with pass/fail history strips per test. * Can trigger RunAll / re-run individual suites or whole sections right from the page, and post the verdict ("visa") as a comment to the IGNITE ticket — manually, once on run completion, or automatically for every run you trigger (opt-in). * A "flaky tests" page keeps a fix-master queue: tests currently failing on master, ranked by fail rate, linked to the failing master runs. How it relates to the TC Bot: same core idea, and on identical builds the verdicts match the bot's. The differences are that it watches all open PRs continuously (no per-request visa needed), reads TeamCity on the fly with no database, and anchors every verdict to the newest finished run. Login is your own ci2 access token; it stays encrypted in your session cookie and is never stored server-side. Everything runs under your account. Source (Apache-2.0): https://github.com/anton-vinogradov/ignite-pr-checker The tool is young and I'd really appreciate feedback — issues, discussions in the repo, or just a reply here. If you find a case where the verdict is wrong or confusing, that's exactly what I want to hear about. Thanks, Anton
