GitHub
Renta exports GitHub data to your data warehouse: commits, issues, pull requests, releases, GitHub Actions runs, and other repository objects.
You pick the repositories and the fields of each object yourself.
Authentication
Renta connects to GitHub through OAuth. You log in to GitHub, confirm the access Renta asks for, and return to Renta. You do not need to create a personal access token.
On the consent screen, GitHub asks for access that covers everything Renta can export:
- Repositories.
Code, branches, commits, issues, and pull requests, including private repositories. - GitHub Actions.
Workflows, their runs, and jobs. - Organization.
Teams and their members. - Profile.
The login and email of the connected account.
GitHub has no read-only version of the repository and workflow access, so the consent screen mentions write access. Renta only reads data.
A pipeline sees the same repositories as the authorized account. If an organization restricts OAuth apps, its repositories appear in Renta only after an owner approves the app in the organization's Third-party Access settings.
Connect GitHub source
- Navigate to the Connections > Catalog section in the left sidebar.
- Open the Developer tools category and click the GitHub card.

Click Log in to your GitHub account. Renta redirects you to GitHub, where you sign in and confirm the access it requests. If the browser already holds an authorized GitHub session, the confirmation goes through right away and you return to Renta.

Finish the setup:
- Source name.
Specify a name for this data source. It is used exclusively in the Renta interface. - Access granted.
Verify that the account is connected. The card carries the login of the authorized GitHub account.
Click Save to finish.
If the authorization later changes, for example after you revoke the app in GitHub, click Re-authorize on this source. The connection refreshes in place and every pipeline built on it keeps running.

The new source appears in the Sources list with the Active status. You can now use it in pipelines.

Create a GitHub pipeline
In the left sidebar, click New pipeline. On the Source step, select GitHub under Already connected and click Next step.

Choose the GitHub connection you created earlier and click Next step. The card shows the account behind the connection and the date it was added.

On the Destination step, select your destination (for example, Google BigQuery) and click Next step.

Choose the destination connection you want to load data into and click Next step. The card shows the dataset and project the data will land in.

Pipeline configuration
On the final step, choose which GitHub data to export, from which repositories, and how often Renta loads it.
Integration type
Choose how to configure the pipeline: assemble one report yourself or start from a template.

| Integration type | Description |
|---|---|
| Custom report | You choose the report type, the repositories, the fields, and the load settings yourself. The sections below describe this path. |
| Pre-built templates | A bundle of report types with every field selected. You pick the template and the repositories. |
A template creates one pipeline per report type it covers, so one Create pipeline click can produce more than a dozen pipelines. Renta offers five templates: repository basics, issues and pull requests, CI/CD, organization, and all objects.
Report type
Select which GitHub object the pipeline exports. One pipeline loads one report type.

| Report type | Description |
|---|---|
| Repositories | Repositories available to the connected account: name, visibility, description, language, default branch, license, permissions, topics, and the counters of stars, watchers, forks, and open issues. |
| Branches | Branches of each repository with the SHA of the head commit and the protection flag. |
| Tags | Tags with the SHA of the tagged commit and the archive links. |
| Commits | Commit history of the default branch: message, tree SHA, author and committer with name, email, and date, signature verification, and the parent commits. |
| Commit Comments | Comments left on commits: body, author, the file path and line they point at, and reaction counters. |
| Commit Check Runs | CI checks reported for commits: status, conclusion, start and completion time, the output summary, the check suite, and the app that reported it. |
| Issues | Issues with their state, title, body, author, assignee, milestone, labels, reactions, and close date. GitHub counts every pull request as an issue, so pull requests land in this report as well. |
| Issue Comments | Comments on issues and pull requests: body, author, author association, and reaction counters. |
| Issue Events | The change log of issues: which event happened, who performed it, and the label, assignee, milestone, rename, or review request it carries. |
| Issue Milestones | Milestones with their state, description, due and close dates, creator, and the counters of open and closed issues. |
| Issue Labels | Label definitions of the repository: name, color, description, and the default flag. |
| Pull Requests | Pull requests with their state, title, body, author, assignee, milestone, labels, requested reviewers and teams, head and base refs, and the created, updated, closed, and merged dates. |
| Pull Request Commits | Commits attached to each pull request, with the same author, committer, and verification fields as the commit history. |
| Reviews | Pull request reviews: state, body, author, and submission time. |
| Review Comments | Comments left inside a review: body, file path, diff hunk, line and side of the diff, the review and commit they belong to, and reaction counters. |
| Pull Request Stats | Pull requests together with the diff statistics GitHub reports per pull request: commits, additions, deletions, changed files, comment counters, merge state, and the head and base repository. |
| Releases | Releases with their tag, name, body, draft and prerelease flags, author, publish date, attached assets, and reactions. |
| Deployments | Deployments with their environment, ref and SHA, task, description, creator, and the deployment payload. |
| Events | Repository activity events: type, actor, organization, and the event payload. |
| Workflows | GitHub Actions workflow definitions: name, path, state, and creation and update dates. |
| Workflow Runs | Runs of GitHub Actions workflows: status, conclusion, triggering event and actor, run number and attempt, head branch and commit, and the linked pull requests. |
| Workflow Jobs | Jobs of workflow runs: status, conclusion, runner, timing, the runner labels the job asked for, and the steps it went through. |
| Collaborators | Users with access to the repository, their role name, and the pull, triage, push, maintain, and admin permission flags. |
| Assignees | Users who can be assigned to issues and pull requests: login, type, and profile link. |
| Teams | Teams of the organization that owns the selected repositories: name, slug, description, privacy, permission, and the parent team. |
| Team Members | Membership of every team in that organization: login, type, and profile link. |
| Projects | Classic project boards: number, name, body, state, visibility, and creator. |
| Project Columns | Columns of classic project boards with their name and the project they belong to. |
| Project Cards | Cards of classic project boards: note, archive flag, creator, and the links to the column and the content behind the card. |
| Stargazers | Users who starred the repository, with the time each star was added. |
Repositories
Select the repositories the pipeline reads.

The picker lists every repository the authorized account can reach, with the owner/repo name under each title. Check the repositories to export, or click Select All.
The Repositories report type has no repository picker: it always returns every repository the account can reach.
Teams and Team Members are organization objects. Renta takes the organization from the owner of each selected repository, so a repository owned by a personal account contributes nothing to these two reports.
Parameters
Select the GitHub fields to include in the destination table. Your dataset schema is defined by the parameters you choose here.

| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the repository. |
Node ID text | node_id | GraphQL node identifier (base64 string). |
Name text | name | Short repository name (without owner prefix). For example: 'renta-website'. |
Full Name text | full_name | Full repository name in 'owner/repo' format. For example: 'dovhanich/renta-website'. |
Private bool | private | Whether the repository is private. |
Visibility text | visibility | Repository visibility. Values: public, private, internal. |
Fork bool | fork | Whether the repository is a fork of another repository. |
Archived bool | archived | Whether the repository is archived (read-only). |
Disabled bool | disabled | Whether the repository is disabled. |
Is Template bool | is_template | Whether the repository is a template that can be used to seed new repositories. |
Description text | description | Free-form description of the repository. May be null. |
Homepage text | homepage | Project homepage URL configured for the repository. May be null. |
Language text | language | Primary programming language detected by GitHub. May be null for empty repos. |
Default Branch text | default_branch | Name of the default branch (typically 'main' or 'master'). |
HTML URL text | html_url | Web URL of the repository on github.com. |
URL text | url | REST API URL of the repository. |
Git URL text | git_url | Git protocol clone URL (git://...). |
SSH URL text | ssh_url | SSH clone URL (git@github.com:...). |
Clone URL text | clone_url | HTTPS clone URL. |
SVN URL text | svn_url | Subversion-compatible URL. |
Mirror URL text | mirror_url | URL the repository is mirrored from. Null when not a mirror. |
Owner Login text | owner_login | Login (username or org slug) of the repository owner. |
Owner ID int | owner_id | Numeric ID of the owner account. |
Owner Type text | owner_type | Account type of the owner. Values: User, Organization. |
Owner Site Admin bool | owner_site_admin | Whether the owner account is a GitHub site administrator. |
Owner HTML URL text | owner_html_url | Web URL of the owner profile on github.com. |
License Key text | license_key | SPDX-like license key (e.g., '0bsd', 'mit'). Null when no license. |
License Name text | license_name | Human-readable license name. Null when no license. |
License SPDX ID text | license_spdx_id | Official SPDX identifier (e.g., '0BSD', 'MIT'). Null when no license. |
License URL text | license_url | API URL of the license definition. Null when no license. |
License Node ID text | license_node_id | GraphQL node ID of the license. Null when no license. |
Permissions Admin bool | permissions_admin | Whether the authenticated user has admin permission on the repository. |
Permissions Maintain bool | permissions_maintain | Whether the authenticated user has maintain permission. |
Permissions Push bool | permissions_push | Whether the authenticated user has push (write) permission. |
Permissions Triage bool | permissions_triage | Whether the authenticated user has triage permission. |
Permissions Pull bool | permissions_pull | Whether the authenticated user has pull (read) permission. |
Size int | size | Repository size in kilobytes. |
Stargazers Count int | stargazers_count | Number of users who starred the repository. |
Watchers Count int | watchers_count | Number of users watching the repository (alias of stargazers_count for legacy reasons). |
Watchers int | watchers | Watchers count (legacy duplicate of watchers_count). |
Forks Count int | forks_count | Number of forks of the repository. |
Forks int | forks | Forks count (legacy duplicate of forks_count). |
Open Issues Count int | open_issues_count | Number of open issues (includes pull requests). |
Open Issues int | open_issues | Open issues count (legacy duplicate of open_issues_count). |
Has Issues bool | has_issues | Whether the Issues feature is enabled. |
Has Projects bool | has_projects | Whether the Projects feature is enabled. |
Has Downloads bool | has_downloads | Whether the Downloads feature is enabled. |
Has Wiki bool | has_wiki | Whether the Wiki feature is enabled. |
Has Pages bool | has_pages | Whether the GitHub Pages feature is enabled. |
Has Discussions bool | has_discussions | Whether the Discussions feature is enabled. |
Has Pull Requests bool | has_pull_requests | Whether pull requests are allowed. |
Allow Forking bool | allow_forking | Whether forking the repository is allowed. |
Web Commit Signoff Required bool | web_commit_signoff_required | Whether commits made via the web UI must be signed off. |
Pull Request Creation Policy text | pull_request_creation_policy | Who is allowed to create pull requests. For example: 'all', 'collaborators'. |
Created At datetime | created_at | Timestamp when the repository was created. |
Updated At · Required datetime | updated_at | Timestamp when the repository metadata was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
Pushed At datetime | pushed_at | Timestamp of the last git push to the repository. |
Topics array_string | topics | Array of topic tags assigned to the repository. |
| Name | API name | Description |
|---|---|---|
Name text | name | Branch name (e.g., 'main', 'feature/new-thing'). |
Protected bool | protected | Whether branch protection rules are enabled for this branch. |
Commit SHA text | commit_sha | SHA-1 of the commit the branch currently points to (40-char hex). |
Commit URL text | commit_url | REST API URL of the commit the branch points to. |
| Name | API name | Description |
|---|---|---|
Name text | name | Tag name (e.g., 'v6.0.2'). |
Node ID text | node_id | GraphQL node identifier (base64 string) of the underlying Git ref. |
Zipball URL text | zipball_url | URL to download the tag content as a zip archive. |
Tarball URL text | tarball_url | URL to download the tag content as a tar.gz archive. |
Commit SHA text | commit_sha | SHA-1 of the commit the tag points to (40-char hex). |
Commit URL text | commit_url | REST API URL of the commit the tag points to. |
| Name | API name | Description |
|---|---|---|
SHA · Required text | sha | Commit SHA-1 hash (40-char hex). Primary identifier. |
Node ID text | node_id | GraphQL node identifier (base64 string). |
URL text | url | REST API URL of the commit. |
HTML URL text | html_url | Web URL of the commit on github.com. |
Comments URL text | comments_url | REST API URL of comments attached to this commit. |
Commit Message text | commit_message | Commit message text (markdown). May contain newlines. |
Commit Comment Count int | commit_comment_count | Number of comments attached to the commit. |
Commit Tree SHA text | commit_tree_sha | SHA of the tree object the commit points to. |
Commit Author Name text | commit_author_name | Git author name as recorded in the commit. |
Commit Author Email text | commit_author_email | Git author email as recorded in the commit. |
Commit Author Date · Required datetime | commit_author_date | Authoring timestamp recorded in the commit (when the change was written). |
Commit Authored Date · Required date | commit_authored_date | Day-granularity partition key derived from commit_author_date. Auto-included so destination tables can partition by day. |
Commit Committer Name text | commit_committer_name | Git committer name as recorded in the commit. |
Commit Committer Email text | commit_committer_email | Git committer email as recorded in the commit. |
Commit Committer Date datetime | commit_committer_date | Commit timestamp (when the commit was applied to the tree). |
Author Login text | author_login | GitHub login of the user matched as the commit author. Null when no GitHub account matches the author email. |
Author ID int | author_id | Numeric GitHub account ID of the author. Null when unmatched. |
Author Type text | author_type | Account type of the author. Values: User, Bot, Organization. Null when unmatched. |
Author Site Admin bool | author_site_admin | Whether the matched author account is a GitHub site administrator. |
Author HTML URL text | author_html_url | Web URL of the author profile on github.com. Null when unmatched. |
Committer Login text | committer_login | GitHub login of the user matched as the committer. Null when unmatched. |
Committer ID int | committer_id | Numeric GitHub account ID of the committer. Null when unmatched. |
Committer Type text | committer_type | Account type of the committer. Values: User, Bot, Organization. Null when unmatched. |
Committer Site Admin bool | committer_site_admin | Whether the matched committer account is a GitHub site administrator. |
Committer HTML URL text | committer_html_url | Web URL of the committer profile on github.com. Null when unmatched. |
Commit Verification json | commit_verification | Signature verification details (verified flag, reason, signature, payload, verified_at). Stored as JSON because shape varies by signing setup. |
Parents structure | parents | Array of parent commits. Most commits have one parent; merge commits have two or more; root commits have none. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the commit comment. |
Node ID text | node_id | GraphQL node identifier (base64 string). |
URL text | url | REST API URL of the comment. |
HTML URL text | html_url | Web URL of the comment on github.com. |
Commit ID text | commit_id | SHA-1 of the commit the comment is attached to (40-char hex). |
Path text | path | Path of the file the comment refers to. Null for commit-level (non-line) comments. |
Position int | position | Position in the diff where the comment was placed. Null for commit-level comments. |
Line int | line | Line number in the file the comment refers to. Null for commit-level comments. |
Author Association text | author_association | Author's relationship to the repository. Values: NONE, OWNER, MEMBER, COLLABORATOR, CONTRIBUTOR, FIRST_TIME_CONTRIBUTOR, FIRST_TIMER, MANNEQUIN. |
Body text | body | Comment body (markdown). |
User Login text | user_login | GitHub login of the comment author. |
User ID int | user_id | Numeric GitHub account ID of the comment author. |
User Type text | user_type | Account type of the author. Values: User, Bot, Organization. |
User Site Admin bool | user_site_admin | Whether the author is a GitHub site administrator. |
User HTML URL text | user_html_url | Web URL of the author's profile on github.com. |
Reactions URL text | reactions_url | API URL listing the individual reactions on this comment. |
Reactions Total Count int | reactions_total_count | Total number of reactions on the comment. |
Reactions Plus One int | reactions_plus_one | Count of '+1' (thumbs up) reactions. |
Reactions Minus One int | reactions_minus_one | Count of '-1' (thumbs down) reactions. |
Reactions Laugh int | reactions_laugh | Count of 'laugh' reactions. |
Reactions Hooray int | reactions_hooray | Count of 'hooray' reactions. |
Reactions Confused int | reactions_confused | Count of 'confused' reactions. |
Reactions Heart int | reactions_heart | Count of 'heart' reactions. |
Reactions Rocket int | reactions_rocket | Count of 'rocket' reactions. |
Reactions Eyes int | reactions_eyes | Count of 'eyes' reactions. |
Created At datetime | created_at | Timestamp when the comment was created. |
Updated At · Required datetime | updated_at | Timestamp when the comment was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the check run. |
Node ID text | node_id | GraphQL node identifier (base64 string). |
External ID text | external_id | Identifier assigned by the integration that created the check run (e.g., job UUID). |
Head SHA text | head_sha | SHA-1 of the commit the check run targets. |
Name text | name | Human-readable name of the check run (e.g., 'Analyze (javascript)'). |
Status text | status | Lifecycle status. Values: queued, in_progress, completed. |
Conclusion text | conclusion | Final result. Values: success, failure, neutral, cancelled, skipped, timed_out, action_required, stale. Null until status=completed. |
URL text | url | REST API URL of the check run. |
HTML URL text | html_url | Web URL of the check run on github.com. |
Details URL text | details_url | External URL with detailed run output (CI logs etc.). |
Started At datetime | started_at | Timestamp when the check run started. |
Completed At · Required datetime | completed_at | Timestamp when the check run finished. Null while status != completed. |
Completed Date · Required date | completed_date | Day-granularity partition key derived from completed_at. Auto-included so destination tables can partition by day. |
Output Title text | output_title | Title of the check run output. Null when no output set. |
Output Summary text | output_summary | Summary text of the check run output (markdown). Null when no output set. |
Output Text text | output_text | Detailed body of the check run output (markdown). Null when no output set. |
Output Annotations Count int | output_annotations_count | Number of annotations attached to the check run output. |
Output Annotations URL text | output_annotations_url | API URL listing annotations attached to the check run. |
Check Suite ID int | check_suite_id | Numeric identifier of the parent check suite. |
App json | app | GitHub App that created the check run. Includes id, slug, name, owner, permissions, events. Stored as JSON because the permissions and events sub-collections vary per app. |
Pull Requests structure | pull_requests | Pull requests associated with the check run's head SHA. May contain entries from forks of the repository. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the issue. |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the issue. |
Number int | number | Sequential issue number within the repository (also used in URLs). |
State text | state | Issue state. One of: open, closed. |
State Reason text | state_reason | Reason the issue is in its current state. One of: completed, reopened, not_planned, duplicate. Null for never-closed open issues. |
Locked bool | locked | Whether the issue conversation is locked to collaborators only. |
Active Lock Reason text | active_lock_reason | Reason for the lock when locked is true. One of: off-topic, too heated, resolved, spam. Null when not locked. |
Author Association text | author_association | Author's relationship to the repository. One of: NONE, OWNER, MEMBER, COLLABORATOR, CONTRIBUTOR, FIRST_TIME_CONTRIBUTOR. |
Draft bool | draft | Whether the linked pull request is in draft state. False for non-PR issues. |
Comments int | comments | Number of comments on the issue. |
Title text | title | Issue title. |
Body text | body | Issue body text in Markdown. May be null when the issue was opened without a description. |
URL text | url | API URL of the issue resource. |
Repository URL text | repository_url | API URL of the repository the issue belongs to. |
HTML URL text | html_url | Web URL of the issue page on github.com (for PR-issues this points to the PR page). |
Comments URL text | comments_url | API URL listing the issue's comments. |
Events URL text | events_url | API URL listing the issue's events. |
Labels URL text | labels_url | API URL templating the issue's labels endpoint. |
Timeline URL text | timeline_url | API URL listing the issue's timeline. |
User Login text | user_login | GitHub username of the issue author. |
User ID int | user_id | Numeric GitHub user ID of the issue author. |
User Type text | user_type | GitHub account type of the author. One of: User, Bot, Organization. |
User Site Admin bool | user_site_admin | Whether the author is a GitHub site administrator. |
User HTML URL text | user_html_url | Web URL of the author's profile page. |
Assignee Login text | assignee_login | GitHub username of the primary assignee. Null when nobody is assigned. |
Assignee ID int | assignee_id | Numeric GitHub user ID of the primary assignee. |
Assignee Type text | assignee_type | GitHub account type of the primary assignee. |
Assignee Site Admin bool | assignee_site_admin | Whether the primary assignee is a GitHub site administrator. |
Assignee HTML URL text | assignee_html_url | Web URL of the primary assignee's profile page. |
Closed By Login text | closed_by_login | GitHub username of the user who closed the issue. Null when the issue is open or was closed without a known user. |
Closed By ID int | closed_by_id | Numeric GitHub user ID of the closer. |
Closed By Type text | closed_by_type | GitHub account type of the closer. |
Closed By Site Admin bool | closed_by_site_admin | Whether the closer is a GitHub site administrator. |
Closed By HTML URL text | closed_by_html_url | Web URL of the closer's profile page. |
Milestone ID int | milestone_id | Numeric ID of the milestone the issue is assigned to. Null when no milestone is set. |
Milestone Number int | milestone_number | Sequential number of the milestone within the repository. |
Milestone Title text | milestone_title | Title of the milestone. |
Milestone State text | milestone_state | State of the milestone. One of: open, closed. |
Milestone Due On datetime | milestone_due_on | Due-on timestamp of the milestone. May be null. |
Created At datetime | created_at | Timestamp when the issue was created. |
Updated At · Required datetime | updated_at | Timestamp when the issue was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
Closed At datetime | closed_at | Timestamp when the issue was closed. Null while the issue is open. |
Labels structure | labels | Array of labels attached to the issue. |
Assignees structure | assignees | Array of all users assigned to the issue. The primary assignee is also exposed via the flattened assignee_* columns. |
Pull Request json | pull_request | When the issue is actually a pull request, this object contains url, html_url, diff_url, patch_url and merged_at. Null for plain issues. Stored as JSON. |
Reactions json | reactions | Reactions summary object (url, total_count, +1, -1, laugh, hooray, confused, heart, rocket, eyes). Stored as JSON because keys like '+1' are not valid SQL identifiers. |
Performed Via Github App json | performed_via_github_app | GitHub App that opened the issue. Null for human-created issues. When non-null, contains the full app object. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the comment. |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the comment. |
Author Association text | author_association | Author's relationship to the repository. One of: NONE, OWNER, MEMBER, COLLABORATOR, CONTRIBUTOR, FIRST_TIME_CONTRIBUTOR, FIRST_TIMER, MANNEQUIN. |
Body text | body | Comment text in Markdown format. |
URL text | url | API URL of the comment resource. |
HTML URL text | html_url | Web URL of the comment anchor on github.com. |
Issue URL text | issue_url | API URL of the issue (or PR) the comment belongs to. |
User Login text | user_login | GitHub username of the comment author. |
User ID int | user_id | Numeric GitHub user ID of the comment author. |
User Type text | user_type | GitHub account type of the author. One of: User, Bot, Organization. |
User Site Admin bool | user_site_admin | Whether the author is a GitHub site administrator. |
User HTML URL text | user_html_url | Web URL of the author's profile page. |
Created At datetime | created_at | Timestamp when the comment was created. |
Updated At · Required datetime | updated_at | Timestamp when the comment was last edited. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
Reactions json | reactions | Reactions summary object containing url, total_count and counters per reaction kind (+1, -1, laugh, hooray, confused, heart, rocket, eyes). Stored as JSON. |
Performed Via Github App json | performed_via_github_app | GitHub App that posted the comment. Null when the comment was posted by a human or an OAuth app. When present, contains the full app object. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the event. |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the event. |
Event text | event | Event type. Common values: closed, reopened, merged, labeled, unlabeled, assigned, unassigned, milestoned, demilestoned, locked, unlocked, renamed, review_requested, review_dismissed, head_ref_force_pushed, head_ref_deleted, mentioned, subscribed, referenced, head_ref_restored, ready_for_review, convert_to_draft, auto_merge_enabled, etc. |
Commit ID text | commit_id | SHA of the commit associated with the event (e.g., the merge commit for a merged event). Null when the event is not commit-related. |
Commit URL text | commit_url | API URL of the commit referenced by commit_id. Null when commit_id is null. |
State Reason text | state_reason | State reason associated with closed/reopened events. One of: completed, reopened, not_planned, duplicate. Null for events that do not change issue state. |
Actor Login text | actor_login | GitHub username of the user who performed the event. Null for system-generated events. |
Actor ID int | actor_id | Numeric GitHub user ID of the actor. |
Actor Type text | actor_type | GitHub account type of the actor. One of: User, Bot, Organization. |
Actor Site Admin bool | actor_site_admin | Whether the actor is a GitHub site administrator. |
Actor HTML URL text | actor_html_url | Web URL of the actor's profile page. |
Issue ID int | issue_id | Numeric ID of the issue the event belongs to (denormalised from the embedded issue object). |
Issue Number int | issue_number | Sequential issue number within the repository. |
Issue URL text | issue_url | API URL of the issue. |
URL text | url | API URL of the event resource. |
Created At · Required datetime | created_at | Timestamp when the event happened. |
Created Date · Required date | created_date | Day-granularity partition key derived from created_at. Auto-included so destination tables can partition by day. |
Label json | label | Label payload for labeled/unlabeled events. Object with name and color. Null for other events. Stored as JSON. |
Assignee json | assignee | Assignee payload for assigned/unassigned events. User object. Null for other events. Stored as JSON. |
Assigner json | assigner | Assigner payload for assigned/unassigned events. User object identifying who performed the (un)assignment. Null for other events. Stored as JSON. |
Milestone json | milestone | Milestone payload for milestoned/demilestoned events. Object with title. Null for other events. Stored as JSON. |
Rename json | rename | Rename payload for renamed events. Object with from and to titles. Null for other events. Stored as JSON. |
Lock Reason text | lock_reason | Lock reason for locked events. One of: off-topic, too heated, resolved, spam. Null for other events. |
Requested Reviewer json | requested_reviewer | User payload for review_requested / review_request_removed events. Null for other events. Stored as JSON. |
Requested Team json | requested_team | Team payload for team review request events. Null for other events. Stored as JSON. |
Review Requester json | review_requester | User who requested the review. Null for other events. Stored as JSON. |
Dismissed Review json | dismissed_review | Dismissed-review payload for review_dismissed events. Object with state, review_id, dismissal_message, dismissal_commit_id. Null for other events. Stored as JSON. |
Project Card json | project_card | Project-card payload for project-card-related events (added_to_project, moved_columns_in_project, removed_from_project, converted_note_to_issue). Null for other events. Stored as JSON. |
Performed Via Github App json | performed_via_github_app | GitHub App that triggered the event. Null when triggered by a human or OAuth app. Stored as JSON when present. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the milestone. |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the milestone. |
Number int | number | Sequential milestone number within the repository. |
State text | state | Milestone state. One of: open, closed. |
Title text | title | Milestone title. |
Description text | description | Free-form description of the milestone. May be null or empty string. |
Open Issues int | open_issues | Number of open issues currently associated with this milestone. |
Closed Issues int | closed_issues | Number of closed issues currently associated with this milestone. |
URL text | url | API URL of the milestone resource. |
HTML URL text | html_url | Web URL of the milestone page on github.com. |
Labels URL text | labels_url | API URL listing labels associated with this milestone. |
Creator Login text | creator_login | GitHub username of the user who created the milestone. |
Creator ID int | creator_id | Numeric GitHub user ID of the milestone creator. |
Creator Type text | creator_type | GitHub account type of the creator. One of: User, Bot, Organization. |
Creator Site Admin bool | creator_site_admin | Whether the creator is a GitHub site administrator. |
Creator HTML URL text | creator_html_url | Web URL of the creator's profile page. |
Created At datetime | created_at | Timestamp when the milestone was created. |
Updated At · Required datetime | updated_at | Timestamp when the milestone was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
Due On datetime | due_on | Planned due date of the milestone. May be null when no due date is set. |
Closed At datetime | closed_at | Timestamp when the milestone was closed. Null while the milestone is open. |
| Name | API name | Description |
|---|---|---|
ID int | id | Unique numeric identifier of the label. |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the label. |
Name text | name | Label name (e.g., bug, documentation, duplicate). |
Color text | color | Six-character hex color code without the leading hash sign. |
Default bool | default | Whether this label is one of GitHub's default labels created with every repository. |
Description text | description | Free-form description of the label. May be null. |
URL text | url | API URL of the label resource. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the pull request (distinct from the issue id of the same PR). |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the pull request. |
Number int | number | Sequential PR number within the repository. |
State text | state | PR state. One of: open, closed. |
Locked bool | locked | Whether the PR conversation is locked to collaborators only. |
Active Lock Reason text | active_lock_reason | Reason for the lock when locked is true. One of: off-topic, too heated, resolved, spam. Null when not locked. |
Author Association text | author_association | Author's relationship to the repository. One of: NONE, OWNER, MEMBER, COLLABORATOR, CONTRIBUTOR, FIRST_TIME_CONTRIBUTOR. |
Draft bool | draft | Whether the PR is in draft state. |
Title text | title | PR title. |
Body text | body | PR description in Markdown. May be null when no description was provided. |
Merge Commit SHA text | merge_commit_sha | SHA of the test merge commit (or, after merging, the merge commit). May be null until GitHub computes it. |
URL text | url | API URL of the pull request resource. |
HTML URL text | html_url | Web URL of the PR page on github.com. |
Diff URL text | diff_url | URL of the unified diff for this PR. |
Patch URL text | patch_url | URL of the patch file for this PR. |
Issue URL text | issue_url | API URL of the corresponding issue (PRs are also issues in GitHub). |
Commits URL text | commits_url | API URL listing the PR's commits. |
Review Comments URL text | review_comments_url | API URL listing the PR's review comments. |
Comments URL text | comments_url | API URL listing the PR's issue comments. |
Statuses URL text | statuses_url | API URL listing combined statuses for the head SHA. |
User Login text | user_login | GitHub username of the PR author. |
User ID int | user_id | Numeric GitHub user ID of the PR author. |
User Type text | user_type | GitHub account type of the author. One of: User, Bot, Organization. |
User Site Admin bool | user_site_admin | Whether the author is a GitHub site administrator. |
User HTML URL text | user_html_url | Web URL of the author's profile page. |
Assignee Login text | assignee_login | GitHub username of the primary assignee. Null when nobody is assigned. |
Assignee ID int | assignee_id | Numeric GitHub user ID of the primary assignee. |
Assignee Type text | assignee_type | GitHub account type of the primary assignee. |
Assignee Site Admin bool | assignee_site_admin | Whether the primary assignee is a GitHub site administrator. |
Assignee HTML URL text | assignee_html_url | Web URL of the primary assignee's profile page. |
Milestone ID int | milestone_id | Numeric ID of the milestone the PR is assigned to. Null when no milestone is set. |
Milestone Number int | milestone_number | Sequential number of the milestone within the repository. |
Milestone Title text | milestone_title | Title of the milestone. |
Milestone State text | milestone_state | State of the milestone. One of: open, closed. |
Milestone Due On datetime | milestone_due_on | Due-on timestamp of the milestone. May be null. |
Head Label text | head_label | Head branch label in the form 'owner:branch'. |
Head Ref text | head_ref | Head branch name (the branch the PR is bringing in). |
Head SHA text | head_sha | SHA of the head commit at the latest push. |
Head User Login text | head_user_login | GitHub username of the owner of the head fork. Same as base_user_login when the PR is not from a fork. |
Base Label text | base_label | Base branch label in the form 'owner:branch'. |
Base Ref text | base_ref | Base branch name (the branch the PR is targeting). |
Base SHA text | base_sha | SHA of the base branch tip at the time the PR data was fetched. |
Base User Login text | base_user_login | GitHub username of the owner of the base repository. |
Auto Merge json | auto_merge | Auto-merge configuration. When set, contains enabled_by, merge_method, commit_title, commit_message. Stored as JSON because the structure is small but variable. Null when auto-merge is not enabled. |
Created At datetime | created_at | Timestamp when the PR was created. |
Updated At · Required datetime | updated_at | Timestamp when the PR was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
Closed At datetime | closed_at | Timestamp when the PR was closed (merged or closed without merge). Null while the PR is open. |
Merged At datetime | merged_at | Timestamp when the PR was merged. Null when the PR is not merged. |
Labels structure | labels | Array of labels attached to the PR. |
Assignees structure | assignees | Array of all users assigned to the PR. The primary assignee is also exposed via the flattened assignee_* columns. |
Requested Reviewers structure | requested_reviewers | Array of users with a pending review request on this PR. |
Requested Teams structure | requested_teams | Array of teams with a pending review request on this PR. |
Head Repo json | head_repo | Full repository object of the head branch (head.repo). Contains 50+ fields including owner, license, topics, counts. Stored as JSON due to size and variability. |
Base Repo json | base_repo | Full repository object of the base branch (base.repo). Contains 50+ fields including owner, license, topics, counts. Stored as JSON due to size and variability. |
| Name | API name | Description |
|---|---|---|
SHA text | sha | 40-character commit SHA. Acts as the primary identifier. |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the commit. |
URL text | url | API URL of the commit resource. |
HTML URL text | html_url | Web URL of the commit page on github.com. |
Comments URL text | comments_url | API URL listing comments on this commit. |
Commit Message text | commit_message | Commit message text. |
Commit Comment Count int | commit_comment_count | Number of comments left on the commit. |
Commit URL text | commit_url | API URL of the underlying git commit object. |
Commit Author Name text | commit_author_name | Author name as recorded in the git commit (free-form, may differ from the GitHub user's display name). |
Commit Author Email text | commit_author_email | Author email as recorded in the git commit. |
Commit Author Date datetime | commit_author_date | Author timestamp as recorded in the git commit. |
Commit Committer Name text | commit_committer_name | Committer name as recorded in the git commit. |
Commit Committer Email text | commit_committer_email | Committer email as recorded in the git commit. |
Commit Committer Date datetime | commit_committer_date | Committer timestamp as recorded in the git commit. |
Commit Tree SHA text | commit_tree_sha | SHA of the git tree object pointed to by this commit. |
Commit Tree URL text | commit_tree_url | API URL of the git tree object. |
Commit Verification Verified bool | commit_verification_verified | Whether the commit signature was successfully verified by GitHub. |
Commit Verification Reason text | commit_verification_reason | Verification reason code. For example: valid, unsigned, invalid, gpgverify_error. |
Commit Verification Signature text | commit_verification_signature | PGP/SSH signature attached to the commit. Null when unsigned. |
Commit Verification Payload text | commit_verification_payload | Signed payload that was used for verification. Null when unsigned. |
Commit Verification Verified At datetime | commit_verification_verified_at | Timestamp when the verification was performed. Null when unsigned. |
Author Login text | author_login | GitHub username of the commit author. Null when the commit cannot be matched to a GitHub user (e.g., unknown email). |
Author ID int | author_id | Numeric GitHub user ID of the commit author. |
Author Type text | author_type | GitHub account type of the author. One of: User, Bot, Organization. |
Author Site Admin bool | author_site_admin | Whether the author is a GitHub site administrator. |
Author HTML URL text | author_html_url | Web URL of the author's profile page. |
Committer Login text | committer_login | GitHub username of the committer. Null when the committer cannot be matched to a GitHub user. |
Committer ID int | committer_id | Numeric GitHub user ID of the committer. |
Committer Type text | committer_type | GitHub account type of the committer. One of: User, Bot, Organization. |
Committer Site Admin bool | committer_site_admin | Whether the committer is a GitHub site administrator. |
Committer HTML URL text | committer_html_url | Web URL of the committer's profile page. |
Parents structure | parents | Array of parent commits. A regular commit has one parent; a merge commit has two or more. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the review. |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the review. |
Commit ID text | commit_id | SHA of the commit the review was submitted on. |
State text | state | Review state. One of: APPROVED, CHANGES_REQUESTED, COMMENTED, DISMISSED, PENDING. |
Author Association text | author_association | Reviewer's relationship to the repository. One of: NONE, OWNER, MEMBER, COLLABORATOR, CONTRIBUTOR, FIRST_TIME_CONTRIBUTOR. |
Body text | body | Top-level review comment body in Markdown. May be empty string when only inline comments were left. |
HTML URL text | html_url | Web URL of the review on github.com. |
Pull Request URL text | pull_request_url | API URL of the pull request the review belongs to. |
User Login text | user_login | GitHub username of the reviewer. |
User ID int | user_id | Numeric GitHub user ID of the reviewer. |
User Type text | user_type | GitHub account type of the reviewer. One of: User, Bot, Organization. |
User Site Admin bool | user_site_admin | Whether the reviewer is a GitHub site administrator. |
User HTML URL text | user_html_url | Web URL of the reviewer's profile page. |
Submitted At · Required datetime | submitted_at | Timestamp when the review was submitted. |
Submitted Date · Required date | submitted_date | Day-granularity partition key derived from submitted_at. Auto-included so destination tables can partition by day. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the review comment. |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the review comment. |
Pull Request Review ID int | pull_request_review_id | Numeric identifier of the parent review (from the reviews endpoint). Null when the comment is a standalone single-comment review. |
Commit ID text | commit_id | SHA of the commit the comment was made on (current commit at comment time). |
Original Commit ID text | original_commit_id | SHA of the commit the comment was originally made on, before any rebase/force-push. |
Author Association text | author_association | Author's relationship to the repository. One of: NONE, OWNER, MEMBER, COLLABORATOR, CONTRIBUTOR. |
Side text | side | Side of the diff the comment is on. One of: LEFT (deletion side), RIGHT (addition side). |
Start Side text | start_side | For multi-line comments, side where the highlighted range begins. One of: LEFT, RIGHT. Null for single-line comments. |
Subject Type text | subject_type | What the comment refers to. One of: line, file. |
Path text | path | Path of the file the comment was made on, relative to the repository root. |
Diff Hunk text | diff_hunk | The diff hunk surrounding the comment, including context lines and the changed line. |
Position int | position | Line number in the diff after the most recent push (1-based, counted from the diff hunk header). Null when the comment is outdated. |
Original Position int | original_position | Line number in the diff at comment-creation time. |
Line int | line | Line number in the file (right side) for line-anchored comments. Null for file-level or outdated comments. |
Original Line int | original_line | Original line number in the file at comment-creation time. |
Start Line int | start_line | First line of a multi-line comment range. Null for single-line comments. |
Original Start Line int | original_start_line | First line of a multi-line comment range at comment-creation time. Null for single-line comments. |
Body text | body | Comment text in Markdown. |
URL text | url | API URL of the review comment resource. |
HTML URL text | html_url | Web URL of the comment anchor on github.com. |
Pull Request URL text | pull_request_url | API URL of the parent pull request. |
User Login text | user_login | GitHub username of the comment author. |
User ID int | user_id | Numeric GitHub user ID of the comment author. |
User Type text | user_type | GitHub account type of the author. One of: User, Bot, Organization. |
User Site Admin bool | user_site_admin | Whether the author is a GitHub site administrator. |
User HTML URL text | user_html_url | Web URL of the author's profile page. |
Created At datetime | created_at | Timestamp when the comment was created. |
Updated At · Required datetime | updated_at | Timestamp when the comment was last edited. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
Reactions json | reactions | Reactions summary object (url, total_count, +1, -1, laugh, hooray, confused, heart, rocket, eyes). Stored as JSON because keys like '+1' are not valid SQL identifiers. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the pull request. |
Node ID text | node_id | Base64-encoded GraphQL node identifier of the pull request. |
Number int | number | Sequential PR number within the repository. |
Commits int | commits | Total number of commits in the pull request. |
Additions int | additions | Total number of lines added across all files in the pull request. |
Deletions int | deletions | Total number of lines removed across all files in the pull request. |
Changed Files int | changed_files | Number of files modified by the pull request. |
Comments int | comments | Number of issue-level comments on the pull request. |
Review Comments int | review_comments | Number of review (inline) comments on the pull request. |
Merged bool | merged | Whether the pull request has been merged. |
Mergeable bool | mergeable | Whether the pull request can be merged cleanly. Null while GitHub is computing the test merge. |
Rebaseable bool | rebaseable | Whether the pull request can be rebased cleanly. Null while computing. |
Mergeable State text | mergeable_state | Detailed mergeability state. One of: clean, dirty, blocked, behind, unstable, unknown, has_hooks, draft. |
Maintainer Can Modify bool | maintainer_can_modify | Whether maintainers of the base repository are allowed to push to the head branch. |
Merge Commit SHA text | merge_commit_sha | SHA of the merge commit (after merging) or test merge commit (while open). May be null. |
State text | state | PR state. One of: open, closed. |
Locked bool | locked | Whether the PR conversation is locked. |
Active Lock Reason text | active_lock_reason | Lock reason. One of: off-topic, too heated, resolved, spam. Null when not locked. |
Author Association text | author_association | Author's relationship to the repository. |
Draft bool | draft | Whether the PR is in draft state. |
Title text | title | PR title. |
Body text | body | PR description in Markdown. May be null. |
URL text | url | API URL of the pull request resource. |
HTML URL text | html_url | Web URL of the PR page on github.com. |
Diff URL text | diff_url | URL of the unified diff for this PR. |
Patch URL text | patch_url | URL of the patch file for this PR. |
Issue URL text | issue_url | API URL of the corresponding issue. |
Commits URL text | commits_url | API URL listing the PR's commits. |
Review Comments URL text | review_comments_url | API URL listing the PR's review comments. |
Comments URL text | comments_url | API URL listing the PR's issue comments. |
Statuses URL text | statuses_url | API URL listing combined statuses for the head SHA. |
User Login text | user_login | GitHub username of the PR author. |
User ID int | user_id | Numeric GitHub user ID of the PR author. |
User Type text | user_type | GitHub account type of the author. |
User Site Admin bool | user_site_admin | Whether the author is a site administrator. |
User HTML URL text | user_html_url | Web URL of the author's profile page. |
Assignee Login text | assignee_login | GitHub username of the primary assignee. Null when nobody is assigned. |
Assignee ID int | assignee_id | Numeric GitHub user ID of the primary assignee. |
Assignee Type text | assignee_type | GitHub account type of the primary assignee. |
Assignee Site Admin bool | assignee_site_admin | Whether the primary assignee is a site administrator. |
Assignee HTML URL text | assignee_html_url | Web URL of the primary assignee's profile page. |
Merged By Login text | merged_by_login | GitHub username of the user who merged the PR. Null when the PR is not merged. |
Merged By ID int | merged_by_id | Numeric GitHub user ID of the merger. |
Merged By Type text | merged_by_type | GitHub account type of the merger. |
Merged By Site Admin bool | merged_by_site_admin | Whether the merger is a site administrator. |
Merged By HTML URL text | merged_by_html_url | Web URL of the merger's profile page. |
Milestone ID int | milestone_id | Numeric ID of the milestone the PR is assigned to. Null when no milestone is set. |
Milestone Number int | milestone_number | Sequential number of the milestone within the repository. |
Milestone Title text | milestone_title | Title of the milestone. |
Milestone State text | milestone_state | State of the milestone. One of: open, closed. |
Milestone Due On datetime | milestone_due_on | Due-on timestamp of the milestone. May be null. |
Head Label text | head_label | Head branch label in the form 'owner:branch'. |
Head Ref text | head_ref | Head branch name. |
Head SHA text | head_sha | SHA of the head commit at the latest push. |
Head User Login text | head_user_login | GitHub username of the owner of the head fork. |
Base Label text | base_label | Base branch label in the form 'owner:branch'. |
Base Ref text | base_ref | Base branch name. |
Base SHA text | base_sha | SHA of the base branch tip at the time the PR data was fetched. |
Base User Login text | base_user_login | GitHub username of the owner of the base repository. |
Auto Merge json | auto_merge | Auto-merge configuration. When set, contains enabled_by, merge_method, commit_title, commit_message. Stored as JSON. Null when auto-merge is not enabled. |
Created At datetime | created_at | Timestamp when the PR was created. |
Updated At · Required datetime | updated_at | Timestamp when the PR was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
Closed At datetime | closed_at | Timestamp when the PR was closed. Null while the PR is open. |
Merged At datetime | merged_at | Timestamp when the PR was merged. Null when not merged. |
Labels structure | labels | Array of labels attached to the PR. |
Assignees structure | assignees | Array of all users assigned to the PR. |
Requested Reviewers structure | requested_reviewers | Array of users with a pending review request on this PR. |
Requested Teams structure | requested_teams | Array of teams with a pending review request on this PR. |
Head Repo json | head_repo | Full repository object of the head branch (head.repo). Stored as JSON due to size. |
Base Repo json | base_repo | Full repository object of the base branch (base.repo). Stored as JSON due to size. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the release. |
Node ID text | node_id | GraphQL global node identifier (base64 string). |
Tag Name text | tag_name | Name of the Git tag associated with the release. |
Target Commitish text | target_commitish | Commitish value that determines where the Git tag is created from. Typically a branch name (e.g., 'main', 'release/1.117') or a commit SHA. |
Name text | name | Display name of the release. May be null for releases without a custom name. |
Draft bool | draft | Whether the release is a draft (unpublished). |
Prerelease bool | prerelease | Whether the release is identified as a prerelease. |
Immutable bool | immutable | Whether the release is immutable (cannot be edited or deleted). |
Body text | body | Release notes / description text. May contain Markdown. |
URL text | url | API URL of the release resource. |
HTML URL text | html_url | Human-facing GitHub URL of the release. |
Assets URL text | assets_url | API URL for the assets attached to this release. |
Upload URL text | upload_url | Templated URL used to upload binary assets to the release. |
Tarball URL text | tarball_url | URL to download the source code as a tar.gz archive. |
Zipball URL text | zipball_url | URL to download the source code as a zip archive. |
Author Login text | author_login | GitHub username of the release author. |
Author ID int | author_id | Numeric GitHub user ID of the release author. |
Author Type text | author_type | Author account type. Typically 'User' or 'Bot'. |
Author Site Admin bool | author_site_admin | Whether the author has GitHub staff (site_admin) status. |
Author HTML URL text | author_html_url | GitHub profile URL of the release author. |
Created At · Required datetime | created_at | Timestamp when the underlying tagged commit was created. |
Created Date · Required date | created_date | Day-granularity partition key derived from created_at. Auto-included so destination tables can partition by day. |
Updated At datetime | updated_at | Timestamp when the release was last updated. |
Published At datetime | published_at | Timestamp when the release was published. Null while in draft state. |
Assets structure | assets | Array of binary assets attached to the release. |
Reactions json | reactions | Reaction counts for the release (total_count, +1, -1, laugh, hooray, confused, heart, rocket, eyes). Stored as JSON to avoid creating numerous narrow columns. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the deployment. |
Node ID text | node_id | GraphQL global node identifier (base64 string). |
Task text | task | Deployment task name. Typically 'deploy' or 'deploy:migrations'. |
Original Environment text | original_environment | Environment originally targeted at deployment creation. |
Environment text | environment | Current environment of the deployment (may differ from original after promotion). |
Transient Environment bool | transient_environment | Whether the environment is ephemeral and should be auto-cleaned (e.g., preview deployments). |
Production Environment bool | production_environment | Whether the environment represents production. |
SHA text | sha | 40-character commit SHA the deployment was created from. |
Ref text | ref | Git ref that was deployed (branch name, tag, or commit SHA). |
Description text | description | Optional free-form description of the deployment. Often null. |
URL text | url | API URL of the deployment resource. |
Statuses URL text | statuses_url | API URL listing deployment statuses for this deployment. |
Repository URL text | repository_url | API URL of the repository the deployment belongs to. |
Creator Login text | creator_login | GitHub username that triggered the deployment. |
Creator ID int | creator_id | Numeric GitHub user ID of the deployment creator. |
Creator Type text | creator_type | Creator account type. Typically 'User' or 'Bot'. |
Creator Site Admin bool | creator_site_admin | Whether the creator has GitHub staff (site_admin) status. |
Created At datetime | created_at | Timestamp when the deployment was created. |
Updated At · Required datetime | updated_at | Timestamp when the deployment was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
Payload json | payload | Free-form JSON payload sent at deployment creation. Schema is user-defined and varies per integration; commonly an empty object. |
Performed Via Github App json | performed_via_github_app | Embedded GitHub App that performed the deployment when applicable. Contains app id, slug, owner, permissions, events, and timestamps. Stored as JSON due to deeply nested permissions/events sub-structures and high field count. |
| Name | API name | Description |
|---|---|---|
ID · Required text | id | Unique identifier of the event. Returned by the API as a numeric string. |
Type text | type | Event type. Values include PushEvent, PullRequestEvent, IssueCommentEvent, IssuesEvent, WatchEvent, ForkEvent, CreateEvent, DeleteEvent, ReleaseEvent, etc. |
Public bool | public | Whether the event was emitted in the public timeline. |
Actor ID int | actor_id | Numeric GitHub user ID of the actor that performed the event. |
Actor Login text | actor_login | GitHub username (login) of the actor. |
Actor Display Login text | actor_display_login | Display variant of the actor's login (case-preserving). Usually identical to login. |
Repo ID int | repo_id | Numeric identifier of the repository the event refers to. |
Repo Name text | repo_name | Full name of the repository in 'owner/repo' format. |
Repo URL text | repo_url | API URL of the repository. |
Org ID int | org_id | Numeric identifier of the organization for organization-scoped events. Null when the event is not org-scoped. |
Org Login text | org_login | Login of the organization for organization-scoped events. Null when the event is not org-scoped. |
Created At · Required datetime | created_at | Timestamp when the event occurred. |
Created Date · Required date | created_date | Day-granularity partition key derived from created_at. Auto-included so destination tables can partition by day. |
Payload json | payload | Event-specific payload. Schema varies by event type (PushEvent has push_id/ref/head/before/commits; PullRequestEvent has action/number/pull_request; IssueCommentEvent has action/issue/comment; etc.). Stored as JSON because the structure is not fixed. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the workflow. |
Node ID text | node_id | GraphQL global node identifier (base64 string). |
State text | state | Current state of the workflow. Common values: active, deleted, disabled_fork, disabled_inactivity, disabled_manually. |
Name text | name | Display name of the workflow as defined by its 'name:' key. |
Path text | path | Repository-relative path of the workflow YAML file (e.g., '.github/workflows/test.yml'). |
URL text | url | API URL of the workflow resource. |
HTML URL text | html_url | Public GitHub URL of the workflow file in the repository. |
Badge URL text | badge_url | URL of the workflow status badge image. |
Created At datetime | created_at | Timestamp when the workflow was first observed by GitHub Actions. |
Updated At · Required datetime | updated_at | Timestamp when the workflow file was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the workflow run. |
Node ID text | node_id | GraphQL global node identifier (base64 string). |
Workflow ID int | workflow_id | Numeric identifier of the workflow this run belongs to. |
Check Suite ID int | check_suite_id | Numeric identifier of the check suite associated with the run. |
Check Suite Node ID text | check_suite_node_id | GraphQL global node identifier of the check suite. |
Status text | status | Current status of the run. Values: queued, in_progress, completed, waiting, requested, pending. |
Conclusion text | conclusion | Final outcome of the run. Values: success, failure, cancelled, skipped, timed_out, action_required, neutral, stale. Null while the run is still in progress. |
Event text | event | Event that triggered the run. Examples: push, pull_request, schedule, workflow_dispatch, repository_dispatch. |
Name text | name | Workflow display name (mirrors workflows.name). |
Display Title text | display_title | Human-readable title for the run, typically the head commit message subject. |
Head Branch text | head_branch | Branch name the run was triggered against. |
Head SHA text | head_sha | 40-character commit SHA the run was executed against. |
Path text | path | Repository-relative path of the workflow YAML file. |
Run Number int | run_number | Sequential run counter within the workflow, monotonically increasing. |
Run Attempt int | run_attempt | Attempt number for this run. Starts at 1; incremented on rerun. |
URL text | url | API URL of the workflow run. |
HTML URL text | html_url | Public GitHub URL of the workflow run. |
Jobs URL text | jobs_url | API URL listing the jobs that belong to this run. |
Logs URL text | logs_url | API URL to download archived logs of the run. |
Check Suite URL text | check_suite_url | API URL of the associated check suite. |
Artifacts URL text | artifacts_url | API URL listing artifacts produced by the run. |
Cancel URL text | cancel_url | API URL to cancel the run while it is still in progress. |
Rerun URL text | rerun_url | API URL to rerun the workflow. |
Workflow URL text | workflow_url | API URL of the workflow definition this run was created from. |
Previous Attempt URL text | previous_attempt_url | API URL of the previous attempt of this run. Null when this is the first attempt. |
Actor Login text | actor_login | GitHub username of the actor associated with the run (the user under whose context the run is attributed). |
Actor ID int | actor_id | Numeric GitHub user ID of the actor. |
Actor Type text | actor_type | Actor account type. Typically 'User' or 'Bot'. |
Actor Site Admin bool | actor_site_admin | Whether the actor has GitHub staff (site_admin) status. |
Triggering Actor Login text | triggering_actor_login | GitHub username of the user that actually triggered the run (may differ from actor on rerun). |
Triggering Actor ID int | triggering_actor_id | Numeric GitHub user ID of the triggering actor. |
Triggering Actor Type text | triggering_actor_type | Triggering actor account type. Typically 'User' or 'Bot'. |
Triggering Actor Site Admin bool | triggering_actor_site_admin | Whether the triggering actor has GitHub staff (site_admin) status. |
Head Commit ID text | head_commit_id | SHA of the head commit the run was executed against. |
Head Commit Tree ID text | head_commit_tree_id | Git tree SHA of the head commit. |
Head Commit Message text | head_commit_message | Commit message of the head commit. |
Head Commit Timestamp datetime | head_commit_timestamp | Authoring timestamp of the head commit. |
Head Commit Author Name text | head_commit_author_name | Display name of the head commit author. |
Head Commit Author Email text | head_commit_author_email | Email address of the head commit author. |
Head Commit Committer Name text | head_commit_committer_name | Display name of the head commit committer. |
Head Commit Committer Email text | head_commit_committer_email | Email address of the head commit committer. |
Created At · Required datetime | created_at | Timestamp when the run was created. |
Created Date · Required date | created_date | Day-granularity partition key derived from created_at. Auto-included so destination tables can partition by day. |
Updated At datetime | updated_at | Timestamp when the run was last updated. |
Run Started At datetime | run_started_at | Timestamp when the run actually started executing. |
Pull Requests structure | pull_requests | Array of pull requests linked to the run. Empty when the run was not triggered by, and is not associated with, any pull request. |
Referenced Workflows json | referenced_workflows | Array of reusable workflows referenced by this run. Each entry has path/sha/ref. Variable length and often empty; stored as JSON. |
Repository json | repository | Embedded repository object (id, node_id, name, full_name, private, owner, plus dozens of templated *_url fields). Stored as JSON because flattening would create 70+ low-value columns. |
Head Repository json | head_repository | Embedded head repository (the fork or branch source). Same shape as 'repository'. Stored as JSON for the same reason. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the workflow job. |
Run ID int | run_id | Numeric identifier of the parent workflow run. |
Run Attempt int | run_attempt | Attempt number of the parent run. Starts at 1; incremented on rerun. |
Node ID text | node_id | GraphQL global node identifier (base64 string). |
Runner ID int | runner_id | Numeric identifier of the runner that executed the job. Null when the job was skipped or has not yet started. |
Runner Group ID int | runner_group_id | Numeric identifier of the runner group the runner belongs to. |
Status text | status | Current status of the job. Values: queued, in_progress, completed, waiting. |
Conclusion text | conclusion | Final outcome of the job. Values: success, failure, cancelled, skipped, timed_out, action_required, neutral. Null while the job is still in progress. |
Name text | name | Display name of the job (typically the matrix-resolved label). |
Workflow Name text | workflow_name | Display name of the workflow this job belongs to. |
Head Branch text | head_branch | Branch name the parent run was triggered against. |
Head SHA text | head_sha | 40-character commit SHA the job was executed against. |
URL text | url | API URL of the workflow job. |
HTML URL text | html_url | Public GitHub URL of the workflow job. |
Run URL text | run_url | API URL of the parent workflow run. |
Check Run URL text | check_run_url | API URL of the check run associated with this job. |
Runner Name text | runner_name | Display name of the runner that executed the job. |
Runner Group Name text | runner_group_name | Name of the runner group the runner belongs to. |
Labels array_string | labels | List of runner labels requested by the 'runs-on' field of the job (e.g., ['ubuntu-latest']). |
Created At datetime | created_at | Timestamp when the job was created. |
Started At · Required datetime | started_at | Timestamp when the job actually started executing. |
Started Date · Required date | started_date | Day-granularity partition key derived from started_at. Auto-included so destination tables can partition by day. |
Completed At datetime | completed_at | Timestamp when the job finished. Null while still in progress. |
Steps structure | steps | Array of steps that compose the job, in execution order. |
| Name | API name | Description |
|---|---|---|
ID int | id | Unique numeric identifier of the GitHub user. |
Node ID text | node_id | Global node identifier (base64-encoded) used by the GitHub GraphQL API. |
Login text | login | GitHub username (handle). |
Type text | type | Account type. For example: User, Organization, Bot. |
Site Admin bool | site_admin | Whether the user is a GitHub site administrator. |
HTML URL text | html_url | URL of the collaborator's public GitHub profile page. |
Role Name text | role_name | Repository role assigned to the collaborator. For example: read, triage, write, maintain, admin. |
Permissions Pull bool | permissions_pull | Whether the collaborator has pull (read) permission on the repository. |
Permissions Triage bool | permissions_triage | Whether the collaborator has triage permission on the repository. |
Permissions Push bool | permissions_push | Whether the collaborator has push (write) permission on the repository. |
Permissions Maintain bool | permissions_maintain | Whether the collaborator has maintain permission on the repository. |
Permissions Admin bool | permissions_admin | Whether the collaborator has admin permission on the repository. |
| Name | API name | Description |
|---|---|---|
ID int | id | Unique numeric identifier of the GitHub user. |
Node ID text | node_id | Global node identifier (base64-encoded) used by the GitHub GraphQL API. |
Login text | login | GitHub username (handle). |
Type text | type | Account type. For example: User, Organization, Bot. |
Site Admin bool | site_admin | Whether the user is a GitHub site administrator. |
HTML URL text | html_url | URL of the assignee's public GitHub profile page. |
| Name | API name | Description |
|---|---|---|
ID int | id | Unique numeric identifier of the team. |
Node ID text | node_id | Global node identifier (base64-encoded) used by the GitHub GraphQL API. |
Slug text | slug | URL-friendly team identifier within the organization. |
Name text | name | Display name of the team. |
Description text | description | Free-form description of the team. Nullable. |
Privacy text | privacy | Team visibility within the organization. For example: closed, secret. |
Notification Setting text | notification_setting | Notification setting for the team. For example: notifications_enabled, notifications_disabled. |
Permission text | permission | Default permission the team has on its associated repositories. For example: pull, triage, push, maintain, admin. |
URL text | url | API URL of the team. |
HTML URL text | html_url | Browser URL of the team page on GitHub. |
Members URL text | members_url | API URL template for listing team members. |
Repositories URL text | repositories_url | API URL for listing team repositories. |
Parent ID int | parent_id | Numeric ID of the parent team. Null when the team has no parent. |
Parent Slug text | parent_slug | Slug of the parent team. Null when the team has no parent. |
Parent Name text | parent_name | Display name of the parent team. Null when the team has no parent. |
| Name | API name | Description |
|---|---|---|
ID int | id | Unique numeric identifier of the GitHub user. |
Node ID text | node_id | Global node identifier (base64-encoded) used by the GitHub GraphQL API. |
Login text | login | GitHub username (handle). |
Type text | type | Account type. For example: User, Organization, Bot. |
Site Admin bool | site_admin | Whether the user is a GitHub site administrator. |
HTML URL text | html_url | URL of the team member's public GitHub profile page. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the project (classic). |
Node ID text | node_id | Global node identifier (base64-encoded) used by the GitHub GraphQL API. |
Number int | number | Sequential project number within its owner (repository or organization). |
Name text | name | Display name of the project. |
Body text | body | Free-form description / body of the project. Nullable. |
State text | state | Project state. Values: open, closed. |
Organization Permission text | organization_permission | Base permission granted to organization members on this project. For example: read, write, admin, none. Nullable for repository-owned projects. |
Private bool | private | Whether the project is private to the owner. Nullable for repository-owned projects. |
URL text | url | API URL of the project. |
HTML URL text | html_url | Browser URL of the project page on GitHub. |
Owner URL text | owner_url | API URL of the project owner (repository or organization). |
Columns URL text | columns_url | API URL for listing the project's columns. |
Creator Login text | creator_login | GitHub username of the project creator. |
Creator ID int | creator_id | Numeric GitHub user ID of the project creator. |
Creator Type text | creator_type | Account type of the project creator. For example: User, Organization, Bot. |
Created At datetime | created_at | Timestamp when the project was created. |
Updated At · Required datetime | updated_at | Timestamp when the project was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the project column. |
Node ID text | node_id | Global node identifier (base64-encoded) used by the GitHub GraphQL API. |
Name text | name | Display name of the column. For example: To Do, In Progress, Done. |
URL text | url | API URL of the project column. |
Project URL text | project_url | API URL of the parent project that owns this column. |
Cards URL text | cards_url | API URL for listing the cards within this column. |
Created At datetime | created_at | Timestamp when the column was created. |
Updated At · Required datetime | updated_at | Timestamp when the column was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | Unique numeric identifier of the project card. |
Node ID text | node_id | Global node identifier (base64-encoded) used by the GitHub GraphQL API. |
Note text | note | Free-form note text on the card. Null when the card references an issue or pull request via content_url. |
Archived bool | archived | Whether the card has been archived. |
URL text | url | API URL of the card. |
Project URL text | project_url | API URL of the parent project that owns this card. |
Column URL text | column_url | API URL of the column that currently holds this card. |
Content URL text | content_url | API URL of the linked content (issue or pull request). Null for note-only cards. |
Creator Login text | creator_login | GitHub username of the card creator. |
Creator ID int | creator_id | Numeric GitHub user ID of the card creator. |
Creator Type text | creator_type | Account type of the card creator. For example: User, Organization, Bot. |
Created At datetime | created_at | Timestamp when the card was created. |
Updated At · Required datetime | updated_at | Timestamp when the card was last updated. |
Updated Date · Required date | updated_date | Day-granularity partition key derived from updated_at. Auto-included so destination tables can partition by day. |
| Name | API name | Description |
|---|---|---|
Starred At · Required datetime | starred_at | Timestamp when the user starred the repository. Returned by GitHub when the request includes the 'application/vnd.github.star+json' Accept header. |
Starred Date · Required date | starred_date | Day-granularity partition key derived from starred_at. Auto-included so destination tables can partition by day. |
User Login text | user_login | GitHub username of the stargazer. |
User ID · Required int | user_id | Numeric GitHub user ID of the stargazer. |
User Type text | user_type | Stargazer account type. Typically 'User' or 'Organization'. |
User Site Admin bool | user_site_admin | Whether the stargazer has GitHub staff (site_admin) status. |
User HTML URL text | user_html_url | GitHub profile URL of the stargazer. |
User Node ID text | user_node_id | GraphQL global node identifier of the stargazer (base64 string). |
Every row shows the field name with the destination column name below it: Node ID becomes the node_id column.
The set of available fields depends on the report type. Renta flattens the objects GitHub nests inside a record, so the author of a commit arrives as Author Login, Author ID, Author Type, and Author HTML URL, and the milestone of a pull request as Milestone ID, Milestone Title, Milestone State, and Milestone Due On.
Fields that hold a list of objects load as nested records.
| Report type | Fields that load as nested records |
|---|---|
| Commits, Pull Request Commits | Parents |
| Issues | Labels, Assignees |
| Pull Requests, Pull Request Stats | Labels, Assignees, Requested Reviewers, Requested Teams |
| Releases | Assets |
| Commit Check Runs, Workflow Runs | Pull Requests |
| Workflow Jobs | Steps |
Fields whose shape depends on the record itself arrive as JSON. These are Payload in Events and Deployments, Reactions wherever GitHub reports them, Auto Merge, Head Repo, and Base Repo in the pull request reports, Repository, Head Repository, and Referenced Workflows in Workflow Runs, and the entity fields of Issue Events such as Label, Assignee, Milestone, and Rename.
Renta pre-selects three required fields and locks them in the list: the record key (ID, or SHA for Commits and User ID for Stargazers), the modification date (Updated At, Created At, and similar), and the day-granularity date the destination table is partitioned by (Updated Date, Created Date, and similar). Report types that carry no date load in full and have no locked fields.
Table name
Name the pipeline and the destination table.

- Integration name.
The name of the pipeline. It is used exclusively in the Renta interface. - Table name.
The destination table name. You can keep the auto-generated name or enter your own.
Date range
Set the historical period to load. By default, Date start is the first day of the current month and Date end is Today.

- Date start.
The first date of the extraction period. - Date end.
The last date of the extraction period. You can pick a fixed date or a relative option such as Today.
Renta keeps only the records whose date falls inside the range. A repository nobody updated within the range does not reach the Repositories table, and neither does a pull request untouched since last year. Set Date start far enough back for the history you need.
Branches, Tags, Issue Labels, Pull Request Commits, Collaborators, Assignees, Teams, and Team Members carry no date, so they ignore the range and load in full.
Overwrite period
The overwrite period defines how many recent days Renta reloads on every run. Renta pre-selects the date parameter the report type is partitioned by, so the setting is visible for every report type in the table below.

| Date parameter | Report types |
|---|---|
| Updated At | Repositories, Commit Comments, Issues, Issue Comments, Issue Milestones, Pull Requests, Review Comments, Pull Request Stats, Deployments, Workflows, Projects, Project Columns, Project Cards |
| Created At | Issue Events, Releases, Events, Workflow Runs |
| Commit Author Date | Commits |
| Completed At | Commit Check Runs |
| Started At | Workflow Jobs |
| Submitted At | Reviews |
| Starred At | Stargazers |
On each run, Renta re-fetches the data starting from the date of the last successful run minus the overwrite period. The affected days are deleted from the destination table and inserted again, while older data stays untouched.
The options range from Without overwrite data to Overwrite all data. The default is Last 1 day.
On Google BigQuery and ClickHouse, Renta tracks its own sync point and upserts records by their identifier, so the overwrite period does not change the loaded window there. See Sync strategy below.
Schedule
Choose how often the pipeline runs.

| Schedule type | Description |
|---|---|
| Manual | The pipeline runs only when triggered manually through the interface or via API. |
| Daily | The pipeline runs once a day at the specified update time. |
| Interval | The pipeline runs at specified time intervals. |
| Cron Expression | The pipeline runs on a schedule defined by a cron expression. |
For Daily schedules, set the Update time, the exact time each run starts, then click Create pipeline.

Renta also supports API triggers and integration with external orchestrators such as Apache Airflow, Dagster, and Prefect. See the full scheduling documentation for details.
The new pipeline appears in the Pipelines section under the ETL tab, where you can track its runs, progress, and the destination table name.

Limitations
The GitHub API sets boundaries that apply to every pipeline built on this source.
| Limitation | Description |
|---|---|
| API rate limit | GitHub allows 5000 requests per hour for the authorized account, and every pipeline on the connection draws from that budget. When it runs out, the run stops with a rate limit message and resumes on the next scheduled tick. |
| Commit history scope | The Commits report reads the default branch of each repository. Commits that live only on other branches reach the warehouse through Pull Request Commits. |
| Event retention | GitHub keeps repository events for the last 90 days, so the Events report cannot reach further back no matter how the date range is set. |
| Classic project boards | GitHub retired Projects (classic) on 23 August 2024 and migrated the boards to Projects v2, which the REST API does not expose. Projects, Project Columns, and Project Cards return rows only for accounts that still hold classic boards. |
| Organization-only objects | Teams and Team Members exist only for organizations. Repositories owned by a personal account are skipped, and the run finishes without rows for them. |
| Run duration | Pull Request Commits, Reviews, Pull Request Stats, Commit Check Runs, Workflow Jobs, and Project Cards describe objects nested inside other objects, so they take the longest to load and consume the largest share of the hourly budget. |
Sync strategy
How Renta synchronizes a GitHub report depends on the report type and on whether the destination supports merge.
| Strategy | Supported report types | Description |
|---|---|---|
| Incremental (merge) | Repositories, Commits, Commit Comments, Commit Check Runs, Issues, Issue Comments, Issue Events, Issue Milestones, Pull Requests, Reviews, Review Comments, Pull Request Stats, Releases, Deployments, Events, Workflows, Workflow Runs, Workflow Jobs, Projects, Project Columns, Project Cards, Stargazers (on Google BigQuery and ClickHouse) | Renta requests the records changed since the previous run and upserts them into the destination table by the record id. Commits are matched by sha and Stargazers by user_id. Every run re-reads a three-hour overlap, so a change that reached GitHub late is still picked up. The first run loads the date range you configured. |
| Incremental | The same report types on the remaining destinations | The destination table is partitioned by the day of the record date. On every run Renta reads the window from the last successful run minus the overwrite period, and the affected daily partitions are deleted and inserted again. Older partitions stay untouched. |
| Full reload | Branches, Tags, Issue Labels, Pull Request Commits, Collaborators, Assignees, Teams, Team Members | These objects carry no modification date, so Renta reads them in full on every run and replaces the contents of the destination table. The table mirrors the selected repositories at the time of the run. |
Pull Request Commits offers the Commit Author Date parameter, so the Overwrite Period control appears for it. The report still reloads in full, because GitHub reports no modification date for a commit inside a pull request.
A record that GitHub stops returning, such as a deleted issue, stays in the destination table of a report type loaded incrementally. Full reload report types drop it on the next run.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.