{"id":15099306,"url":"https://github.com/actions/importer-issue-ops","last_synced_at":"2025-04-14T14:11:06.962Z","repository":{"id":66075623,"uuid":"561153421","full_name":"actions/importer-issue-ops","owner":"actions","description":"GitHub Actions Importer helps you plan and automate the migration of Azure DevOps, Bamboo, CircleCI, GitLab, Jenkins, and Travis CI pipelines to GitHub Actions.","archived":false,"fork":false,"pushed_at":"2024-08-02T01:38:16.000Z","size":138,"stargazers_count":54,"open_issues_count":2,"forks_count":23,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-28T03:07:10.863Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/actions.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":"Contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-03T04:06:25.000Z","updated_at":"2024-12-04T14:23:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"55db12d6-b8e0-40a6-9334-04274224c12e","html_url":"https://github.com/actions/importer-issue-ops","commit_stats":{"total_commits":98,"total_committers":16,"mean_commits":6.125,"dds":0.7551020408163265,"last_synced_commit":"bd06d72236b16aa69306707b5e0837b399c30b37"},"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions%2Fimporter-issue-ops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions%2Fimporter-issue-ops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions%2Fimporter-issue-ops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions%2Fimporter-issue-ops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/actions","download_url":"https://codeload.github.com/actions/importer-issue-ops/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248894938,"owners_count":21179152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-25T17:09:52.555Z","updated_at":"2025-04-14T14:11:06.932Z","avatar_url":"https://github.com/actions.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Actions Importer IssueOps\n\nThe 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.\n\n[GitHub Actions Importer](https://docs.github.com/en/actions/migrating-to-github-actions/automating-migration-with-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:\n\n- `audit`: An audit will fetch all the pipelines defined in an existing CI server, convert each pipeline to its equivalent in GitHub Actions, and write a report that summarizes how complete of a migration the GitHub Actions Importer can provide.\n- `dry-run`: A dry run will fetch a single pipeline definition, convert it to its equivalent in GitHub Actions, and write a file (or files) to disk containing the converted workflow.\n- `migrate`: A migration will fetch a single pipeline definition, convert it to its equivalent in GitHub Actions, and open a pull request to a repository with the converted workflow.\n\n## Getting started\n\nComplete the following steps:\n\n1. Create a new repository using this repository as the template by clicking [here](https://github.com/actions/importer-issue-ops/generate).\n2. 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`.\n3. Add the repository secrets described below that are relevant to the CI/CD providers being migrated.\n\n### Repository settings\n\nThe repository that is created from this template must have one of the following settings enabled:\n\n- Any action or reusable workflow can be used, regardless of who authored it or where it is defined.\n- Any action or reusable workflow that matches the specified criteria, plus those defined in a repository within the enterprise, can be used.\n   - Allow actions created by GitHub\n   - Allow actions by marketplace verified creators or icnlude `ruby/setup-ruby@v1` in the allowed list of actions and reusable workflows.\n\nSee the [documentation](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#managing-github-actions-permissions-for-your-repository) for more information related to these settings.\n\n### All CI/CD providers\n\nThe following secrets are required:\n\n- `GH_ACCESS_TOKEN`: GitHub personal access token to create pull requests (requires `repo` and `workflow` scopes).\n\nOptionally, the following secrets can be set:\n\n- `GH_INSTANCE_URL`: The base URL of your GitHub instance (only required if it is **not** \u003chttps://github.com\u003e).\n\n### Azure DevOps\n\nThe following secrets are required:\n\n- `AZURE_DEVOPS_ACCESS_TOKEN`: The personal access token to access the Azure DevOps instance. This token requires the following scopes:\n  - Build (Read)\n  - Agent Pools (Read)\n  - Code (Read)\n  - Release (Read)\n  - Service Connections (Read)\n  - Task Groups (Read)\n  - Variable Groups (Read)\n\nOptionally, the following secrets can be set:\n\n- `AZURE_DEVOPS_INSTANCE_URL`: The base URL of your Azure DevOps instance (only required if it is **not** \u003chttps://dev.azure.com\u003e).\n\n### CircleCI\n\nThe following secrets are required:\n\n- `CIRCLE_CI_ACCESS_TOKEN`: The personal access token to access the CircleCI instance.\n- `CIRCLE_CI_SOURCE_GITHUB_ACCESS_TOKEN`: The personal access token to access pipeline files stored in GitHub.\n\nOptionally, the following secrets can be set:\n\n- `CIRCLE_CI_INSTANCE_URL`: The base URL of your CircleCI instance (only required if it is **not** \u003chttps://circleci.com\u003e).\n\n### GitLab\n\nThe following secrets are required:\n\n- `GITLAB_ACCESS_TOKEN`: The personal access token to access the GitLab instance (requires `read_api` scope).\n\nOptionally, the following secrets can be set:\n\n- `GITLAB_INSTANCE_URL`: The base URL of your GitLab instance (only required if it is **not** \u003chttps://gitlab.com\u003e).\n\n### Jenkins\n\nThe following secrets are required:\n\n- `JENKINSFILE_ACCESS_TOKEN`: The personal access token used to retrieve the contents of a `Jenkinsfile` stored in the build repository (requires `repo` scope).\n- `JENKINS_ACCESS_TOKEN`: The access token used to view Jenkins resources.\n- `JENKINS_USERNAME`: The username of the user's access token.\n- `JENKINS_INSTANCE_URL`: The base URL of your Jenkins instance.\n\n### Travis CI\n\nThe following secrets are required:\n\n- `TRAVIS_CI_ACCESS_TOKEN`: The personal access token to access the Travis CI instance.\n- `TRAVIS_CI_SOURCE_GITHUB_ACCESS_TOKEN`: The personal access token to access pipeline files stored in GitHub.\n\nOptionally, the following secrets can be set:\n\n- `TRAVIS_CI_INSTANCE_URL`: The base URL of your Travis CI instance (only required if it is **not** \u003chttps://travis-ci.com\u003e).\n\n### Bamboo\n\nThe following secrets are required:\n\n- `BAMBOO_ACCESS_TOKEN`: The personal access token to access the Bamboo instance.\n- `BAMBOO_INSTANCE_URL`: The base URL of your Bamboo instance.\n### Bitbucket\n\nThe following secrets are required:\n\n- `BITBUCKET_ACCESS_TOKEN`: The personal access token to access the BitBucket instance.\n\n## Pipeline migration\n\nOnce configured, pipelines can be migrated to GitHub Actions by opening an issue with the relevant issue template and following the instructions.\n\n### Custom transformers\n\nCustom transformers can be used to customize the behavior of Actions Importer to meet your specific use-case. Custom transformers can be used to:\n\n- Convert items that are not automatically converted.\n- Convert items that were automatically converted using different actions.\n- Convert environment variable values differently.\n- Convert references to runners to use a different runner name in Actions.\n\nCustom 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:\n\n```sh\n/migrate ... --custom-transformers my-transformers.rb\n```\n\nYou can learn more about authoring custom transformers by completing the self-guided learning exercises below:\n\n- Custom transformers for Azure DevOps pipelines [exercise](https://github.com/actions/importer-labs/blob/main/azure_devops/5-custom-transformers.md)\n- Custom transformers for CircleCI pipelines [exercise](https://github.com/actions/importer-labs/blob/main/circle_ci/5-custom-transformers.md)\n- Custom transformers for GitLab pipelines [exercise](https://github.com/actions/importer-labs/blob/main/gitlab/5-custom-transformers.md)\n- Custom transformers for Jenkins pipelines [exercise](https://github.com/actions/importer-labs/blob/main/jenkins/5-custom-transformers.md)\n- Custom transformers for Travis CI pipelines [exercise](https://github.com/actions/importer-labs/blob/main/travis/5-custom-transformers.md)\n\n## Configuring IssueOps with GitHub Enterprise Server and self-hosted runners\n\nThis template can be configured to be used with GitHub Enterprise Server deployments and self-hosted runners by:\n\n1. Updating the [ruby/setup-ruby](https://github.com/ruby/setup-ruby) actions in [issue_ops.yml](./.github/workflows/issue_ops.yml) and [ci.yml](./.github/workflows/ci.yml) to ensure the action runs on the correct OS type.\n2. Updating the `runs-on:` statements in [ruby/setup-ruby](https://github.com/ruby/setup-ruby) actions in [issue_ops.yml](./.github/workflows/issue_ops.yml) to dictate the appropriate label(s) for your self-hosted runner.\n3. For GitHub Enterprise Server deployments, this repository should be published and [converted to a template repository](https://docs.github.com/en/enterprise-server/repositories/creating-and-managing-repositories/creating-a-template-repository) in your GHES deployment.\n\n## Privacy statement\n\nGitHub 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.\n\nAdditionally, by using this repository you agree to GitHub's [Privacy Statement](https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement#data-retention-and-deletion-of-data) and the [additional terms for Actions](https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#actions).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factions%2Fimporter-issue-ops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factions%2Fimporter-issue-ops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factions%2Fimporter-issue-ops/lists"}