GitHub

Out-of-the-box Source Code Repository Integration

Introduction

:rocket: General Availability

This integration is generally available. To find more information about the release stages of our integrations, see Release Stages.

The LeanIX VSM GitHub Repository integration offers an easy way to auto-discover all your services from GitHub. Based on this VSM's mapping inbox allows you to easily sift through all the stale information from GitHub to decide, which services are really useful to your organization and hence should be part of your service catalog. This will help you to maintain a high standard of data quality when you subsequently map your services to their individual teams to create clear team ownership.

2558
Integrate with GitHub to:
  • Automatically discover your services to build your company-wide service catalog
  • Map team ownership to have clear software governance in place

Setup

The GitHub repository connector scans your GitHub organization(s) to fetch your GitHub repositories and adjacent information,
such as the programming languages used. The integration can be set up in full self-service via the Admin UI.

🚧

Support of GitHub versions

This connector currently only supports the GitHub Cloud-hosted versions ( both free & enterprise). We currently don't support GitHub Server versions nor GitHub AE. To check out which version you're using please refer to the GitHub documentation

Configuration from GitHub

To integrate GitHub with LeanIX VSM you need two inputs:

  1. A personal access token (PAT)
  2. Your GitHub organization(s)

Creating Personal Access Token

  1. Please refer to the GitHub instructions or directly create the PAT via this link
  2. Ensure you enable the following scopes:
    • repo
    • repo:status
    • repo_deployment
    • public_repo
    • repo:invite
    • security_events
    • read:org
777

GitHub scopes to be set

📘

Authorizing for Single Sign On

If your GitHub Organization requires Single-Sign-On, then you will also need to authorize the token for single-sign-on ( see below) or follow the detailed instructions via GitHub documentation.

839

Authorizing for organizations with SSO

Fetching GitHub organization(s)

To see the names of your managed organizations, follow these instructions or directly fetch your organizations from your settings.

2401

Configuration in VSM

In your LeanIX VSM workspace, go to Administration > Integrations and follow the instructions to set up the GitHub integration.

896

GitHub Repository Integration setup in the Integration UI

How to map your discovered repositories to VSM service catalog items?

After the integration successfully loaded all your repositories into the VSM mapping inbox you can now start to sift through and decide which of these repos are actually worthy to maintain in the service catalog. To do so:

  1. Head over to Technology > Mapping
1791
  1. Click on Create and either map it to another - existing service (if these are duplicates) - or create a new VSM service that will end up in the service catalog.
1787 1787
  1. Congrats! you have now created your first VSM service - neat & tidy. Go ahead and explore what it has to offer and map it to
    your teams.
1843

DORA Metrics

Software Delivery Metrics are the best way for teams to track and monitor team productivity. The GitHub repository integration can automatically fetch information for two of the most important DORA metrics:

  1. Deployment frequency: Number of deployments to production for a Team.
  2. Lead time for changes: Time from committing a change to code successfully running in production.

Find below the mechanism by which the change and release events are registered.

Registering Release Event

All closed or merged pull requests in our public repository ps-scripts

1843

Pull requests which are merged, and are less than 30days old are valid. There is only valid pull request among the 4 closed pull requests.

1843

This will be registered as release event along with the commits change Ids from below.

Registering Change Events

The pull request has 3 commits.

1843

The 3 commits are registered as change events along with author details.

GitHub API Rate Limits

The integration uses GitHub's GraphQL API. In case an organization has an exceptionally large number of repositories, GitHub API throttles the requests. Though the integration attempts to automatically recover from rate limiting, the integration takes more time to finish.

👍

Scheduling

Schedule the integration once a day if your organization has (approx.) >2000 repositories and/or >200 teams

Imported data

The integration retrieves the following pieces of information from your Azure repo system:

  1. Metadata, such as repository name, description, url etc.
  2. Repository status e.g. archived, active
  3. Repository code composition e.g. typescript
  4. Repository topics e.g. frontend.
  5. Repository visibility e.g. private
  6. Top 3 contributors to the repository e.g. [email protected]