GitHub (Edge)

Last updated on Oct 16, 2026

GitHub is a developer platform that hosts Git repositories and provides tools for code review, issue tracking, project planning, continuous integration and delivery (CI/CD) automation, and security scanning. Teams use it to collaborate on software and to track how their code and engineering work change over time.

Hevo uses the GitHub REST API, the GitHub GraphQL API for Projects data, and webhooks to replicate data from your GitHub account to the Destination of your choice. To ingest data, you must authenticate Hevo with your GitHub account using one of the following methods:

  • GitHub OAuth: Log in to your GitHub account and authorize Hevo to access your repositories.

  • Personal Access Tokens: Provide up to 10 personal access tokens. Hevo distributes its requests across the tokens to avoid rate limiting. Use this method if you want to replicate data from a self-hosted GitHub Enterprise Server installation.

  • GitHub App: Provide the Client ID and private key of a GitHub App installed on your account or organization. GitHub Apps have higher rate limits and use fine-grained permissions.


Supported Features

Feature Name Supported
Capture deletes Yes (for selected objects)
History mode No
Custom data (user-configured tables & fields) No
Data blocking (skip objects and fields) Yes
Resync (objects and Pipelines) Yes
API configurable Yes

Configure Webhooks for Capturing Delete Events

GitHub does not return deleted records through its REST API. To capture the deletes of review comments, and of commits that are removed from a branch by a force push, Hevo uses GitHub webhooks. To enable this, you must create a webhook in your GitHub repository using the webhook URL generated for your Pipeline.

Perform the following steps to configure webhooks for capturing delete events:

  1. Obtain the Webhook URL for your Pipeline

  2. Create a Webhook in your GitHub repository

Obtain the Webhook URL for your Pipeline

Perform the following steps to obtain the webhook URL generated by Hevo for your Pipeline:

  1. In the Pipeline’s toolbar, click Pipeline Setup.

  2. In the Configure Pipeline section, copy the URL displayed in the Webhook URL field.

    Copy Webhook URL

Create a Webhook in your GitHub repository

Perform the following steps to create a webhook in your GitHub repository:

  1. Log in to your GitHub account as the owner of the repository or a user with admin access to it.

  2. Open the repository, click Settings, and then, in the left navigation pane, click Webhooks.

  3. Click Add webhook.

  4. On the Webhooks / Add webhook page, specify the following:

    • Payload URL: The webhook URL that you copied from your Hevo Pipeline.

    • Content type: Select application/json.

    • Secret (Optional): The value that you specified in the Webhook Secret field while configuring the Source.

    • Which events would you like to trigger this webhook?: Select Let me select individual events, and then select Issue comments, Issues, Pull request review comments, Pushes, and Repositories. Alternatively, select Send me everything.

  5. Ensure that Active is selected, and then click Add webhook.

Repeat these steps for each repository whose deletes you want to capture. Alternatively, to capture the deletes of all the repositories in an organization, create a single webhook in your organization’s settings. To do this, log in as an organization owner, click Settings on the organization page, click Webhooks in the left navigation pane, and then perform steps 3 to 5.

Note: If you select other events, GitHub sends notifications for those events to the webhook URL. However, Hevo ignores these notifications, and they do not affect data ingestion.


Handling of Deletes

Hevo captures deletes differently based on the object:

  • Inferred deletes: For the following objects, Hevo uses a full data refresh approach to capture delete actions. During each Pipeline run, Hevo compares the data fetched from the Source object with the data present in the Destination table. If a record exists in the Destination but is no longer returned by the Source, the record is marked as deleted by setting the value of the metadata column __hevo__marked_deleted to True. This applies only if you select Sync All Repositories as the Sync Mode.

    Asset, Milestone, Org Member, Project V2, Release, Repo Collaborator, Repository, Repository Language, Repository Property, Repository Topic, Stargazer, Team, and Workflow.

  • Child records replaced in each run: For the Issue Assignee, Issue Label, Repo Team, and Team Membership objects, Hevo fetches the current records for each parent record during each Pipeline run and replaces the records in the Destination. Records that no longer exist in the Source are removed from the Destination.

  • Webhook-based deletes: If you configure a webhook in your GitHub repository, Hevo captures the following deletes:

    • When a review comment is deleted, Hevo marks the review comment as deleted in the Pull Request Review Comments object by setting the value of the metadata column __hevo__marked_deleted to True.

    • When a force push removes commits from a branch, Hevo removes the records of those commits from the Commit File, Commit Parent, and Commit Pull Request objects.

Hevo does not capture deletes for the other objects.


Source Considerations

  • GitHub treats pull requests as issues. As a result, the Issue object also contains the issue records of pull requests.

  • GitHub provides repository traffic data only for the last 14 days. Hence, the Page View and Repository Clone objects contain data only for the last 14 days. GitHub also provides this data only to users with push access to the repository.

  • GitHub provides Copilot usage metrics only for the last 28 days. Hence, during each Pipeline run, Hevo ingests the Copilot metrics for the last 28 days. The metrics loaded in the earlier runs are retained in the Destination, so the history of the metrics builds up over time.

  • GitHub provides the Copilot data only for organizations that have a GitHub Copilot Business or Copilot Enterprise subscription. To replicate the Copilot objects, the GitHub account that you authenticate with must be an owner of the organization. To replicate the Copilot Org Metric and Copilot User Metric objects, the Copilot usage metrics policy must also be enabled in your organization’s Copilot settings. If these conditions are not met, Hevo skips the Copilot objects for the organization, and the Pipeline does not fail.

  • The Org Member, Team, Team Membership, Project V2, and Copilot objects contain organization data. Hevo ingests this data only for the organizations that own the repositories you sync. Hence, if you sync only the repositories of a personal account, these objects do not contain any data. Hevo does not ingest the projects owned by a personal account.

  • Hevo does not check the permissions of your token, OAuth authorization, or GitHub App when you select the objects on the Configure Objects page. If the credentials do not have access to the data of an object, for example, the traffic data or the Dependabot alerts of a repository, Hevo skips that repository or organization for the object during ingestion. The Pipeline does not fail, and the other data is replicated as usual.

  • From July 2026, GitHub limits access to the list of stargazers of a repository to its admins and collaborators. Hence, the Stargazer object may not contain data for the repositories in which the authenticated GitHub account is not an admin or a collaborator.

  • Hevo ingests the workflow runs based on the time they are created, and does not fetch a workflow run again once a newer run is ingested. Hence, if a workflow run is in progress when Hevo ingests it, its final status and conclusion may not be updated in the Workflow Run object.

  • GitHub provides Dependabot alerts only for repositories in which Dependabot alerts are enabled. Hence, the Security Alert and Security Advisory objects do not contain data for the other repositories.

  • GitHub does not return commits for empty repositories. Hence, Hevo skips the repositories that do not have any commits while ingesting the Commit object and its child objects.


Limitations

  • Hevo supports a GitHub App only if it is installed on a single account or organization. If your GitHub App is installed on more than one account or organization, the connection test fails. To use the GitHub App, uninstall it from all the accounts except the one whose data you want to replicate.

  • You can use the GitHub App authentication method only with GitHub.com. To replicate data from a GitHub Enterprise Server installation, use the Personal Access Tokens authentication method.

  • If you select Sync Specific Repositories as the Sync Mode and create a webhook for your organization, Hevo also processes the webhook events of the repositories that you did not select.


Revision History

Refer to the following table for the list of key updates made to this page:

Date Release Description of Change
Oct-14-2026 NA New document.

Tell us what went wrong