GitHub Issues & Pull Requests Monitor avatar

GitHub Issues & Pull Requests Monitor

Pricing

Pay per usage

Go to Apify Store
GitHub Issues & Pull Requests Monitor

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

Automly

Maintained by Community

Actor 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

FieldTypeDescription
repositoriesarrayRepositories to monitor as owner/repo (or a full GitHub URL).
organizationsarrayOrganization logins to monitor across their repositories.
usersarrayUser logins whose issues and pull requests to monitor.
searchQueriesarrayRaw GitHub issue-search queries for advanced monitoring.
itemKindsstringissues, pullRequests, or both (default both).
statestringopen, closed, or all (default open).
sincestringOnly items updated at/after this ISO-8601 timestamp, e.g. 2024-01-01T00:00:00Z.
labelsarrayOnly items carrying all of these labels.
maxItemsintegerMaximum total items to collect across all sources (1–1000).
includeCommentsCountbooleanInclude the number of comments per item (default true).
includeLabelsbooleanInclude the list of label names per item (default true).
includeReactionsbooleanInclude the total reaction count per item (default false).
useStateCheckpointbooleanRemember the latest activity per source between runs (default false).
requestDelayMsintegerMinimum delay between requests, in milliseconds (default 250).
githubTokenstringOptional GitHub token. Can also be set via the GITHUB_TOKEN environment variable.
proxyConfigurationobjectOptional 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:

FieldDescription
sourceKindrepository, organization, user, or searchQuery.
monitorQueryThe source that produced the item.
repositoryFull owner/repo name.
ownerRepository owner login.
itemKindissue or pullRequest.
itemIdGitHub global identifier.
itemNumberIssue or PR number within the repository.
itemUrlCanonical GitHub URL.
titleItem title.
bodyTextFull item body (Markdown).
summarySingle-line summary of the body.
stateopen or closed.
isMergedtrue when a pull request has been merged.
createdAt / updatedAt / closedAt / mergedAtActivity timestamps.
authorLoginLogin of the item's author.
labelsLabel names.
assigneesAssignee logins.
commentsCountNumber of comments (when included).
reactionsCountTotal reactions (when included).
milestoneMilestone title, if any.
isDrafttrue for draft pull requests.
isLockedtrue when the conversation is locked.
fetchedAtWhen 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:

  1. Set since to the timestamp of your last run.
  2. Enable useStateCheckpoint so the actor remembers the latest activity per source automatically and collects only newer items next time. An explicit since always 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 issue or pullRequest.
  • Organization, user, and search-query monitoring uses GitHub search, which returns up to 1000 of the most recent matches per source.