Refolk
ReferenceSales and go-to-market

The GitHub Buying-Signal Reference: What Each Repo Event Proves

Grade any single repository event - star, fork, issue, PR, dependency add - by intent tier, spot its false positives, and confirm it before a rep touches it.

15 min readLast reviewed August 18, 2026Read as Markdown

A devtool seller sees a single repository event from an account - a star, a fork, an issue, a dependency add - and needs to decide, right now, whether it is worth a rep's time and how it might be lying. This is a lookup reference, not a scoring model: one row per event, with what it proves, its intent tier, its false-positive traps, and the confirmation step. It is for founders selling their own product, account executives, SDR leads, and partnerships teams who want to grade a signal in seconds and leave after reading one row.

Read the section that matches the event in front of you. The tables are the reference; the failure-modes section is the part that keeps you from routing garbage.

What a repository event can and cannot prove

A repository event proves someone touched your category. It does not prove they intend to buy, and the gap between those two things is where deals and wasted rep-hours both live. The job of this reference is to tell you, for each event, how far up the intent ladder it actually reaches.

Vendors converge on a low-to-high ranking of these events. Stars, forks and watches are early-funnel signals; pull requests, issues, commits and dependency adoptions are high-intent mid-funnel signals. Underneath sits an actor-progression model: a developer moves from lurking, to experimenting, to actively seeking a solution, to actively evaluating a product. The event type is a proxy for where the actor sits on that path.

Two cautions before you trust any single row. First, no public source publishes a numeric point value per event type, so exact tier weights are not established. Treat the tiers below as ordinal, not as scores you can sum. Second, the same event means different things in different categories - a point I return to with numbers later.

Where repository events sit in the intent funnel

  1. Awareness (star, watch, doc read)
    high volume

    bookmark-level intent, easy to fake

  2. Experimenting (fork, clone)
    lower volume

    hands-on, harder to fake

  3. Evaluating (issue, PR, dependency add)
    lower still

    active usage or build

  4. Enterprise intent (SSO/SAML request)
    rare

    self-qualifying, security-reviewed buyer

Events narrow from broad awareness signals to rare, self-qualifying decision signals.

The event reference: intent tier, what it proves, how it misleads

Each row below is a single observable event. Read the one in front of you: what it proves, the tier it earns, the trap that inflates it, and the corroborating check that promotes it from a data point to a routable signal.

Star

A star is a bookmark. It proves attention and nothing more; in many cases the starrer never even cloned the repo. Tier: low, awareness-stage. The trap is twofold - it can be a bot (see the authenticity section) or a non-ICP human such as a student or hobbyist. Confirm by requiring a mid-funnel corroborating event before routing, and by filtering the starrer against your ICP on company size and industry.

Fork

A fork proves someone took the code to run, modify, or vendor it. It sits above a star for a structural reason: bots star without forking, which is exactly why a low fork-to-star ratio flags manipulation. Tier: mid, experimenting-stage. The trap is the archival or drive-by fork that never gets touched again. Confirm by checking whether the fork has commits or an open branch, and by resolving the actor's employer.

Watch

A watch proves sustained interest - the actor wants notifications on activity. Tier: low-to-mid, awareness-stage but stickier than a star. Its real value is diagnostic: the watcher-to-star ratio is one of your best fake-star tells. As a per-actor signal it is weak; as a repo-health signal it is strong.

Issue (feature request or bug report)

A detailed feature request or bug report proves active usage. On a competitor's repo it also indicates potential dissatisfaction - someone is using the tool hard enough to hit its limits. Tier: high, decision-stage. The trap is the low-effort or duplicate issue that signals nothing. Confirm by reading the issue: specificity, a reproduction case, or a described workflow is the tell.

Pull request / commit

A PR or commit proves hands-on engagement beyond reading documentation. Integration implementation code demonstrates evaluation, not curiosity. Tier: high, decision-stage. The trap is the trivial typo-fix PR, which proves goodwill but not evaluation. Confirm by reading what the change does and resolving the contributor's employer from the commit email.

Dependency addition

A dependency addition in a package manifest is treated as an adoption decision, not mere interest. Someone wired your category into a build. Tier: high, decision-stage, and often account-level. The trap is a transitive dependency pulled in by something else, or a test-only add. Confirm by checking whether the manifest change is a direct dependency in a real project.

