Files
importer-issue-ops/Readme.md
2022-03-01 14:41:43 -08:00

4.0 KiB

Valet Issue Ops

Valet is a tool to help facilitate migrations to GitHub Actions. Valet supports migrating pipelines from Jenkins, Azure DevOps, GitLab CI, Circle CI, and Travis CI to GitHub Actions. This repository wraps the Valet CLI to allow it to be orchestrated through GitHub Actions and Issues.

Valet is in a private preview and customers must be onboarded prior to using the Valet Issue Ops workflow. Please reach out to GitHub Sales to enquire about getting into the private preview.

This repository is informally maintained by GitHub. However, this is not a supported GitHub product. Customers leveraging this repository must understand that any support must come through a paid GitHub Expert Services engagement.

Getting started

Complete the following steps:

  1. Create a new repository using this repository as the template by clicking here.
  2. Create the following labels in this new repository: jenkins, azure-devops, circle-ci, gitlab, travis-ci, and valet-running.
  3. Add the repository secrets described below that are relevant to the CI/CD providers being migrated:

All CI/CD providers

The following secrets are required:

  • VALET_GHCR_USERNAME: The username to access the valet container.
  • VALET_GHCR_PASSWORD: The password to access the valet container (requires read:packages scope).
  • GH_ACCESS_TOKEN: GitHub personal access token to create pull requests (requires repo and workflow scopes).

Optionally, the following environment variables can be set:

  • GITHUB_INSTANCE_URL: The base URL of your GitHub instance (only required if it is not https://github.com).

Azure DevOps

The following secrets are required:

  • AZURE_DEVOPS_ACCESS_TOKEN: The personal access token to access the Azure DevOps instance. This token requires the following scopes:
    • Build (Read & Execute)
    • Code (Read)
    • Release (Read)
    • Service Connections (Read)
    • Variable Groups (Read)

Optionally, the following environment variables can be set:

  • AZURE_DEVOPS_INSTANCE_URL: The base URL of your Azure DevOps instance (only required if it is not https://dev.azure.com).

Circle CI

The following secrets are required:

  • CIRCLE_CI_ACCESS_TOKEN: The personal access token to access the Circle CI instance.
  • CIRCLE_CI_SOURCE_GITHUB_ACCESS_TOKEN: The personal access token to access pipeline files stored in GitHub.

Optionally, the following environment variables can be set:

  • CIRCLE_CI_INSTANCE_URL: The base URL of your Circle CI instance (only required if it is not https://circleci.com).

GitLab CI

The following secrets are required:

  • GITLAB_ACCESS_TOKEN: The personal access token to access the GitLab CI instance (requires read_api scope).

Optionally, the following environment variables can be set:

  • GITLAB_INSTANCE_URL: The base URL of your GitLab CI instance (only required if it is not https://gitlab.com).

Jenkins

The following secrets are required:

  • JENKINSFILE_ACCESS_TOKEN: The personal access token used to retrieve the contents of a Jenkinsfile stored in the build repository (requires repo scope).
  • JENKINS_ACCESS_TOKEN: The access token used to view Jenkins resources.
  • JENKINS_USERNAME: The username of the user's access token.

The following environment variables are required:

  • JENKINS_INSTANCE_URL: The base URL of your Jenkins instance.

Travis CI

The following secrets are required:

  • TRAVIS_CI_ACCESS_TOKEN: The personal access token to access the Travis CI instance.
  • TRAVIS_CI_SOURCE_GITHUB_ACCESS_TOKEN: The personal access token to access pipeline files stored in GitHub.

Optionally, the following environment variables can be set:

  • TRAVIS_CI_INSTANCE_URL: The base URL of your Travis CI instance (only required if it is not https://travis-ci.com).

Pipeline migration

Once configured, pipelines can be migrated to GitHub Actions by opening an issue with the relevant issue template and following the instructions.