ts-source / GAIIO

GitHub actions importer-issue ops
MIT License
0 stars 0 forks source link

GitHub Actions Importer IssueOps

The GitHub Actions Importer IssueOps repository demonstrates the functionality necessary to run GitHub Actions Importer commands through Actions and Issues, allowing you to migrate your CI/CD workflows without needing to install software on your local machine. This approach is especially useful for organizations that want to enable self-service migrations to GitHub Actions.

GitHub Actions Importer helps plan, forecast, and automate the migration of Azure DevOps, Bamboo, CircleCI, GitLab, Jenkins, and Travis CI pipelines to GitHub Actions. GitHub Actions Importer is distributed as a CLI and offers various commands you can use to migrate pipelines:

Getting started

Complete the following steps:

  1. Create a Github App at the organizational level with the following permissions: Contents Read/Write, Metadata Read, Pull Requests Read/Write, Workflows Read/Write. Note the created App's ID and private key. Create a new repository using this repository as the template by clicking here.
  2. Create the following labels in this new repository, if they are not already present: jenkins, azure-devops, circle-ci, gitlab, travis-ci, bamboo, and actions-importer-running.
  3. Add the repository secrets described below that are relevant to the CI/CD providers being migrated.

Repository settings

The repository that is created from this template must have one of the following settings enabled:

See the documentation for more information related to these settings.

All CI/CD providers

The following secrets are required:

Optionally, the following secrets can be set:

Azure DevOps

The following secrets are required:

Optionally, the following secrets can be set:

CircleCI

The following secrets are required:

Optionally, the following secrets can be set:

GitLab

The following secrets are required:

Optionally, the following secrets can be set:

Jenkins

The following secrets are required:

Travis CI

The following secrets are required:

Optionally, the following secrets can be set:

Bamboo

The following secrets are required:

The following secrets are required:

Pipeline migration

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

Custom transformers

Custom transformers can be used to customize the behavior of Actions Importer to meet your specific use-case. Custom transformers can be used to:

Custom transformers must be defined in a file with the .rb file extension within a directory named transformers in your IssueOps repository. Alternatively, you can provide specific custom transformers to be used by appending the --custom-transformers option in the issue comment used to trigger Actions Importer. For example:

/migrate ... --custom-transformers my-transformers.rb

You can learn more about authoring custom transformers by completing the self-guided learning exercises below:

Configuring IssueOps with GitHub Enterprise Server and self-hosted runners

This template can be configured to be used with GitHub Enterprise Server deployments and self-hosted runners by:

  1. Updating the ruby/setup-ruby actions in issue_ops.yml and ci.yml to ensure the action runs on the correct OS type.
  2. Updating the runs-on: statements in ruby/setup-ruby actions in issue_ops.yml to dictate the appropriate label(s) for your self-hosted runner.
  3. For GitHub Enterprise Server deployments, this repository should be published and converted to a template repository in your GHES deployment.

Privacy statement

GitHub Actions Importer will collect anonymous telemetry when running to help us improve the tool. This can be disabled by adding the --no-telemetry flag to any command provided to the GitHub Actions Importer CLI.

Additionally, by using this repository you agree to GitHub's Privacy Statement and the additional terms for Actions.