Jump to a Section

Overview

When you add a GitHub card to a Flow for the first time, you’ll be prompted to configure the connection. This will enable you to connect your GitHub account, save your account information, and reuse the connection in new Flows that include GitHub. The GitHub connector uses OAuth protocol.

Note: You can create multiple connections and manage them from your Settings page.

Create a new connection from an Event or Action card

  1. Click New Connection.
  2. Enter a Connection Nickname. This is useful if you plan to create multiple GitHub connections to share with your team.
  3. Click Create.
  4. In the Sign In dialog, enter an email address and password, then click Sign In, to log in to your GitHub account. Optionally, you can use your corporate single sign-on credentials.
  5. Click Allow to authorize access to your GitHub account.

Configure GitHub connector in Workflows

Prerequisites

  • Okta Workflows admin credentials
  • GitHub credentials

Procedure

  1. In the Okta Workflows Console, go to Settings > Connections.
  2. Click New Connection. Available connectors pop up in a window.
  3. Select GitHub.
  4. Enter the Connection Nickname and click Create. The GitHub OAuth Login window opens.
  5. Sign in to GitHub using admin credentials. You are prompted to authorize the GitHub connector.
  6. Click Authorize.

The GitHub connector is now configured and this connection is ready to be used with available action cards for the connector.

Deauthorize or Uninstall GitHub connector in Workflows

You can delete individual GitHub connections to deauthorize the GitHub application connector or uninstall the entire GitHub application connector.

Prerequisites

  • Okta Workflows admin credentials
  • GitHub credentials

Delete a GitHub connection in Workflows

Procedure

  1. In the Okta Workflows Console, go to Settings > Connections.
  2. Click Delete next to the connection you want to delete. Delete Connection window pops up.
  3. On the window, click Confirm.

The connection is now deleted.

Supported Scopes

