GitHub Issues & PR Monitor — Filter, Watch & Webhooks
Under maintenancePricing
from $0.30 / 1,000 issue scrapeds
GitHub Issues & PR Monitor — Filter, Watch & Webhooks
Under maintenanceWatch any GitHub repo or org for new issues and PRs matching label/keyword filters. Built for OSS maintainers, support teams, and competitive intelligence. Pairs naturally with Apify scheduler and webhooks.
Pricing
from $0.30 / 1,000 issue scrapeds
Rating
0.0
(0)
Developer
Vivek Gaur
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
23 days ago
Last modified
Categories
Share
Monitor and extract GitHub issues and pull requests matching custom label, keyword, state, and date filters. Engineered for automated issue tracking, CI/CD triage webhooks, customer support monitoring, and open-source project intelligence.
Pairs seamlessly with Apify Schedules and Webhooks to alert your engineering or product teams the moment critical issues appear.
What this Actor does
Given any repository (owner/repo or full URL), this Actor extracts structured issue and pull request records:
- Title, Author & Body Excerpt: Cleans issue bodies into digestible text excerpts suitable for notifications and LLM classification.
- Label Filtering: Filter issues by labels (e.g.
bug,security,feature-request,help wanted). - Keyword Matching: Search within titles and issue bodies for specific phrases (e.g.
memory leak,crash,regression). - Incremental Date Filtering (
since): Pass an ISO timestamp to only retrieve issues created or updated since your previous scheduled run. - Pull Request Control: Toggle inclusion of pull requests or restrict purely to issue discussions.
Why use this Actor
- Built for Automation & Webhooks: Designed specifically to run on an hourly or daily schedule with webhook payloads forwarded to Slack, Discord, Linear, or internal dashboards.
- Incremental & Cost-Efficient: Use the
sinceparameter to avoid re-scraping existing issues and keep Pay-Per-Event billing minimal ($0.0003 per issue). - Fast, Lightweight Execution: No headless browser required; runs with direct GitHub API efficiency.
- Multi-Filter Combination: Combine label filters, keyword filters, and state toggles in a single run.
Features
- Granular State Selection: Filter by
open,closed, orallstates. - Configurable Result Limits: Fetch from 1 up to 1,000 issues per run.
- Pre-Configured Dataset Views: Review issues instantly in Apify's interactive tabular viewer.
Use cases
- OSS Maintainers & DevRel: Monitor community repositories for critical bugs or unanswered questions.
- Customer Support Teams: Watch customer-facing open-source repos to escalate bug reports into ticketing systems.
- Competitive Tracking: Monitor competitor repositories to detect what features their users are demanding or what bugs they are encountering.
- Automated Security Alerts: Alert on issues tagged with
securityorvulnerability.
Input
| Field | Type | Description | Default | Example |
|---|---|---|---|---|
repo | String (Required) | Repository to monitor. Format: owner/repo or full GitHub URL. | "vercel/next.js" | "facebook/react" |
labels | Array of Strings | Only return issues/PRs with at least one of these labels. | ["bug", "feature-request"] | ["bug", "urgent"] |
keywords | Array of Strings | Only return issues/PRs whose title or body matches these terms. | [] | ["crash", "memory leak"] |
since | String (ISO Date) | Only return issues/PRs created or updated after this date/time. | "" | "2026-09-01T00:00:00Z" |
includesPRs | Boolean | Include pull requests in the output (default true). | true | false |
state | String (Select) | Filter by state: open, closed, or all. | "open" | "open" |
maxResults | Integer | Maximum number of items to return (1 to 1000). | 100 | 100 |
Example input
{"repo": "vercel/next.js","labels": ["bug"],"keywords": ["turbopack"],"state": "open","maxResults": 50}
Output
Every issue or pull request is stored as an individual record in your Apify dataset.
Field Definitions
number(Integer): GitHub issue or pull request number.title(String): Title of the issue/PR.type(String):'issue'or'pull_request'.author(String): GitHub username of the author.labels(Array of Strings): Assigned label names.state(String): State (openorclosed).url(String): Direct link to the issue/PR on GitHub.createdAt(ISO Date): Creation timestamp.updatedAt(ISO Date): Last update timestamp.bodyExcerpt(String): Plain-text excerpt of the issue body (first 500 characters).repo(String): Originating repository slug (owner/repo).fetchedAt(ISO Date): Extraction timestamp.
Example output
{"number": 68421,"title": "Turbopack crash when resolving symlinked workspace packages","type": "issue","author": "developer-alex","labels": ["bug", "turbopack", "area: build"],"state": "open","url": "https://github.com/vercel/next.js/issues/68421","createdAt": "2026-09-28T02:14:10Z","updatedAt": "2026-09-28T03:45:00Z","bodyExcerpt": "When configuring a pnpm monorepo with symlinked internal packages, running next dev --turbo results in a panic in the resolution resolver...","repo": "vercel/next.js","fetchedAt": "2026-09-28T04:18:53.694Z"}
Pricing (Pay-Per-Event)
| Event Name | Price (USD) | Charged When |
|---|---|---|
actor-start | $0.01 | Charged once when run initializes |
issue-found | $0.0003 | Charged per issue or pull request delivered |
Example cost: Extracting 100 matching bug reports costs $0.01 (start) + (100 × $0.0003 = $0.03) = $0.04 total.
API & Webhook Automation
Hourly Slack Alert via Apify Scheduler & Webhook
- Schedule the Actor to run every hour with your repo and
sinceconfigured. - In the Actor's Integrations / Webhooks tab, configure a webhook pointing to your Slack webhook URL or Zapier/Make webhook.
- Every hour, receive real-time notifications for newly posted issues matching your criteria.
Python Example
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_API_TOKEN")run = client.actor("lovely_radiologist/github-issues-monitor").call(run_input={"repo": "facebook/react","labels": ["bug"],"state": "open","maxResults": 25})for issue in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"#{issue['number']} [{issue['state']}]: {issue['title']} ({issue['url']})")
Limitations
- Search Scope: Keyword filtering checks within the fetched page of issues. For repository-wide historical keyword searches spanning years, provide specific date windows.
- Public Repositories: Scrapes public GitHub repositories.
FAQ
Can I monitor pull requests only?
Yes! Set includesPRs: true and add the state: open filter. You can also filter by specific PR labels if the repository uses them (e.g. pr:ready-to-review).
How do I fetch only issues since the last run?
Supply an ISO timestamp in the since field (e.g. "2026-09-28T00:00:00Z"). In automated schedules, you can pass the last run's timestamp dynamically via API.
Support & Related Actors
- GitHub Repository Insights — Full repository profile with health score and contributors.
- GitHub Organization Scraper — Scan all repos across an entire organization.
- GitHub Trending Radar — Discover breakout repositories.