GitHub Activity Stream — AI Agent Dev Monitoring API avatar

GitHub Activity Stream — AI Agent Dev Monitoring API

Pricing

from $3.50 / 1,000 results

Go to Apify Store
GitHub Activity Stream — AI Agent Dev Monitoring API

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

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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. org mode 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. user mode pulls a user's public event feed (commits, PRs, reviews, pushes) — 90 days of history.
  • Time-windowed. since filter 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), and url.
  • 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 as title, author + date.
  • 🔀 Pull requests/repos/{o}/{r}/pulls?state=all&sort=created paginated + since filter. 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}/releases paginated. 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=updated then per-repo activity. Cap with maxOrgRepos.
  • 📅 Time windowsince (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 ghToken for 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:

  1. Weekly dev summary agent. A coding agent runs repo mode with since: <7 days ago> on a watched repo, summarizes the commits/PRs/releases, and posts a digest.
  2. Release tracker. An agent watches releases for a dependency org (kubernetes, vercel), alerts on new versions, and drafts upgrade notes from the release bodies.
  3. Security-commit detector. An agent scans recent commits for security, cve, vuln, fix keywords and flags them.
  4. Dependency health. An agent pulls issues (open count, stale, label distribution) and PRs (merge velocity) to score a repo's maintenance health before adoption.
  5. Contributor monitoring. An agent tracks a key maintainer's public events (user mode) to spot activity shifts.
  6. Org-wide radar. An agent scans an entire org's repos (org mode) for recent activity to map where work is happening.
  7. 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

FieldTypeDefaultDescription
modeenumreporepo (one repo), org (all org repos), user (user events), bulk (many repos).
reposarrayowner/repo slugs for repo/bulk modes.
orgstringOrg slug for org mode.
userstringUsername for user mode.
eventTypesarrayallWhich types: commits, pulls, issues, releases.
sincestringISO date; only events after this.
maxPerTypeint200Cap per type per repo (1–1000).
maxOrgReposint20Cap on repos in org mode (1–200).
ghTokenstringOptional GitHub token (60→5000 req/hr).
useApifyProxybooltrueRoute through Apify datacenter proxy (IP rotation).

🧩 How it works

  1. Resolve targets. repo/bulk use the repos list. org lists public repos (/orgs/{org}/repos?type=public&sort=updated), capped at maxOrgRepos. user targets the user event feed.
  2. 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-side since filter), issues (/issues?state=all&since=…, PRs filtered), releases (/releases).
  3. 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 as Authorization: Bearer.
  4. Retry/backoff. 403 (rate-limit) and 5xx trigger exponential backoff (up to 6 attempts). 404 (deleted/private repo) is treated as graceful empty.
  5. 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.
  6. Stream. Each event is pushed to the dataset and one result event is charged.

💡 Tips & best practices

  • Use since for deltas. Without it, you pull full history (capped by maxPerType). For monitoring, always set since to 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.
  • org mode for ecosystems. Monitoring kubernetes or vercel? org mode + 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 ghToken for 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 title for security|cve|vuln|fix|patch to surface security work; pair with cve-security-advisory-monitor.
  • Combine with related Actors. Pair with cve-security-advisory-monitor (vuln DB), certificate-transparency-monitor (infra), and docs-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.


  • 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).
  • since time window, pagination, maxPerType/maxOrgRepos caps.
  • Optional ghToken (60→5000 req/hr).
  • Apify datacenter proxy default (IP rotation).
  • Pay-per-result (result event 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.