October 7, 2026

Branch coverage

Improvements
  • We now show branch coverage next to line coverage. Line coverage tells you whether a line ran. Branch coverage tells you whether every outcome of a decision ran, for example both sides of an if. There is nothing to turn on in OtterWise: if your Clover or Cobertura report has branch data, we read it on every upload. Line coverage stays the main Code Coverage number, and status checks still use it. Read the branch coverage docs to see which tools write branch data and how to enable it.

  • You can find branch coverage in these places, when your reports include it: a Branches column in the file list, a Branch Coverage tile on the repository, commit and pull request pages, a branch coverage line in the coverage chart (click the tile), a Branches row in the pull request comment, and a Branch Coverage option for the dashboard statistics. Where we can compare with a base, we also show the change.

  • The file viewer now marks lines that ran but did not take all of their branches as partly covered, in amber. Hover over the line number to see, for example, "1 of 2 branches covered". Partly covered lines have their own counter and jump buttons at the top of the file, and their own color in the minimap. For Cobertura reports with method data, each method also shows its branch coverage.

  • Per-line branch data needs a report that writes it: Cobertura from coverage.py, Istanbul (Jest, Vitest, nyc, c8), gcovr and Coverlet, or Clover from Istanbul. PHPUnit and Pest write branch data per file (Clover) or as rates per file and method (Cobertura), but not per line. Files without branch data show "—", not 0% or 100%.

  • The API now returns branch coverage too: branch_coverage, branches_total and branches_covered on commits, branch in the repository coverage overview, branch_coverage in analytics trends, and per-line branches in the file coverage endpoints.


We regularly update our changelog in an effort to improve transparency into the development process. If you have any questions or feedback, please don't hesitate to contact us.

If you are a user of OtterWise already, or have been reading our blog, you might already know that we take privacy extremely serious, even when it comes to protecting your code as if it was sensitive personal information, this goes for everything we do, which is why we publish changelogs for even smaller updates, rather than just major releases.

Our weekly digest for OtterWise users also includes our changelog in the bottom (see related changelog), to keep you up-to-date with the latest changes.

Ready when you are

Ship better code faster, with confidence.

PR comments, status checks, line annotations, and trends, all without code access. Free for public repos; per-repo pricing for private repos.