---
sourceDocument: Australia Asset Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/it-asset-management

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia Asset Management

ft:clusterId :

    - itam

bundleId :

    - itam

workflow :

    - Technology


---

# Integrate with GitHub Enterprise Cloud

# Integrate with GitHub Enterprise Cloud {#ariaid-title1}

* Release version: Australia
* 
* Updated March 12, 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 9 minutes to read

Integrating your Software Asset Management application with the GitHub Enterprise Cloud application help you track your software subscriptions and reclaim unused licenses.  
Important:  
Minimize security risks and protect information by granting access only to the necessary user or API permissions.{#integrate-github-cloud__table_box__entry__3}

| Process | Required user role in the GitHub Enterprise Cloud application | Authentication scopes |
|-|-|-|
| Download subscriptions | Organization owner | read:org |
| Pull user activity | Organization owner | * read:org * repo * read:audit_log {#integrate-github-cloud__ul_bh5_t3f_4bc} |
| Reclaim subscription | Organization owner | write:org |
[Table 1. Minimal user permissions]

{#integrate-github-cloud__box-title}

The GitHub Enterprise Cloud integration is currently limited to users with Enterprise plans only.

## Generate an API access token for GitHub Enterprise Cloud {#ariaid-title2}

Generate a token that you can use to access the GitHub Enterprise
Cloud API.

### Before you begin

GitHub Role required: organization owner

The user account that you use for authentication should be able to read all repositories in the organization they're a part of.

### About this task

The GitHub repository hosting service uses personal access tokens to
grant users access to the GitHub API. Personal access tokens function
similarly to OAuth access tokens by authorizing API requests. By generating a
personal access token to authorize your GitHub Enterprise Cloud API
requests, you can gain access to the GitHub Enterprise Cloud API.

### Procedure

1. From a web browser, open [GitHub](https://github.com/).
2. Sign in to your GitHub account.
3. On the GitHub page header, select your profile photo and then select Settings.  
   Your profile settings open.
4. From the side navigation pane, select Developer Settings.  
   Your developer settings open.
5. From the side navigation pane, select Personal access tokens.
6. Select Tokens (classic).
7. On the Personal access tokens page, select Generate new token.
8. Select Generate new token (classic).
9. If you're prompted to confirm your password before proceeding, enter your GitHub password and then select Confirm password.
10. On the New personal access token form, describe the purpose of the token in the Note field.
11. To give your token an expiration, select the Expiration drop-down menu and select a default value or use the calendar picker.
12. In the Select scopes form section, enable the repo, write:org, read:org, and read:audit_log OAuth scopes.  
    OAuth scopes limit the level of access that the application has to your protected resources. The repo OAuth scope gives you full control of your private repositories. The write:org and read:org OAuth scopes enable you to manage your entire organization, including all teams, projects, and memberships. The read:audit_log OAuth scope gives you access to the audit log data to track accurate user activity. See [Scopes for OAuth Apps](https://docs.github.com/en/free-pro-team@latest/developers/apps/scopes-for-oauth-apps) for more information about GitHub OAuth scopes.
    1. Enable the repo OAuth scope by selecting the repo check box.  
       By enabling this OAuth scope, you automatically enable the repo:status, repo_deployment, public_repo, repo:invite, and security_events OAuth scopes.
    2. Enable the write:org and read:org OAuth scope.
    3. Enable the read:audit_log OAuth scope.
    {#generate-api-key-github-cloud__substeps_uh3_zpp_wnb}
13. Select Generate token.  
    Your personal access token generates.
14. Copy the access token and save it in a secure location for later use.
15. To use your token to access resources owned by an organization that uses SAML single sign-on, authorize the token.  
    For more information, see [Authorizing a personal access token for use
    with SAML single sign-on](https://docs.github.com/en/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on).

## Create a GitHub Enterprise Cloud integration profile {#ariaid-title3}

Create a GitHub Enterprise Enterprise Cloud integration profile to track software subscriptions and optimize licensing for your GitHub Enterprise Cloud applications.

### Before you begin

To create a GitHub Enterprise Cloud integration profile, request the Software Asset Management - SaaS License Management plugin (sn_sam_saas_int) from the [ServiceNow Store](https://store.servicenow.com/).

ServiceNow Role required: sam_integrator  
Important:  
You must select the GitHub Spoke check box for this integration while installing optional features on the [Application Manager](https://www.servicenow.com/docs/access?context=application-manager&version=australia&pubname=australia-platform-administration&ft:locale=en-US) page. For more information about choosing the required SaaS applications, see [Request SaaS License Management](https://servicenow-prod.fluidtopics.net/ltQ10fYPUIpL7abgEH0~7A "Request the Software Asset Management - SaaS License Management plugin (sn_sam_saas_int) so that you can create and manage integrations with your SaaS and Single Sign-on (SSO) applications. You can use these integrations to track license usage and to reclaim unused licenses.").

If you're upgrading from Yokohama or Zurich release, then you must reconfigure your GitHub Enterprise Cloud integration profile.

### About this task

If you're using Software Asset Workspace, the option to create the GitHub Cloud integration profile in Core UI is inactive.

### Procedure

1. Navigate to the integration profile.

   | Interface | Action |
   | Core UI | 1. Navigate to AllSoftware AssetSaaS LicenseDirect Integration Profiles. 2. Select New. 3. Select GitHub Cloud Integration Profile. {#create-integration-profile-github-cloud__ol_ijd_bjk_qtb} |
   | Software Asset Workspace | 1. Navigate to License operationsUser SubscriptionsDirect integration profiles. 2. Select New. 3. Select GitHub Cloud from the drop-down list. 4. Select Continue. {#create-integration-profile-github-cloud__ol_wjd_bjk_qtb} |
   |-|-|

   {#create-integration-profile-github-cloud__choicetable_o3p_z3k_qtb}
2. On the form, fill in the fields.  
   {#create-integration-profile-github-cloud__table_wqc_y5h_wnb__entry__2}

   | Field | Description |
   |-|-|
   | Display Name | Name of the integration profile. For example, <kbd class="ph userinput">GitHub Cloud Integration</kbd>. |
   | Status | Status of the integration profile. * If you have not published the integration profile, this field is automatically set to Draft. * If you have already published the integration profile, this field is automatically set to Published. {#create-integration-profile-github-cloud__ul_oyn_djm_xbc} |
   | Profile type | Type of integration profile. This field is automatically set to github_cloud_subscription. |
   [Table 2. Integration Profile form]

   {#create-integration-profile-github-cloud__table_wqc_y5h_wnb}
3. Review the required user roles or API permissions specified in the Vendor configuration field for each process to minimize security risks and optimize SaaS licenses.  
   Note:  
   For more information, see [Minimal user permissions](https://servicenow-prod.fluidtopics.net/FNwEFE~ll4k96uG7FQ1DqA#integrate-github-cloud "Integrating your Software Asset Management application with the GitHub Enterprise Cloud application help you track your software subscriptions and reclaim unused licenses.") table.
   1. In the Download Subscription Subflow section, verify that the Subflow field is set to GitHub Cloud Download Subscriptions.  
      Note:  
      The Download subscriptions check box is selected by default and you can't clear it.  
      Software Asset Management pulls the members, outside collaborators, pending invitations, and pending outside collaborators to provide a complete view of your GitHub Enterprise Cloud Subscriptions.  
      Important:  
      To pull pending outside collaborators, enable the sn_sam_saas_int.pull_pending_collaborator_github system property. A higher number of repositories would lead to an increased number of API transactions.
   2. In the Calculate Activity Subflow section, verify that the Subflow field is set to GitHub Cloud Update User Activity.  
      Note:  
      The Download Activity check box is selected by default. If you clear it, the activity scheduled job SAM - Refresh \<displayname\> Activity isn't created.  
      In the Analyze user activity field, you can also select the date and time starting from when you want to analyze the user activity. By default, you can analyze user activity up to 60 days prior to the current date and view events performed by individual users from the time you create this profile.  
      Note:  
      Software Asset Management pulls the events from the time that you start analyzing user activity irrespective of the profile creation date.
      You can modify this value in the Last activity threshold field of your software reclamation rules. For more information, see [Review a software reclamation rule](https://servicenow-prod.fluidtopics.net/QjHAOC5kmvypyG1Pph5iIQ "Use reclamation rules to cancel user subscriptions that have limited to no activity.").  
      Tip:  
      To avoid performance issues with this subflow, the best approach is to set the Analyze user activity from field to a maximum of seven days before the current date.
   3. In the Reclaim Subscription Subflow section, verify that the Subflow field is set to GitHub Cloud Reclaim Subscription.  
      Note:  
      The Reclaim subscriptions check box is selected by default. If you don't want to reclaim subscriptions, you can clear this check box. If you clear it, the removal candidates are created but the reclaim subscription subflow isn't triggered or the reclamation process isn't initiated.
   {#create-integration-profile-github-cloud__substeps_rcm_pwm_vcc}
4. Select Save.  
   Your ServiceNow instance creates a draft integration profile.

   The Connection \& Credential field appears and is automatically set to
   sn_github_spoke.GitHub.
5. Open the connection \& credential aliases record by selecting the preview icon ![]() next to the Connection \& Credential field and then selecting Open Record in the record preview.
6. On the Connection \& Credential Aliases form, select the Create New Connection \& Credential related link.
7. In the Create Connection and Credential dialog box, fill in the fields.  
   {#create-integration-profile-github-cloud__table_skk_54h_wnb__entry__2}

   | Field | Description |
   |-|-|
   | Connection Name | Name of the GitHub connection. |
   | Connection URL | URL of the GitHub API endpoint. Enter <kbd class="ph userinput">https://api.github.com</kbd>. |
   | Use MID Server | Option that enables your ServiceNow instance to use a MID Server for communication with your GitHub Enterprise Cloud applications. * If your instance requires a MID Server, set this field to <kbd class="ph userinput">true</kbd>. * If your instance doesn't require a MID Server, leave this field empty. {#create-integration-profile-github-cloud__ul_gqm_t3m_xbc} Important: To enable this option, you must already have a MID Server set up on your instance. See [MID Server](https://www.servicenow.com/docs/access?context=mid-server-landing&version=australia&pubname=australia-servicenow-platform&ft:locale=en-US) for detailed instructions. |
   | API Key | Personal access token that enables you to access the GitHub Enterprise Cloud API. * If the GitHub spoke version installed is 2.2.5 or higher, enter <kbd class="ph userinput">&lt;api-key&gt;</kbd>. * If the GitHub spoke version installed is lower than 2.2.5, enter <kbd class="ph userinput">Bearer &lt;api-key&gt;</kbd>. {#create-integration-profile-github-cloud__ul_k3s_1qw_5wb}The \<<var class="keyword varname">api-key</var>\> is the personal access token that you generated in [Generate an API access token for GitHub Enterprise Cloud](https://servicenow-prod.fluidtopics.net/FNwEFE~ll4k96uG7FQ1DqA#generate-api-key-github-cloud "Generate a token that you can use to access the GitHub Enterprise Cloud API.") |
   [Table 3. Create Connection and Credential dialog box]

   {#create-integration-profile-github-cloud__table_skk_54h_wnb}
8. Select Create.
9. On the integration profile form, select Validate Connection to verify the connection and credential details of this integration.  
   Validating the connection verifies the Download Subscriptions and Calculate Activity APIs, but not the Reclaim Subscriptions APIs.
10. After the connection is verified, select Publish.
11. In the Publish Confirmation dialog box, select OK.  
    Note:  
    If you clear the Download Activity check box after the integration profile is published, you must revalidate the connections and then republish the integration profile because the following events occur:
    * The Status field on the integration profile form changes to Draft.
    * The Validate connection button shows up on the form.
    * The current SAM - Refresh \<displayname\> Activity job gets deleted.
    {#create-integration-profile-github-cloud__ul_adf_2v3_ddc}

### What to do next

After the integration connects, your ServiceNow instance automatically creates software models, reclamation rules, and software subscriptions that are refreshed daily.  
After creating an integration profile, view information about the profile in the Software Asset Workspace by navigating to License operationsUser subscriptionDirect integration profiles. You can select an integration profile to view the following related lists. If all of the following related lists aren't visible for an integration profile in the default view, you can select the custom integration view from the Details tab:

* Software Models
* Unrecognized Subscription Identifiers
* Scheduled Jobs
* Scheduled Job Results
* Software Subscriptions
* Subscription Identifier Exclusion Rule
* Subscription User Exclusion Rule
{#create-integration-profile-github-cloud__ul_gxp_qfk_rfc}

After creating an integration profile, you can define subscription exclusion rules to keep certain subscriptions from license cost calculations. For more information, see [Subscription exclusions for SaaS and SSO applications](https://servicenow-prod.fluidtopics.net/kwS~TWLEZdf67e7UjappHg#subscription-exclusions "Define subscription exclusions for your SaaS and SSO applications to optimize your licensing costs by keeping the excluded subscriptions out of license cost calculations.").

If you want to set up multiple integration profiles with unique connections, create child aliases to manage different configurations and settings for each integration profile. For more information, see [Create a child alias to set up multiple integration profiles](https://servicenow-prod.fluidtopics.net/o5L0ctEzWkFYzYxMhh78ew "Create a child alias to set up multiple integration profiles with unique connections and manage different configurations for each integration profile.").

Review all automatically generated reclamation rules to reclaim user subscriptions. For more information, see [Review a software reclamation rule](https://servicenow-prod.fluidtopics.net/QjHAOC5kmvypyG1Pph5iIQ "Use reclamation rules to cancel user subscriptions that have limited to no activity.").  
Create software entitlements for the automatically generated software models to track used software against owned software.

* For more information on creating software entitlements in the Software Asset Management Core UI, see [Create entitlements in Software Asset Management Core UI](https://servicenow-prod.fluidtopics.net/8ZR9KWQ1FY73pUmBw_wZRQ "Create entitlements in the Software Asset Management Core UI application to record your license details and allocate purchased software rights to users or devices.").
* For more information on creating software entitlements in the Software Asset Workspace, see [Create entitlements in workspace](https://servicenow-prod.fluidtopics.net/ZvL7kERffOGQ6dpBU_744w "Create entitlements in the Software Asset Workspace to enter your license details and allocate purchased software rights to users or devices.").
* For more information on creating software entitlements using the Software Asset Management Playbook, see [Create entitlements using the guided walk-through](https://servicenow-prod.fluidtopics.net/rw30KUYxwGuwCDdFtc0mOg "Use the guided walk-through playbook for a step-by-step process of creating entitlements.").
{#create-integration-profile-github-cloud__ul_cbz_vhr_sqb}  
Reconciliation also runs on your subscriptions as a scheduled job or on-demand. You can view your reconciliation results in the [License Workbench](https://servicenow-prod.fluidtopics.net/K_GziLbR~smXeeWp0kcdNw "Review reconciliation results in a simplified workbench view.") (Software Asset Management classic application) or the [License usage view](https://servicenow-prod.fluidtopics.net/Ct5YAvsPFESpnVaeLwu5_w "Use the license usage view as a single plane to understand the license position of all software products, remediate non-compliance, view reconciliation results, view, or add removal candidates, and view Software Asset Management related reports.") (Software Asset Workspace). Use these results to determine your license compliance position and to remediate any non-compliance.

* For more information on running reconciliation in the Software Asset Management classic application, see [Run software reconciliation in Software Asset Management classic](https://servicenow-prod.fluidtopics.net/Pic766RsbcGCoP1GsB_9RA "Reconciliation is run as a scheduled job (default is weekly), but you can also run reconciliation manually to reconcile software products in your environment on demand.").
* For more information on running reconciliation in the Software Asset Workspace, see [Run software reconciliation in the workspace](https://servicenow-prod.fluidtopics.net/SUHzxdFqMeO8rQemacW3sA "Reconciliation is run as a scheduled job (default is weekly), but you can also run reconciliation manually to reconcile software products in the Software Asset Workspace environment on-demand.").
{#create-integration-profile-github-cloud__ul_qgf_zhr_sqb}

*[\>]: and then


