GitHub Issues & Pull Requests Monitor
Pricing
Pay per usage
GitHub Issues & Pull Requests Monitor
Monitor GitHub repositories, organizations, users, or search queries for issues and pull requests — new, updated, closed, and merged activity — as clean structured records.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Automly
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Monitor GitHub issues and pull requests across repositories, organizations, users, or any GitHub search query — and export clean, structured records of new, updated, closed, and merged activity.
Built for recurring monitoring: point it at the projects you care about, schedule it, and get a tidy dataset of issue and PR activity every run.
What you can do with it
- Developer relations — keep an eye on issues and PRs across the repos your community depends on.
- Security triage — watch for newly opened issues or PRs that mention security-relevant topics.
- Competitive & market tracking — follow activity in competitors' open-source projects.
- OSS maintenance — track incoming issues and pull requests across an entire organization.
- Sales & lead signals — surface people opening issues or PRs around topics you sell into.
Features
- Monitor by repository (
owner/repo), organization, user, or raw GitHub search query. - Collect issues, pull requests, or both.
- Filter by state (open / closed / all), labels, and updated-since timestamp.
- Pull-request records include merged state and merge date.
- Optional comment counts and reaction counts per item.
- Incremental monitoring: optionally remember the last activity per source and only collect what changed on the next run.
- Works without any credentials for public data; add a GitHub token for substantially higher rate limits and to read private repositories your token can access.
Input
| Field | Type | Description |
|---|---|---|
repositories | array | Repositories to monitor as owner/repo (or a full GitHub URL). |
organizations | array | Organization logins to monitor across their repositories. |
users | array | User logins whose issues and pull requests to monitor. |
searchQueries | array | Raw GitHub issue-search queries for advanced monitoring. |
itemKinds | string | issues, pullRequests, or both (default both). |
state | string | open, closed, or all (default open). |
since | string | Only items updated at/after this ISO-8601 timestamp, e.g. 2024-01-01T00:00:00Z. |
labels | array | Only items carrying all of these labels. |
maxItems | integer | Maximum total items to collect across all sources (1–1000). |
includeCommentsCount | boolean | Include the number of comments per item (default true). |
includeLabels | boolean | Include the list of label names per item (default true). |
includeReactions | boolean | Include the total reaction count per item (default false). |
useStateCheckpoint | boolean | Remember the latest activity per source between runs (default false). |
requestDelayMs | integer | Minimum delay between requests, in milliseconds (default 250). |
githubToken | string | Optional GitHub token. Can also be set via the GITHUB_TOKEN environment variable. |
proxyConfiguration | object | Optional proxy configuration for very large or frequent runs. |
You can combine sources freely — for example, monitor two repositories, an entire organization, and a custom search query in a single run.
Example input
{"repositories": ["apify/apify-sdk-python"],"organizations": ["apify"],"itemKinds": "both","state": "open","since": "2024-01-01T00:00:00Z","maxItems": 100,"includeCommentsCount": true,"includeReactions": true}
Output
Each dataset record represents one issue or pull request:
| Field | Description |
|---|---|
sourceKind | repository, organization, user, or searchQuery. |
monitorQuery | The source that produced the item. |
repository | Full owner/repo name. |
owner | Repository owner login. |
itemKind | issue or pullRequest. |
itemId | GitHub global identifier. |
itemNumber | Issue or PR number within the repository. |
itemUrl | Canonical GitHub URL. |
title | Item title. |
bodyText | Full item body (Markdown). |
summary | Single-line summary of the body. |
state | open or closed. |
isMerged | true when a pull request has been merged. |
createdAt / updatedAt / closedAt / mergedAt | Activity timestamps. |
authorLogin | Login of the item's author. |
labels | Label names. |
assignees | Assignee logins. |
commentsCount | Number of comments (when included). |
reactionsCount | Total reactions (when included). |
milestone | Milestone title, if any. |
isDraft | true for draft pull requests. |
isLocked | true when the conversation is locked. |
fetchedAt | When the record was collected. |
Example output record
{"sourceKind": "repository","monitorQuery": "apify/apify-sdk-python","repository": "apify/apify-sdk-python","owner": "apify","itemKind": "pullRequest","itemNumber": 312,"itemUrl": "https://github.com/apify/apify-sdk-python/pull/312","title": "Add retry option","bodyText": "Adds a configurable retry option to the client so transient failures are retried automatically.","summary": "Adds a configurable retry option to the client so transient failures are retried automatically.","state": "open","isMerged": false,"createdAt": "2024-05-01T10:00:00Z","updatedAt": "2024-05-02T08:30:00Z","authorLogin": "octocat","labels": ["enhancement"],"commentsCount": 4,"reactionsCount": 7,"isDraft": false,"fetchedAt": "2024-05-02T09:00:00Z"}
Recurring monitoring
There are two ways to collect only fresh activity each run:
- Set
sinceto the timestamp of your last run. - Enable
useStateCheckpointso the actor remembers the latest activity per source automatically and collects only newer items next time. An explicitsincealways takes precedence.
Pair this with Apify scheduling to run the monitor every hour or day.
Rate limits & tokens
GitHub allows a limited number of unauthenticated requests per hour. For small public runs no credentials are needed. For larger runs, frequent schedules, or private repositories your token can access, add a GitHub token (input githubToken or the GITHUB_TOKEN environment variable) to raise the limit substantially. If GitHub's rate limit is reached mid-run, the actor stops fetching, keeps whatever it has already collected, and finishes successfully — the run summary (the OUTPUT key-value record) sets rateLimited: true so you can detect a truncated run.
Notes
- A pull request is a kind of issue on GitHub; this actor labels each record clearly as
issueorpullRequest. - Organization, user, and search-query monitoring uses GitHub search, which returns up to 1000 of the most recent matches per source.