GitHub Activity Stream — AI Agent Dev Monitoring API
Pricing
from $3.50 / 1,000 results
GitHub Activity Stream — AI Agent Dev Monitoring API
Keyless GitHub activity stream for AI agents: commits, pull requests, issues, releases and events for any repo, org or user. Time-windowed, paginated, thousands of events per run. Actors, additions, labels, states and URLs per row. No API key, no browser.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Keyless GitHub activity stream for AI coding agents. Pull commits, pull requests, issues, releases and public events for any repo, org or user. Time-windowed, paginated — thousands of events per run. Each event becomes one structured row with actor, state, additions/deletions, labels and URL. No API key, no headless browser.
Built for the new wave of AI agents that reason about software development — coding agents that summarize "what changed in this repo this week", dependency-monitoring agents that detect security commits and releases, release-tracking agents that watch for new versions, and RAG pipelines that ground LLM answers in current dev activity instead of stale training-set snapshots.
🎯 What this Actor is for
GitHub is the heartbeat of open-source and most dev teams, but its activity is scattered across commits, PRs, issues, releases and events — each a separate API endpoint with its own schema. When an AI agent is asked "what did the React team ship this week?" or "any security commits in kubernetes/kubernetes lately?", it needs structured, time-windowed, multi-type activity — not raw API JSON to re-parse. github-activity-stream is that dev-grounding layer:
- One repo → all activity. Commits, PRs, issues and releases for a repo in one run, normalized to a common schema. Big repos yield thousands of events.
- Org-wide monitoring.
orgmode lists an org's public repos (sorted by recent activity) and pulls activity from each — monitor an entire ecosystem (kubernetes, vercel, facebook) in one run. - User activity.
usermode pulls a user's public event feed (commits, PRs, reviews, pushes) — 90 days of history. - Time-windowed.
sincefilter keeps only events after a date — ideal for daily/weekly delta runs. - Triage-ready schema. Every event carries
type(commit/pull/issue/release),repo,actor,title,state,createdAt,additions/deletions(PRs),labels,tagName/isPrerelease(releases), andurl. - AI-agent friendly. Predictable fields, ISO dates, nullable values. Drop straight into a prompt or a vector store.
- No keys, no browser. Pure HTTP + JSON API on a small Node 20 container, with Apify proxy IP rotation to spread GitHub's keyless 60 req/hr/IP limit. Optional token raises to 5000/hr.
✨ Key features
- 📦 Commits —
/repos/{o}/{r}/commits?since=…paginated. First-line message astitle, author + date. - 🔀 Pull requests —
/repos/{o}/{r}/pulls?state=all&sort=createdpaginated +sincefilter.additions,deletions,commits,merged,state,labels. - ❗ Issues —
/repos/{o}/{r}/issues?state=all&since=…(PRs filtered out — they come from/pulls).state,labels. - 🏷️ Releases —
/repos/{o}/{r}/releasespaginated.tagName,isPrerelease,name, publish date. - 👤 User events —
/users/{u}/events/public(up to 10 pages, 90 days). Push/PR/issue/review events. - 🏢 Org scan —
/orgs/{org}/repos?type=public&sort=updatedthen per-repo activity. Cap withmaxOrgRepos. - 📅 Time window —
since(ISO date) filters commits/issues/PRs to a delta window. - 🌐 Proxy IP rotation — Apify datacenter proxy rotates IPs per request to mitigate GitHub's keyless 60 req/hr/IP. Optional
ghTokenfor 5000/hr. - 🔁 Retry/backoff — 403 (rate-limit) and 5xx trigger exponential backoff retry (up to 6 attempts).
- 💰 Pay-per-result — charged per saved event, not per run. Empty results are free.
🤖 Why AI agents need this
Dev activity is high-signal, high-frequency grounding for coding agents — and tedious to collect. Each GitHub object type is a separate endpoint with pagination, rate limits and schema quirks. An agent that hits them directly reinvents merging and normalization every time, and burns the 60/hr keyless limit fast. github-activity-stream wraps it all into one reliable, proxy-rotated, pay-per-result Actor:
- Weekly dev summary agent. A coding agent runs
repomode withsince: <7 days ago>on a watched repo, summarizes the commits/PRs/releases, and posts a digest. - Release tracker. An agent watches
releasesfor a dependency org (kubernetes,vercel), alerts on new versions, and drafts upgrade notes from the release bodies. - Security-commit detector. An agent scans recent commits for
security,cve,vuln,fixkeywords and flags them. - Dependency health. An agent pulls issues (open count, stale, label distribution) and PRs (merge velocity) to score a repo's maintenance health before adoption.
- Contributor monitoring. An agent tracks a key maintainer's public events (
usermode) to spot activity shifts. - Org-wide radar. An agent scans an entire org's repos (
orgmode) for recent activity to map where work is happening. - RAG over dev activity. Embed commit messages + PR titles into a vector store; answer "when did X get fixed?" with citations to the exact commit.
Each of these is one Actor call (or a scheduled run). The output is a table of events ready for an LLM to summarize, filter, or alert on.
📦 What you get (output schema)
Every run streams one activity event per row to the default dataset. A pull request row looks like:
{"repo": "microsoft/vscode","type": "pull","number": 210543,"title": "Fix terminal rendering on macOS","action": null,"state": "closed","actor": "user123","createdAt": "2026-06-28T10:00:00Z","updatedAt": "2026-07-01T15:00:00Z","additions": 142,"deletions": 38,"commits": 3,"labels": ["bug", "terminal"],"merged": true,"isPrerelease": null,"tagName": null,"url": "https://github.com/microsoft/vscode/pull/210543","scrapedAt": "2026-07-02T12:00:00.000Z"}
A release row carries type: "release", tagName: "1.21.0", isPrerelease: false. A commit row carries type: "commit", the first-line message as title. A user event carries the event type (PushEvent, PullRequestEvent, …).
Use the Overview view to scan all events, or the By type view to pivot on commit/PR/issue/release.
🚀 How to use
1. Single repo weekly activity
{"mode": "repo","repos": ["microsoft/vscode"],"eventTypes": ["commits", "pulls", "issues", "releases"],"since": "2026-06-25","maxPerType": 200}
2. Org-wide scan (monitor an ecosystem)
{"mode": "org","org": "kubernetes","maxOrgRepos": 15,"eventTypes": ["pulls", "releases"],"since": "2026-06-01"}
3. User public activity
{"mode": "user","user": "torvalds","maxPerType": 100}
4. Bulk: many repos
{"mode": "bulk","repos": ["facebook/react", "vercel/next.js", "microsoft/typescript"],"since": "2026-06-01"}
From code (Apify SDK)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('logiover/github-activity-stream').call({mode: 'repo',repos: ['microsoft/vscode'],since: '2026-06-25',eventTypes: ['commits', 'releases'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();const releases = items.filter(i => i.type === 'release');console.log(`${releases.length} releases this week`);
As an MCP tool for AI agents
Wrap this Actor in an MCP server. A coding agent calls the tool with a repo + time window and receives normalized activity — no GitHub API juggling, no rate-limit handling on the agent side.
🔧 Input fields
| Field | Type | Default | Description |
|---|---|---|---|
mode | enum | repo | repo (one repo), org (all org repos), user (user events), bulk (many repos). |
repos | array | — | owner/repo slugs for repo/bulk modes. |
org | string | — | Org slug for org mode. |
user | string | — | Username for user mode. |
eventTypes | array | all | Which types: commits, pulls, issues, releases. |
since | string | — | ISO date; only events after this. |
maxPerType | int | 200 | Cap per type per repo (1–1000). |
maxOrgRepos | int | 20 | Cap on repos in org mode (1–200). |
ghToken | string | — | Optional GitHub token (60→5000 req/hr). |
useApifyProxy | bool | true | Route through Apify datacenter proxy (IP rotation). |
🧩 How it works
- Resolve targets.
repo/bulkuse thereposlist.orglists public repos (/orgs/{org}/repos?type=public&sort=updated), capped atmaxOrgRepos.usertargets the user event feed. - Fetch per type. For each repo, fetch the enabled types concurrently-ish (sequentially per type, paginated): commits (
/commits?since=…), PRs (/pulls?state=all&sort=created+ client-sidesincefilter), issues (/issues?state=all&since=…, PRs filtered), releases (/releases). - IP rotation. Each request goes through the Apify datacenter proxy (rotating source IP) to mitigate GitHub's keyless 60 req/hr/IP. A
ghToken(if provided) raises the limit to 5000/hr and is sent asAuthorization: Bearer. - Retry/backoff. 403 (rate-limit) and 5xx trigger exponential backoff (up to 6 attempts). 404 (deleted/private repo) is treated as graceful empty.
- Normalize. Each object is mapped to a common record:
type,repo,number,title,actor,createdAt,updatedAt,state,additions/deletions/commits(PRs),labels,merged(PRs),tagName/isPrerelease(releases),url. - Stream. Each event is pushed to the dataset and one
resultevent is charged.
💡 Tips & best practices
- Use
sincefor deltas. Without it, you pull full history (capped bymaxPerType). For monitoring, always setsinceto the last run time. - Schedule weekly repo runs.
since: <7 days ago>each week for a digest. Big repos (linux, vscode) yield hundreds of events. orgmode for ecosystems. Monitoringkubernetesorvercel?orgmode +maxOrgRepos: 15+eventTypes: ["pulls","releases"]gives you the org's recent output in one run.- Trim types for speed. If you only need releases, set
eventTypes: ["releases"]. Commits are the highest-volume (and slowest) type. - Provide a
ghTokenfor heavy use. Keyless (60/hr/IP) is fine for monitoring a few repos via proxy rotation; for org-wide scans or frequent runs, a token (5000/hr) is much faster. - Detect security commits. Filter commit/PR
titleforsecurity|cve|vuln|fix|patchto surface security work; pair withcve-security-advisory-monitor. - Combine with related Actors. Pair with
cve-security-advisory-monitor(vuln DB),certificate-transparency-monitor(infra), anddocs-knowledge-base-scraper(chunk the repo's docs).
❓ FAQ
Does this Actor need any API keys?
No. GitHub's API is keyless (60 req/hr/IP). The Apify proxy rotates IPs per request to effectively remove that cap. For heavy use, provide a ghToken (free Personal Access Token) to raise to 5000/hr.
Why doesn't it fetch commit additions/deletions?
The /commits list endpoint doesn't return per-commit stats (only the detail endpoint does). Fetching each commit's detail would multiply requests heavily. PR rows do carry additions/deletions/commits from the PR object. For per-commit stats, post-process by fetching specific commit URLs.
How far back can I go?
Commits/issues/PRs: as far as the repo history goes (capped by maxPerType). User events: GitHub keeps only 90 days of public events (10 pages max). Releases: all of them.
Does it work for private repos?
No. It uses public endpoints without auth (or with a token's public scope). For private repos, the token would need repo scope — but this Actor targets public monitoring.
Why are some PRs/commits missing the actor?
GitHub anonymizes some commits (noreply emails) or the author has no GitHub account. actor is null in those cases.
How is this priced?
Pay-per-result: one result event per saved activity row. Runs that yield zero events (empty/deleted repo) are free.
Will I get rate-limited?
Keyless is 60 req/hr/IP. Proxy rotation spreads this; a ghToken removes the concern. 403s trigger backoff retry.
Can AI agents call this directly?
Yes. Expose it through an MCP server or Apify tool integration; the agent passes a repo + time window and gets normalized activity back. This is the primary design target.
🔗 Related Actors
- cve-security-advisory-monitor — vulnerability DB (NVD/GHSA/OSV) for security context.
- certificate-transparency-monitor — new TLS certs (infra/attack-surface).
- github-repository-scraper — repo metadata search (complementary, search-focused).
- npm-package-intelligence-scraper — npm package metadata.
- docs-knowledge-base-scraper — chunk a repo's docs site for RAG.
📝 Changelog
2026-07-02 — v1.0
- Initial release.
- 4 modes:
repo,org,user,bulk. - 4 event types: commits, pulls, issues, releases (+ user public events).
sincetime window, pagination,maxPerType/maxOrgReposcaps.- Optional
ghToken(60→5000 req/hr). - Apify datacenter proxy default (IP rotation).
- Pay-per-result (
resultevent per saved event).
⚖️ Disclaimer
This Actor queries the public GitHub REST API (keyless or with a user-supplied token). Activity data is owned by the respective repository owners and contributors; respect GitHub's Terms of Service and rate limits. Use for dev monitoring, dependency tracking and AI-agent grounding on data that is already public.