GitHub Issues & PR Monitor — Filter, Watch & Webhooks avatar

GitHub Issues & PR Monitor — Filter, Watch & Webhooks

Under maintenance

Pricing

from $0.30 / 1,000 issue scrapeds

Go to Apify Store
GitHub Issues & PR Monitor — Filter, Watch & Webhooks

GitHub Issues & PR Monitor — Filter, Watch & Webhooks

Under maintenance

Watch 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

Vivek Gaur

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

23 days ago

Last modified

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 since parameter 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, or all states.
  • 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 security or vulnerability.

Input

FieldTypeDescriptionDefaultExample
repoString (Required)Repository to monitor. Format: owner/repo or full GitHub URL."vercel/next.js""facebook/react"
labelsArray of StringsOnly return issues/PRs with at least one of these labels.["bug", "feature-request"]["bug", "urgent"]
keywordsArray of StringsOnly return issues/PRs whose title or body matches these terms.[]["crash", "memory leak"]
sinceString (ISO Date)Only return issues/PRs created or updated after this date/time."""2026-09-01T00:00:00Z"
includesPRsBooleanInclude pull requests in the output (default true).truefalse
stateString (Select)Filter by state: open, closed, or all."open""open"
maxResultsIntegerMaximum number of items to return (1 to 1000).100100

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 (open or closed).
  • 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 NamePrice (USD)Charged When
actor-start$0.01Charged once when run initializes
issue-found$0.0003Charged 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

  1. Schedule the Actor to run every hour with your repo and since configured.
  2. In the Actor's Integrations / Webhooks tab, configure a webhook pointing to your Slack webhook URL or Zapier/Make webhook.
  3. Every hour, receive real-time notifications for newly posted issues matching your criteria.

Python Example

from apify_client import ApifyClient
client = 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.