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:
- Create a new repository using this repository as the template by clicking here.
- Create the following labels in this new repository:
jenkins,azure-devops,circle-ci,gitlab,travis-ci, andvalet-running. - 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 thevaletcontainer.VALET_GHCR_PASSWORD: The password to access thevaletcontainer (requiresread:packagesscope).GH_ACCESS_TOKEN: GitHub personal access token to create pull requests (requiresrepoandworkflowscopes).
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 (requiresread_apiscope).
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 aJenkinsfilestored in the build repository (requiresreposcope).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.