Providers

GitHub

Connect GitHub: authentication, permissions, what Noru collects, and troubleshooting.

Authentication
GitHub App
Categories
Repository, Security
Sync cadence
Daily by default (hourly, weekly, or monthly on request)
Requested access
Metadata: ReadAdministration (repository): ReadPull requests: ReadIssues: ReadActions: ReadCode scanning alerts: ReadSecret scanning alerts: ReadDependabot alerts: ReadRepository security advisories: ReadMembers: ReadAdministration (organization): ReadSelf-hosted runners: ReadProjects: Read

Noru connects to GitHub as a GitHub App installed on your organization. You choose which repositories the installation covers, and Noru mints a short-lived installation token for each sync. The App never requests the Contents permission, so it cannot read source code.

What Noru collects

Evidence typeEvidenceRead from
RepositoryGitHub Repository, one per repositoryRepository details
PolicyGitHub Access Control (collaborators and teams); GitHub Repository Settings (default branch protection)Collaborators, teams, branch rules
Scan resultGitHub Security Scanning, only when alerts existCode scanning and Dependabot alerts
ConfigurationGitHub Security ConfigurationWhether secret scanning is on or off
ProcedureWorkflow Automation; Pull Request WorkflowWorkflow runs, pull requests
LogIssue TrackingIssues

Each repository becomes an asset with the external id github:repo: plus its full name. Collaborator emails become personnel identities in the people directory. Findings cover Dependabot and code scanning alerts plus derived checks: public repositories (medium), repositories without CI/CD workflows (low), unprotected default branches (high). Evidence maps to IAM, asset, secure lifecycle, change, vulnerability, and configuration management controls.

What Noru does not collect

  • File contents. The App does not request Contents and no contents call is made.
  • Branches. Listing them needs Contents, so it is skipped deliberately.
  • Secret or variable values, and the contents of secret-scanning alerts. Only the on or off status of secret scanning is stored.
  • Organization membership. No organization-level calls are made.

The App also requests permissions the sync never uses: Secret scanning alerts, Repository security advisories, and the organization-level Members, Administration, Self-hosted runners, and Projects. You are granting more than Noru reads.

Before you connect

  • Owner permission on the GitHub organization, or an installation approval from an owner.
  • A decision on which repositories to include. You can pick all or a subset on GitHub's install screen.
  • Popups allowed for the Noru app origin.
  • Admin or editor role in Noru.

Connect

Connect data source dialog on the configure step for GitHub with Integration name, Sync frequency, and Auto-syncConnect data source dialog on the configure step for GitHub with Integration name, Sync frequency, and Auto-sync
GitHub uses the generic connect dialog, then the GitHub install popup.
Open Data Sources, click Connect Data Source, and pick GitHub in the Connect data source dialog.
Fill in Integration name, choose a Sync frequency, and leave Auto-sync on.
Click Connect. A popup opens the GitHub App installation page.
Choose the organization and either all repositories or selected ones, then click GitHub's install button.
Noru verifies that the signed-in GitHub user can see the installation and shows "GitHub App integration completed successfully!".

The GitHub user token used for that verification is not persisted. The resulting integration is named "GitHub - Noru Collector" and syncs daily, regardless of what you typed in Integration name and Sync frequency; rename it and change the frequency from the detail drawer afterwards.

After connecting

The first sync reads every repository the installation covers; changing the selection on GitHub is picked up on the next sync. Findings land in Findings and assets in Assets. If the App is uninstalled, the next sync marks the source Disconnected with "GitHub App installation not found. The app may have been uninstalled from the organization."

Permissions in detail

PermissionWhy Noru needs itWhat it could technically allow
Metadata: ReadRepository list and detailsRead repository metadata for every covered repository
Administration (repository): ReadCollaborators, teams, branch rulesRead repository settings and access lists
Pull requests: ReadPull request workflow evidenceRead all pull requests, including descriptions
Issues: ReadIssue tracking evidenceRead all issues and comments
Actions: ReadWorkflow runsRead workflow run history and logs metadata
Code scanning alerts: ReadSecurity scanning evidence and findingsRead every code scanning alert
Dependabot alerts: ReadSecurity scanning evidence and findingsRead every Dependabot alert
Secret scanning alerts: ReadNot used by the syncRead secret scanning alert contents
Repository security advisories: ReadNot used by the syncRead draft advisories
Members, Administration (organization), Self-hosted runners, Projects: ReadNot used by the syncRead organization members, settings, runners, and projects

Collaborator emails are resolved through the users endpoint with the installation token, which returns only what each user has made public.

Troubleshooting

  • "Popup blocked. Please allow popups for this site." Allow popups and retry.
  • "Installation window closed. Please try again if the installation did not complete." The popup closed before GitHub confirmed the installation.
  • "GitHub installation is already connected to another organization" means this installation id belongs to a different Noru organization; install the App on a separate GitHub organization or delete the other connection.
  • "You do not have access to this GitHub installation" means the signed-in GitHub user cannot see the installation; sign in as an organization owner.
  • "No repositories available for sync. Please check your GitHub App installation." The installation covers zero repositories.

Last updated on