SSO / SAML request

An SSO or SAML feature request is the rarest and most self-qualifying event. Per GitHub's own docs, single sign-on gives organization and enterprise owners a way to control and secure access to organization resources like repositories, issues, and pull requests - a need only larger, security-reviewed buyers raise. Tier: highest, enterprise-decision. It is low volume, so it rarely triggers on its own, but when it does the account is pre-qualified.

Star authenticity: the two ratios that catch a manufactured surge

Before you trust any star-based signal, screen the repo for manipulation. The dominant trap in this whole reference is fake stars, and the cheapest tells are two ratios you can compute in seconds. A Carnegie Mellon study presented at ICSE 2026 found approximately 6 million suspected fake stars distributed across 18,617 repositories by roughly 301,000 accounts, so this is not a rare edge case.

6M
suspected fake stars found across 18,617 repositories
Distributed by roughly 301,000 accounts, per a Carnegie Mellon study presented at ICSE 2026.

The two ratios below are your confirmation heuristics. Compute both before trusting a star surge.

RatioOrganic rangeManipulation flag
Fork-to-star10-25%below 5%
Watcher-to-star0.5-3%0.1% or lower

Flask at 71,000 stars sits at a 23.5% fork-to-star ratio, squarely in the healthy band. Ratios below 5% on a repo with thousands of stars warrant inspection, because bots star without forking. The watcher-to-star ratio is even stronger: organic projects average 0.5% to 3%, while heavily manipulated repos drop to 0.1% or lower. Where the two ratios disagree, trust the watcher ratio.

Why bother? Because high star counts push a repo up in Trending and search, and a repo that jumps from 10 to 500 stars in a week gets algorithmic amplification. The fake stars create a self-reinforcing cycle where bot engagement attracts real attention, so a "hot repo" signal can be manufactured wholesale. The ratio check is the only cheap way to tell a manufactured surge from a real one.

A fork is harder to fake than a star, so the fork-to-star ratio is both an intent gauge and a fraud detector.

Category breadth: why the same event means different things

The same star means less in a broad skill pool than in a niche one. This is not a heuristic guess - it falls straight out of population counts, and it should change how you weight raw stars before you route anything.

In Refolk's index of professional profiles, 13,722 US-based Software Engineers list Kubernetes as a skill, with top employers including Meta, Microsoft, and Red Hat. Only 610 US-based Software Engineers list Rust, with top employers including Google, Oxide Computer Company, and Meta. That is a 22.5x difference in the size of the talent pool that could plausibly generate a signal in each category.

SkillUS Software EngineersMultiple vs Rust
Kubernetes13,72222.5x
Rust6101.0x

The read: in a broad-skill category like Kubernetes, a "starred my repo" event is common and therefore dilutive - you should weight decision-stage events higher and discount raw stars aggressively. In a niche category like Rust, the population that can even produce the signal is small enough that a single well-resolved actor carries more weight. The country cut sharpens the same point.

CountryRust Software EngineersShare of US baseline
United States6101.0x
Germany900.15x

Germany's 90 Rust engineers, with top employers including Helsing and Wolt, is roughly a sixth of the US pool. A signal that would be background noise in a large pool is a meaningful fraction of the addressable market in a small one. Calibrate your tier weights to the pool, not to a global default.

22.5x
how much larger the US Kubernetes engineer pool is than the Rust pool
In Refolk's index, 13,722 Kubernetes vs 610 Rust US Software Engineers - so a raw star is far more dilutive in the broad category.

Once you have graded and screened an event, the next friction is resolving the anonymous actor to a real company and role. That is where a plain-English search over public profiles saves the most time.

The procedure: from raw event to a routed touch

The order below is signal-first: grade and screen the event, then resolve identity. Named-account teams sometimes invert steps 3 and 5, filtering by company fit before grading the event - either works, but pick one and keep it consistent.

Grading a repository event before it reaches a rep

  1. Define the repo watchlist
    Pick the repositories that define your category - your repo, competitors, adjacent tools, and open-source projects your buyers already use. Done when you have a named list with URLs.
  2. Capture events
    Poll for recent events and record actor, type, and timestamp. GitHub webhooks only fire on your own repos and give no history, so most teams poll the Events API or GHArchive. Done when you have an event stream.
  3. Grade the event by tier
    Map each event to awareness or decision stage using the reference tables. Stars and watches are low; issues, PRs, dependency adds and SSO requests are high. Done when every event is tagged low, mid, or high.
  4. Screen for fakes and noise
    Apply the fork-to-star and watcher-to-star ratio checks before trusting a star surge. Flag fork-to-star below 5% or watcher-to-star at or under 0.1%. Done when the repo or actor is cleared or flagged.
  5. Resolve actor to company
    Read the commit-email domain to link the actor to an employer, falling back to the profile company field on privacy-enabled accounts, then enrich to role. Done when the actor is mapped to an ICP account or discarded.
  6. Confirm decision intent
    Look for corroborating signals - multiple engineers at one account, competitor-repo issues, dependency adds. Done when the event is classified single-actor or account-level.
  7. Route and act fast
    Reference the specific technical action, not a generic trigger, and route within 24 to 48 hours. Done when a personalized touch is logged in the CRM.

Resolving the actor without guessing

GitHub links a commit to a user by matching the commit-header email to an account email, so the mechanism is simple: open a commit, read the author email domain, and cross-check the profile company field. The one caveat that breaks pipelines at scale: if a user enabled email address privacy, the commit author email is a no-reply placeholder by default. Domain resolution fails on those accounts, and the correct move is to fall back to the profile field, not to discard the actor.

How this goes wrong: the false positives that cost rep-hours

Every row in this reference has a way to lie. The seven traps below are the ones that survive a naive read of the event, ranked by how often they route the wrong person.

1. The star surge is bot-driven. A repo jumps from 10 to 500 stars in a week and looks hot; high star counts push it up in Trending and search, so it self-reinforces. Check: fork-to-star under 5% or watcher-to-star at or under 0.1%.

2. Aged bot accounts pass profile checks. Star-farming operations now use aged profiles with months of fake commit history, forked repositories, bio text, profile photos, and followers. Individual profile polish is no longer evidence of a real human. Check: look for coordinated same-window starring across accounts, not per-profile detail.

3. Commit-email resolution fails silently. You read a no-reply address and conclude the actor has no company. Check: fall back to the profile company field; treat no-reply as "privacy on," not "no employer."

4. Star equals usage. You treat a bookmark as adoption. A star does not mean usage, and in many cases the starrer never even cloned the repo. Check: require a mid-funnel corroborating event before routing.

5. Non-ICP starrer. A stargazer could be your ideal customer or a hobbyist far from the developer profile you sell to. Check: apply an ICP filter on company size and industry before a rep touch.

6. Single actor read as account intent. One engineer's star gets framed as a company evaluation. Check: require two or more engineers at one account, or a decision-stage event, before escalating. When three engineers at the same 200-person startup all star competing database repos within two weeks, that is a company-wide database evaluation - one is not.

7. Slow routing kills a real signal. A genuine signal actioned a week late converts like cold outreach. Adjacent web-intent data shows reaching out within an hour of a visit yields a 22.3% response rate, nearly 8x the five-or-more-day rate, and one vendor claims acting within 24 to 48 hours can 3 to 5x outbound reply rates. Against an average cold email reply rate of about 3.43%, latency is the single biggest lever. Check: enforce a 24-to-48-hour SLA and measure response by time-to-touch bucket.

Act, confirm, filter, or ignore

Strong actor confidenceWeak actor confidence
Low intent, weak actor
Ignore or leave for aggregate repo-health signal only
High intent, weak actor
Confirm identity before routing - resolve employer, apply ICP filter
Low intent, strong actor
Watch for a second event; nurture, do not cold-route on one star
High intent, strong actor
Route within 24-48 hours with a message referencing the specific action
Low intent tierHigh intent tier
Grade an event on intent tier against actor confidence to decide the next move.

Keeping the reference current and calling a signal done

The mechanics here drift. Trending algorithms change, bot operations adapt to detection, and GitHub's privacy defaults evolve. Re-check the two star-authenticity ratios against a known-healthy repo in your category every quarter so you are calibrating against a live baseline rather than a memorized number. When detection tooling flags accounts, remember the ceiling: in the CMU work, 90.42% of flagged repos but only 57.07% of flagged accounts were confirmed, so account-level fake calls are noisier than repo-level ones.

