Social engineering attacks against open-source repositories don’t always leave the obvious fingerprints of malicious code injection. They often start subtly: a new contributor whose very first action is to modify a CI workflow file, a maintainer account that quietly adds a new collaborator with write access, or a private repository made public — potentially exposing secrets embedded in commit history or configuration files. The three rules in this category are designed to surface these quieter indicators before they escalate into full-compromise events.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/morwn/github-threat-detector/llms.txt
Use this file to discover all available pages before exploring further.
new-actor-ci-change
Severity: highRequired data: Events only
What it detects
A contributor whose very first recorded event in the repository is aPushEvent or PullRequestEvent that touches a file under .github/workflows/, and where that workflow-touching event occurs within 1 hour of their first recorded event overall. This is the hallmark of an account created or invited specifically to inject malicious workflow steps.
How detection works
The analyzer computes each actor’s first-seen timestamp per repository, then joins against push and pull request events that mention/.github/workflows/ in their payload. Any event where the timestamp is within 3600 seconds of the actor’s first_seen time is a finding.
Finding description
Evidence fields
| Field | Description |
|---|---|
created_at | Timestamp of the workflow-touching event |
member-added-suspicious
Severity: mediumRequired data: Events only
What it detects
AMemberEvent with action: added, indicating that a new collaborator has been added to the repository. This rule emits a finding for every such event, providing an audit trail of collaborator additions that can be reviewed for unauthorized access grants.
How detection works
The analyzer queries directly for member-addition events with no additional filtering beyond the event type and action. All collaborator additions are surfaced, regardless of who performed the addition.Finding description
Evidence fields
| Field | Description |
|---|---|
added_member | Login of the newly added collaborator |
added_member_id | GitHub user ID of the added collaborator |
created_at | Timestamp of the addition |
repo-made-public
Severity: highRequired data: Events only
What it detects
APublicEvent within the past 2 years, indicating that the repository was changed from private to public. GitHub emits this event exactly once when a repository’s visibility is changed to public. This is a significant security event because all commit history, branches, issues, and configuration files immediately become accessible to the internet — including any secrets that may have been committed before the repository was intended to be public.
How detection works
The analyzer queries forPublicEvent occurrences within a 2-year lookback window.
Finding description
Evidence fields
| Field | Description |
|---|---|
created_at | Timestamp when the repository was made public |