admin:org
user
repo
delete_repo
admin:repo_hook

    Actions

    • Add User to Organization

      Add a user to an organization in GitHub.

      Note: To use this action card in a Flow, you must set up SAML support for your app in your GitHub instance.

      Note: To use this action card, you must be the owner of the organization.

      Options

      • Organization (dropdown): organizations in GitHub

      Input

      • User
        • SCIM userName: unique identifier assigned to the user by you
        • Given Name: first name of the user
        • Family Name: last name of the user
        • Email: email address of the user
        • Email Type: email address type; for example, work

      Output

      • Result
        • SCIM User ID: unique identifier generated by the GitHub SCIM endpoint
        • External ID: unique identifier that’s generated by the SAML provider and matched against a GitHub user
        • Is Active?: indicates whether the identity is active (true) or should be deprovisioned (false)
        • Location: city-specific location of the user
    • Add User to Repository

      Add a user to a repository in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Input

      • User
        • Username: username for the user; can be an login or username; for example firstlastname-okta
        • Permission (dropdown): permissions available to team members; options are Pull, Pull and Push, or Pull, Push and Administer
      • Repository
        • Owner: username of the repository owner; if the repository is personal, then enter a username; if the repository is organization-owned, then enter the name of the organization
        • Name: name of the repository

      Note: If a user already has access to the repository but is not a member (for example, an organization owner), they will be added as a collaborator in the repository.

      Output

      • Result
        • Invitation ID: invitation_id_parameter value for the user invitation
        • Invitee: username of the invited user
        • Inviter: username of the creater of the invitation
        • Permissions: permissions available to team members
        • Created At: date and time when the invitation was created
        • Invitation URL: URL of the invitation for the new user
        • Status Code (number): success or failure of your HTTP request; here is a list of all status codes
    • Add User to Team

      Add a user to a team in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: To use this action card, you must be the owner of the organization.

      Options

      • Organization (dropdown): organizations in GitHub

      Input

      • User
        • Username: username for the user; can be an login or username
        • Role: role of the user; options are Member or Team Maintainer
        • Team (dropdown): list of teams to which the user can be added

      Output

      • Status Code (number): success or failure of your HTTP request; here is a list of all status codes
    • Create Branch

      Create a new Branch in GitHub.

    • Create File Content

      Creates File Contents in GitHub.

    • Create An Issue

      Creates a new issue or update an existing issue in GitHub.

      Options

      • Organization (text): the name of the org that contains the repo
      • Repository (text): the name of the repo the issue will be assigned to

      Input

      • Issue
        • Title (text): The title of the issue.
        • Description (text): The issue’s description.
        • Assignees (text): The logins of the users to whom this issue should be assigned.
        • Milestone Number (number): The milestone to which to associate this issue.
        • Labels (text): Labels to associate with this issue.

      Output

      • Issue
        • Issue ID (number): The unique identifier for the issue.
        • Issue URL (text): The issue’s URL.
        • Repository URL (text): A URL that points to the repository the issue belongs to.
        • Labels URL (text): A URL that contains the labels associated with the issue.
        • Comments URL (text): A URL that contains comments associated with the issue.
        • Events URL (text): A URL that contains events associated with the issue.
        • HTML URL (text): A URL that contains a human-readable HTML version of the issue.
        • Issue Number (number): The number assigned to the issue.
        • State (text): The state of the issue.
        • Title (text): The title of the issue.
        • Description (text): The description of the issue.
        • User ID (number): The ID of the user who raised the issue.
        • User Name (text): The login of the user who raised the issue.
        • Labels (object): The list of labels associated with the issue.
        • Assignee ID (text): The ID of the user to whom the issue is assigned.
        • Assignee Name (text): The login of the user to whom the issue is assigned.
        • Assignees (text): The list of users to whom the issue is assigned.
        • Milestone ID (text): The unique identifier for the milestone that the issue is associated with.
        • Milestone Number (number): The milestone number associated with the issue.
        • Milestone State (text): The state of the milestone.
        • Milestone Title (text): The title of the milestone.
        • Is Locked? (true/false): If true, the issue is locked.
        • Comments Count (number): The number of comments on the issue.
        • Created At (date): The time the issue was created.
        • Updated At (date): The time the issue was last updated.
    • Create Pull Request

      Create a new Pull Request in GitHub.

    • Custom API Action

      Make a custom HTTP Request to the Github API.

      Options

      • Request Type (dropdown): use the appropriate request type depending on the endpoint/method
        • GET
        • POST
        • PUT
        • PATCH
        • DELETE

      Input

      Note: The version of the api is handled by the connector in the Accept header.

      • Query (object): Specify any additional query parameters that should be included in object format (key value pairs).
      • Headers (object): Specify any headers required in addition to authorization or content-type (these are already handled by this connector).
      • Body (object): Specify a request body in JSON format. Only available for POST, PUT, and PATCH requests.

      Output

      Response

      • Status Code (number): success or failure of your HTTP request. Here is a list of all status codes.
      • Headers (object): a detailed context for the status code, unrelated to the output body. Response headers are dependent on your selected HTTP request option. Note that not all headers are response headers. This will usually be a replica of the example below.

        Example: {"Content-type":"application/json"}
      • Body (object): data returned from your selected HTTP request (for example, the data from a GET request).

    • Read Issue

      Reads an Issue given an Issue number in GitHub.

    • Get Pull Request

      Read a pull request from GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Options

      • Organization (dropdown): A list of available organizations in GitHub.
      • Repository (dropdown): The repository that contains the pull request.

      Input

      • Pull Request
        • Pull Request Number: The number of the pull request to read.

      Output

      • Pull Request
        • State: The state of the pull request.
        • Title: The title of the pull request.
        • Description: The description of the pull request.
        • Author Association: The relationship of the author to the subject of the comment.
        • Username: The login of the user who raised the pull request.
        • User Node ID: The node ID of the user.
        • User ID: The ID of the user who raised the issue.
        • Assignee Username: The login of the user to whom the pull request is assigned.
        • Assignee Node ID: The node ID of the assignee.
        • Merged By: The ID of the user to whom the pull request is assigned.
        • Assignees (object): The users to whom the pull request is assigned.
        • Requested Reviewers (object): The users who were requested to review the pull request.
        • Requested Teams (object): The teams who were requested to review the pull request.
        • Labels (object): The list of labels associated with the pull request.
        • Is Mergeable? (true/false): If true, the pull request can be merged. If null, GitHub is determining whether the pull can be merged.
        • Mergeable State: The current state of the merge; one of: clean, dirty, or unstable.
        • Pull Request ID (number): The ID of the pull request.
        • Pull Request Node ID: The node ID of the pull request.
        • Pull Request Number: The pull request’s URL.
        • Milestone Title: The title of the milestone associated with the pull request.
        • Milestone ID: The unique identifier for the milestone that the pull request is associated with.
        • Merge Commit SHA: The state of the milestone.
        • Milestone Number (number): The milestone number milestone that the pull request is associated with.
        • Assignee ID (number): The ID of the user to whom the pull request is assigned.
        • Active Lock Reason: The reason for a lock, if any.
        • BASE Branch: The base branch of the pull request.
        • HEAD Branch: The head branch of the pull request.
        • Diff URL: A URL that contains a diff for the pull request.
        • HTML URL: A URL that contains a human-readable HTML version of the pull request.
        • Patch URL: A URL that contains a patch for the pull request.
        • Created At (date): The time the pull request was created.
        • Merged At (date): The time the pull request was merged.
        • Closed At (date): The time the pull request was closed.
        • Updated At (date): The time the pull request was last updated.
        • Is Merged? (true/false): If true, the pull request has been merged.
        • Is Maintainer Can Modify? (true/false): If true, the upstream maintainers can modify the pull request.
        • Is Locked? (true/false): If true, the pull request is locked.
        • Is Draft? (true/false): If true, the pull request is a draft.
        • Additions Count (number): The number of additions included in the pull request.
        • Review Comments Count (number): The number of review comments included in the pull request.
        • Comments Count (number): The number of comments included in the pull request.
        • Deletions Count (number): The number of deletions included in the pull request.
        • Changed Files Count (number): The number of files changed by the pull request.
        • Commits Count (number): The number of commits included in the pull request.
    • Read Repository

      Reads a Repository given Repository Owner and Repository Name in GitHub.

    • Read User

      Read a user’s GitHub profile.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: To use this action card in a Flow, you must set up SAML support for your app in your GitHub instance. If SAML support isn’t set up properly, search results will only product public information for a user.

      Input

      • Username: username for the user; can be an login or username

      Output

      • Result
        • Username: username for the user; can be an login or username
        • User ID: user’s unique identifier
        • Global Node ID: node_id value of the user in the GitHub API
        • Avatar URL: URL of the user’s avatar
        • HTML URL: URL of the user page; example, https://github.com/octocat
        • Type: type of user; example, User
        • Is Site Admin?: indicates whether the user is a site admin; if yes, True, otherwise False
        • Public Name: publicly displayed name of the user
        • Blog URL: URL of the user’s blog
        • Company: company where the user is employed
        • Location: city of residence of the user
        • Email: email address of the user
        • Is Hireable?: indicates whether the user is hireable; if yes, True, otherwise False
        • Biograpy: brief description of the user
        • Twitter Username: the Twitter handle of the user
        • Public Repositories: number of public repositories to which the user has access
        • Public Gists: number of public gists to which the user has access
        • Followers: number of followers of the user
        • Following: number of people whom the user follows
        • Created At: date and time when the user profile created
        • Updated At: date and time when the user profile was last updated
        • SCIM User ID: unique identifier generated by the GitHub SCIM endpoint
        • SCIM Username: username for the user generated by the GitHub SCIM endpoint
        • External ID: unique identifier that’s generated by the SAML provider and matched against a GitHub user
        • Given Name: firt name of the user
        • Family Name: last name of the user
        • Emails (list): emails associated with the user
        • Is Active?: indicates whether the identity is active (true) or should be deprovisioned (false)
        • Resource Type: resource type for the user
    • Remove User from Organization

      Remove a user from an organization in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: To use this action card in a Flow, you must set up SAML support for your app in your GitHub instance. If SAML support is set up properly, then a user can be fully removed from an organization. If SAML support is not set up properly or is disabled, a user will be removed from an organization but SCIM data will remain.

      Note: To use this action card, you must be the owner of the organization.

      Options

      • Organization (dropdown): organizations in GitHub

      Input

      • User
        • Username: username for the user; can be an login or username

      Output

      • Status Code (number): success or failure of your HTTP request; here is a list of all status codes
    • Remove User from Repository

      Remove a user from a repository in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: To use this action card, you must be the owner of the organization.

      Input

      • User
        • Username: username for the user; can be an login or username
      • Repository
        • Owner: organization or person who owns the repository
        • Name: name of the repository

      Output

      • Status Code (number): success or failure of your HTTP request; here is a list of all status codes
    • Remove User from Team

      Remove a user from a team in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: To use this action card, you must be the owner of the organization.

      Options

      • Organization (dropdown): organizations in GitHub

      Input

      • User
        • Username: username for the user; can be an login or username
        • Team (dropdown): list of teams to which the user currently belongs

      Output

      • Status Code (number): success or failure of your HTTP request; here is a list of all status codes
    • Search Branches

      Searches Branches in GitHub.

    • Search Organizations

      Search for organizations in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: For more accurate results, avoid using partial strings in your input query.

      Note: Due to GitHub limitations, a maximum of 1000 records can be returned with this action card.

      Options

      • Result Set (dropdown):
        • First Matching Record: returns the first record that matches
        • All Matching Records: returns all matching records as a list

      Input

      • Name: name of the organization

      Output

      • Result
        • Organizations:
          • ID: unique identifier for the organization
          • Global Node ID: node_id value of the organization in the GitHub API
          • Name: name of the organization
          • Description: description of the organization

    • Search Repositories

      Search for repositories in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: For more accurate results, avoid using partial strings in your input query.

      Note: Due to GitHub limitations, a maximum of 1000 records can be returned with this action card.

      Options

      • Result Set (dropdown):
        • First Matching Record: returns the first record that matches
        • All Matching Records: returns all matching records as a list

      Input

      • Repository
        • Repository Name: name of the repository
        • Description: short description of the repository
        • Contents of README: contents of the preferred README for a repository
        • Organization: organization to which the repository belongs
        • Language: language of the repository
        • Topic: list of topics for a repository
        • License: name value of the license for a repository
        • Is Private Repo? (boolean): indicates whether a repository is private (True) or public (False)
        • Is Mirror? (boolean): indicates whether a repository is mirroed (True) or not (False`)
        • Is Archived? (boolean): indicates whether a repository is archived (True) or not (False)

      Output

      • Repositories
        • ID: unique identifier of the repository
        • Global Node ID: node_id value of the repository in the GitHub API
        • Name: name of the repository
        • Full Name: combined login and name of the repository; example, octocat/Hello-World
        • Owner Login Name: username of the repository owner
        • Owner ID: unique identifier of the repository owner
        • Is Private?: indicates whether a repository is private (True) or public (False)
        • HTML URL: URL of the repository; example, https://github.com/octocat
        • Description: short description of the repository
        • Is Fork?: indicates whether a repository is forked (True) or not (False)
        • URL: URL to the list of users in the repository; example, https://api.github.com/users/octocat
        • Created At: date and time when the repository was created
        • Updated At: date and time when the repository was last updated
        • Pushed At: date and time when a push last occured in the repository
        • Homepage At: URL of the homepage for the repository
        • Size: size of the repository (including all of its history), in kilobytes
        • Stargazers Count: number of users who have starred the repository
        • Watchers Count: number of users who are watching the repository
        • Language: language of the repository
        • Forks Count: number of forks of the repository
        • Open Issues Count: number of open issues in the repository
        • Score: value of the a call’s rate limit score in the repository; see Resource limitations
        • Default Branch: indicates the default branch of the repository; example, master
    • Search Teams

      Search for teams in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: For more accurate results, avoid using partial strings in your input query.

      Options

      • Organization (dropdown): organizations in GitHub
      • Result Set (dropdown):
        • First Matching Record: returns the first record that matches
        • All Matching Records: returns all matching records as a list

      Input

      • Team
        • ID: unique identifier of the team
        • Global Node ID: node_id value of the user in the GitHub API
        • Name: name of the team
        • Team: slug of the team
        • Description: description of the team
        • Privacy (dropdown): privacy option for the team; options are Organization Owners and Team Members or Organization Members
        • Permission (dropdown): permissions available to team members; options are Pull, Pull and Push, or Pull, Push and Administer
        • Parent Name: name of the parent to which the team belongs

      Output

      • Teams
        • ID: team’s unique identifier
        • Global Node ID: node_id value of the user in the GitHub API
        • URL: URL of the team profile; example, https://api.github.com/teams/1
        • HTML URL: URL of the team; example, https://api.github.com/teams/justice-league
        • Name: name of the team
        • Team: slug of the team
        • Description: description of the team
        • Privacy: privacy option for the team
        • Permission: permissions available to team members
        • Parent: name of the parent to which the team belongs
    • Search Users

      Search for users in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: To use this action card in a Flow, you must set up SAML support for your app in your GitHub instance. If SAML support isn’t set up properly, search results will only product public information for a user.

      Note: To use this action card, you must be the owner of the organization.

      Note: For more accurate results, avoid using partial strings in your input query.

      Note: Due to GitHub limitations, a maximum of 1000 records can be returned with this action card.

      Options

      • Organization (dropdown): organizations in GitHub
      • Result Set (dropdown):
        • First Matching Record: returns the first record that matches
        • All Matching Records: returns all matching records as a list

      Input

      • Username: username for the user; can be an login or username
      • Public Full Name: public full name of the user
      • Public Email: public email address of the user

      Output

      • Result
        • ID: user’s unique identifier
        • Username: username for the user; can be an login or username
        • Public Name: publicly displayed name of the user
        • Global Node ID: : node_id value of the user in the GitHub API
        • Avatar URL: URL of the user’s avatar
        • HTML URL: URL of the user; example, https://github.com/octocat
        • SCIM ID: user’s SCIM unique identifier
        • SCIM Username: SCIM username of the user
        • Given Name: firt name of the user
        • Family Name: last name of the user
        • Emails (list): email addresses associated with the user
        • Active: indicates whether the identity is active (true) or should be deprovisioned (false)
    • Update File Content

      Updates File Contents in GitHub.

    • Update Issue

      Update an issue for every non-empty field.

      Note: Any input fields left empty will not be overwritten in the updated issue.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Options

      • Organization (dropdown): Choose the organization that contains the repository that contains the issue to update.
      • Repository (dropdown): Choose the repository that contains the issue to update.

      Input

      • Issue
        • Issue Number (number): The number assigned to the issue.
        • Title: The updated title of the issue.
        • Description: The updated description for the issue.
        • State (dropdown): The updated state of the issue.
        • Milestone Number: The updated milestone number to associate with the issue.
        • Labels (list): The updated list of labels to associate with the issue.
        • Assignees (list): The updated list of users to whom the issue is assigned.

      Output

      • Issue
        • Issue ID (number): The Issue ID number.
        • Issue Number: Number of updated issue.
        • HTML URL: URL location of the updated issue.
        • State: The state of the updated issue.
        • Title: The title of the updated issue.
        • Description: The description of the updated issue.
        • User ID (number): The ID of the user who raised the issue.
        • Username: The login of the user who raised the issue.
        • Labels (list): The list of labels associated with the issue.
        • Assignee ID (number): The ID of the user to whom the issue is assigned.
        • Assignee Name: The login of the user to whom the issue is assigned.
        • Assignees (list): The users to whom the issue is assigned.
        • Milestone ID (number): The unique identifier for the milestone that the issue is associated with.
        • Milestone Number: The milestone number associated with the issue.
        • Milestone State: The state of the milestone.
        • Milestone Title: The title of the milestone.
        • Is Locked? (true/false): If true, the issue is locked.
        • Comments Count (number): The number of comments on the issue.
        • Pull Request URL: URL location of pull request for the issue.
        • Closed At (date): When the updated issue was closed.
        • Created At (date): When the updated issue was created.
        • Updated At (date): When the updated issue was updated.
        • Closed By (object): Metadata about the user who closed the updated issue, if it was closed.
    • Update Pull Request

      Updates a specific pull request on a repo.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Options

      • Organization (dropdown): Choose the organization that contains the repository that contains the pull request to update.
      • Repository (dropdown): Choose the repository that contains the pull request to update.

      Input

      • Pull Request
        • Pull Request Number: The number assigned to the pull request.
        • State (dropdown): The updated state of the pull request.
        • Title: The updated title of the pull request.
        • Description: The updated description of the pull request.

      Output

      • Pull Request
        • Pull Request ID (number): The pull request ID.
        • URL: A URL to the pull request.
        • State: The state of the updated pull request.
        • Title: The title of the updated pull request.
        • Description: The description of the updated pull request.
        • Updated At (date): When the updated pull request was updated.
    • Update User

      Update a user profile in GitHub.

      Unless otherwise indicated, field type is text.

      Required fields are indicated by a red asterisk.

      Note: To use this action card in a Flow, you must set up SAML support for your app in your GitHub instance.

      Note: To use this action card, you must be the owner of the organization.

      Note: With this action card, you can only update a user’s SCIM data.

      Options

      • Organization (dropdown): organizations in GitHub

      Input

      • GitHub
        • Username: username for the user; can be an login or username
      • SCIM
        • Username: username for the user; can be an login or username
        • Given Name: first name of the user
        • Family Name: last name of the user
        • Primary Email: primary email address of the user
        • Primary Email Type: primary email address type; for example, work
        • External ID: unique identifier that’s generated by the SAML provider and matched against a GitHub user

      Output

      • Result
        • Status Code (number): success or failure of your HTTP request; here is a list of all status codes
        • SCIM User ID: unique identifier for the SCIM user
        • External ID: unique identifier that’s generated by the SAML provider and matched against a GitHub user
        • Is Active?: indicates whether the identity is active (true) or should be deprovisioned (false)
        • Location: city-specific location of the user