The outreach itself is where the grading pays off. Reference the specific technical action, not a generic sales trigger.

First-touch after a confirmed decision-stage event
Subject: your issue on {repo}

Saw you opened {issue/PR} on {repo} about {specific behavior}. That is usually the point where teams hit {the limit the issue describes}.

We built {product} to handle exactly that. Worth a 15-minute look at how {specific capability} maps to what you described?

No deck, just the workflow.

Swap the bracketed context for the real repo, event, and observation you graded. Keep it to the action, not a pitch.

Before you call any single event done and hand it to a rep, run the checklist below. It is the difference between a routed signal and a routed guess.

Signal-ready before routing

  • The event is tagged with an intent tier (low, mid, high) using the reference tables.
  • For any star-based signal, fork-to-star and watcher-to-star ratios were checked and cleared.
  • The actor is resolved to an employer via commit-email domain or profile-field fallback.
  • The account passed the ICP filter on size and industry.
  • There is either a decision-stage event or a second actor at the same account.
  • A personalized touch referencing the specific action is drafted and will send within 24 to 48 hours.

Two habits keep this reference honest over time. First, weight decision-stage events higher in broad categories, where raw stars are common and dilutive, and lower your bar in niche ones, where the addressable pool is small. Second, treat speed as a first-class variable: the response-rate gap by time-to-touch likely swamps most tier-weighting nuance, so a fast touch on a mid-tier signal often beats a slow touch on a high-tier one. Grade the event, screen the fakes, resolve the actor, and move.

Questions practitioners ask

What does a repo star actually mean for sales?

A star is an awareness-stage signal, roughly a bookmark, and does not prove usage. The starrer may never have cloned the repo. Treat it as low intent and require a mid-funnel corroborating event, such as a fork, issue, or dependency add, before routing to a rep. On its own a single star from an unverified account is not worth a rep touch.

Is a fork a stronger buying signal than a star?

Yes. Vendor scoring conventions weight a fork above a star, and there is a structural reason: bots star without forking, which is why a fork-to-star ratio below 5% flags manipulation. A fork means someone took the code to run or modify it, so it is both higher-intent and much harder to fake than a star.

How do I tell fake GitHub stars from real ones?

Use two cheap ratio checks. Healthy projects show a fork-to-star ratio of 10 to 25 percent; below 5 percent on a repo with thousands of stars is suspect. The watcher-to-star ratio is stronger: organic projects run 0.5 to 3 percent, while manipulated repos drop to 0.1 percent or lower. A Carnegie Mellon study found roughly 6 million suspected fake stars across 18,617 repos.

Why is an SSO or SAML issue such a strong signal?

Single sign-on lets organization and enterprise owners control access to repositories, issues, and pull requests, a need only larger, security-reviewed buyers raise. So a developer opening an SSO or SAML feature request is almost always inside an enterprise buyer. It is a low-volume, high-conviction event that qualifies the account by itself.

How fast do I need to act on a repository signal?

Fast. Adjacent web-intent data shows reaching out within an hour of a visit yields a 22.3 percent response rate, nearly 8x better than waiting five or more days, and one vendor claims acting within 24 to 48 hours can 3 to 5x outbound reply rates. Routing latency likely swamps most tier-weighting nuance, so the SLA is the lever.

How do I link a GitHub actor to a company?

GitHub links a commit to a user by matching the commit-header email to an account email, so read the author email domain and cross-check the profile company field. If the actor enabled email privacy, the commit shows only a no-reply placeholder, defeating domain resolution. Fall back to the profile company field rather than discarding the actor.

Try it on your own search

Stop building boolean strings. Just describe the person.

Type one sentence and I plan the search, read GitHub, public LinkedIn and Crunchbase records, and the open web live, then hand back a ranked shortlist with the reasoning behind every name. No filters to learn, no export to clean up, no sales call to sit through.

  • One sentence in, a ranked shortlist out. No boolean, no filters, no seat to buy.
  • Read live at search time, not from a database that went stale last quarter.
  • Watch every step as it runs, and see why each name made the list.

500 free credits on sign-up. No card, no demo call. See real searches.

Read next