Skip to content

fix: exclude bot actors from the cost table and forked repos from the analysis - #10

Merged
blimmer merged 2 commits into
mainfrom
fix/exclude-bots-and-forks
May 26, 2026
Merged

fix: exclude bot actors from the cost table and forked repos from the analysis#10
blimmer merged 2 commits into
mainfrom
fix/exclude-bots-and-forks

Conversation

@blimmer

@blimmer blimmer commented May 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Two report-accuracy fixes from real-org feedback. First, GitHub App bots (e.g. greptile-apps) were appearing in the engineer cost/people table; they're now excluded. Second, forked repos were inflating the analysis with upstream code the org doesn't own; they're now dropped from the entire crawl, the same way archived repos are.

Review focus

  • Bot detection by __typename, not name. The PR data comes from GraphQL, where a Bot actor's login has no [bot] suffix (REST-only) — which is why the old denylist missed GitHub Apps. We now drop any actor GitHub types as Bot. Trade-off: a bot implemented as a plain machine-user account would still read as User and slip through; that case would need a name denylist.
  • Fork scope is "everywhere," not CVE-only. Forks are filtered in filterRepos alongside archived, so they drop out of toil/backlog/coverage as well as CVE. This protects the toil headline's credibility (no abandoned-fork churn) at the cost of not counting any genuinely-maintained fork.

Commits

  • 3831dd1 — fix: exclude GitHub App bots from the cost table
  • e6fd770 — fix: exclude forked repos from the analysis

blimmer added 2 commits May 26, 2026 09:31
The people/cost table is built from PR data fetched via GraphQL, where a
Bot actor's login has no [bot] suffix (that suffix is REST-only). The old
name-based filter therefore missed GitHub Apps like greptile-apps. Query
each actor's __typename instead and drop anything typed Bot, for mergers,
reviewers, and commenters alike.
Forks inherit upstream code and vulnerabilities the org doesn't own, so
their Dependabot churn and CVE alerts are noise. Capture the repo fork
flag (which the collector wasn't reading) and drop forks in filterRepos
alongside archived repos, removing them from CVE exposure, toil, and
coverage.
@blimmer
blimmer marked this pull request as ready for review May 26, 2026 15:59
@blimmer
blimmer merged commit 7ce42f0 into main May 26, 2026
7 checks passed
@blimmer
blimmer deleted the fix/exclude-bots-and-forks branch May 26, 2026 16:00
jcarver989 pushed a commit that referenced this pull request May 27, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.1.0](v0.0.1...v0.1.0)
(2026-05-26)


### Features

* add interactive prompts and report sharing
([#4](#4))
([23e8543](23e8543))
* bootstrap repo
([57653df](57653df))
* CLI entrypoint and project docs
([073dccb](073dccb))
* core infrastructure — Context, IO, GitHub client, analytics
([edd14ac](edd14ac))
* data collectors and dependency-bump heuristics
([2ef4ad3](2ef4ad3))
* React report web UI and build script
([00dd2ec](00dd2ec))
* refocus the report on engineer toil and polish the UI
([#9](#9))
([ae6853f](ae6853f))
* report aggregation, cost model, bundling, and HTML render
([376adb8](376adb8))
* waitlist via upload
([#12](#12))
([b2050e3](b2050e3))


### Bug Fixes

* allow setting numberstepper directly
([367beb8](367beb8))
* double counting reviewers and mergers
([2cfa24e](2cfa24e))
* exclude bot actors from the cost table and forked repos from the
analysis
([#10](#10))
([7ce42f0](7ce42f0))
* improved sources
([#13](#13))
([010a11a](010a11a))
* streamline CLI share prompts
([#11](#11))
([066465c](066465c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: contextbridge-pr-automation[bot] <259134118+contextbridge-pr-automation[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant