Skip to main content
This walkthrough shows how to install the GitHub Actions Importer extension for the GitHub CLI (gh) on a virtual machine, authenticate gh, and verify the extension is available. The official documentation covers installation, credential configuration, and migration workflows for converting Jenkins pipelines to GitHub Actions: https://docs.github.com/en/actions/migrating-to-github-actions/about-migrating-from-jenkins-with-github-actions-importer Summary of steps:
  • Verify prerequisites
  • Install the GitHub CLI (gh) if missing
  • Authenticate gh with a GitHub Personal Access Token (PAT) or interactive login
  • Install and verify the gh-actions-importer extension
  • Configure the importer and run audit/dry-run/migrate commands

Prerequisites

A screenshot of the GitHub Docs page titled "About migrating from Jenkins with GitHub Actions Importer," showing navigation on the left, a table of contents on the right, and prerequisites (like "Docker is installed and running") in the main content area. The page is displayed in a dark theme within a browser.

1. Check for GitHub CLI (gh)

Confirm whether gh is already installed:
If the command returns “No such file or directory,” install gh on Debian/Ubuntu using the official repository and keyring. This single-line script adds the repository, imports the GPG keyring, updates apt, and installs gh:
After installation, validate gh and inspect available top-level commands:

2. Install the GitHub Actions Importer extension

Attempt to install the extension:
If gh is not authenticated, it will prompt you to authenticate first. Continue to the authentication section below.

3. Authenticate gh (interactive or token)

You can authenticate in two ways:
  • Interactive login: gh auth login (recommended for interactive sessions)
  • Environment token: set GH_TOKEN to a Personal Access Token (PAT) to allow non-interactive usage
Interactive login example:
Generate a PAT in GitHub: Settings → Developer settings → Personal access tokens (classic). When creating the token, grant the importer the minimum required scopes.
Minimum required scopes for the importer are: repo, read:org, and workflow. Keep the token secure and consider setting an expiration.
To make scope/permissions clear, here’s a quick reference: When you finish the interactive gh auth login flow, you should see confirmation:
Verify status:

4. Install and verify the importer extension

With gh authenticated, install the importer extension:
Check gh and the extension versions to ensure everything is up-to-date:
It’s good practice to update the importer extension and its container image periodically:

5. Explorer commands: what the importer can do

List available importer commands and options:

6. Configure the importer for Jenkins

Run the interactive configuration to store CI provider credentials and base URLs:
After configuring, you can run the following high-value commands:
  • gh actions-importer audit — analyze your Jenkins CI/CD footprint and identify migration candidates
  • gh actions-importer forecast — estimate GitHub Actions usage from historical pipeline data
  • gh actions-importer dry-run — convert a pipeline and output workflow YAML without creating changes
  • gh actions-importer migrate — convert a pipeline and open a pull request with the resulting workflow

7. Feature toggles

Inspect feature toggles that control importer behavior:
A screenshot of GitHub's "Select scopes" page for creating a personal access token. It shows a list of permission checkboxes (e.g., repo, workflow, write:packages, read:org) with some options checked.

Next steps

  1. Run gh actions-importer audit to analyze your Jenkins pipelines and generate a migration plan.
  2. Use gh actions-importer dry-run to preview converted workflow YAML files.
  3. When ready, run gh actions-importer migrate to create pull requests with the migrated workflows.
References:

Watch Video