GitHub

Automated access management to github users, code repos, permission groups, and projects.

Setup

On the Github integration page in the Hyphen app:

  1. Add Hyphen to your Github organization.
  2. Submit your GitHub Installation ID and Backup Verification Email to connect it to Hyphen. If an integration connection cannot be automatically setup, the backup verification email will be sent a link where it can be verified manually.

Configuration

FieldTypeDescription
installationIdnumber (required)Unique installation ID generated when installing an application in GitHub. Used for generating an access token and pulling githubOrgId and githubOrgName.
githubOrgIdnumberPulled during the integration setup. Used for reference.
githubOrgNamestringPulled during the integration setup. Used for requests that reference this key.
verificationEmailstring (required)Backup email address used to verify ownership of a resource when no associated email address is available.

Connections

User

User connections can only connect to existing users in GitHub. If no input is provided to connect to an existing user, the member email will be used.

Prerequisites:

  • Users must be "active" in the GitHub organization.

Configuration

FieldTypeDescription
userIdstring (optional)GitHub username.
emailstringPublic email address of the GitHub user. Defaults to member email in Hyphen if not publicly available.
orgSlugstringThe githubOrgName from the integration configuration.
profileUrlstringURL of the GitHub public profile page.

Connection Input

A connection can be created by providing the GitHub username.

Verification

ScenarioAction
Public email matches the member emailNo verification needed.
Public email does not match the member emailA verification email is sent to the GitHub user email address.
No public email availableA verification email is sent to the integration's backup verificationEmail.

Permission Group

These can connect to existing teams in GitHub, or a new team will be created if no input is provided.

Configuration

FieldTypeDescription
teamSlugstringUnique team slug in GitHub used for reference in future requests.
orgSlugstringThe githubOrgName from the integration configuration.
teamNamestringDisplay name of the team in GitHub.
teamIdnumberUnique team ID in GitHub.

Connection Input

Provide the GitHub team name to create a connection to an existing team.

Verification

ScenarioAction
Admin with public email existsVerification handled by the admin.
No admin with public emailVerification email sent to the integration's backup verificationEmail.

Access

A User connection will be added as the default “Member” role when added to the team.


Code Repository

These can connect to existing repositories in GitHub, or a new repository will be created if no input is provided.

Configuration

FieldTypeDescription
repositoryIdstringUnique repository ID in GitHub.
orgSlugstringThe githubOrgName from the integration configuration.
repositoryNamestringRepository name in GitHub for display and reference.

Connection Input

Provide the GitHub repository name to create a connection to an existing repository.

Verification

A verification email is sent to the integration's verificationEmail for existing repositories.

Access

A Team connection will be added as a “Maintain” role when added to the code repository.


Project Board

These can connect to existing projects in GitHub, or a new project will be created if no input is provided.

Configuration

FieldTypeDescription
idstringUnique project ID in GitHub.
projectSlugstringGitHub project number used for reference in future requests.
orgSlugstringThe githubOrgName from the integration configuration.
repositoryNamestringRepository name in GitHub for display and reference.

Connection Input

Provide the GitHub project slug to create a connection to an existing project.

Verification

A verification email is sent to the integration's verificationEmail for existing projects.

Access

A Team connection will be added as a “Read” role when added to the project.