본문으로 건너뛰기
cccskills
무료GitHub에 공개

migration-core

5-phase migration process, security guardrails, deliverables, archival protocol, and the 10-item completion checklist for any CI/CD migration to GitHub Actions. Load at the start of every migration.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구GitHubGitLab
설치 방법 보기

포함된 파일(3)

  • SKILL.md8.8 KB
  • pinned-actions.json2.7 KB
  • sources.json472 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Migration Core

5-Phase Workflow

All migrations follow these phases in order — skipping any phase is a completion failure.

Phase 1 — Source

  • REQUIRE actual source CI/CD files from the user. Refuse to proceed without them.
  • NEVER invent workflows from descriptions, requirements, or assumptions.
  • Common filenames: Jenkinsfile, azure-pipelines.yml, .circleci/config.yml, .gitlab-ci.yml, .travis.yml, bitbucket-pipelines.yml, bamboo-specs.yml, .drone.yml (and any included/referenced files).

Phase 2 — Analyze

Examine the source thoroughly. Identify:

  • Pipeline/job/stage structure and dependencies
  • Triggers, conditions, branching strategy
  • Agents/executors/containers → GitHub runner mapping
  • Credential bindings, secrets, env vars
  • Caching, artifacts, matrix builds, parallelism
  • Platform-specific features with no direct Actions equivalent (see the platform skill's mapping.md)

Phase 3 — Convert

  • Convert only what's in the source — no added functionality.
  • Use the platform skill's mapping.md for syntax translations.
  • Use only marketplace actions from verified creators (see Guardrails below).
  • Translate triggers, conditional logic, env/secrets references, services, artifacts, caches.
  • Expand all platform-specific includes/templates/shared-libraries inline.
  • Add comments explaining non-obvious conversion choices.

Phase 4 — Validate

Load and follow the actionlint skill: install the tool if needed, run it against all generated workflows, resolve every finding, and capture the real output for the report.

Phase 5 — Document

Before writing or publishing any report, follow Safe Migration Reports below. Review validation output and examples for credential values; report only names and references, not values.

  1. Write .github/ci-archive/MIGRATION-README.md using the platform skill's report-template.md, filled with real data — no placeholders, real actionlint output.
  2. MOVE original CI/CD files into .github/ci-archive/ and DELETE them from their original locations (see Archival below).
  3. Deliver the report via PR: update an existing PR on the branch if present; otherwise create a new one. If PR creation/update is unavailable, the MIGRATION-README.md is the sole report.

Guardrails

❌ Never do

  • Create workflows without a real source CI/CD file.
  • Generate pipelines from descriptions or assumptions.
  • Add functionality not in the source.
  • Write custom actions, scripts, or bespoke integrations — find a marketplace action.
  • Use unverified, community, or deprecated actions.
  • Skip validation, leave originals in their original location, or ship placeholder text in the PR/report.

✅ Always do

  • Work exclusively from the provided source files.
  • Use only verified creators on the GitHub Marketplace — e.g. actions/*, azure/*, aws-actions/*, google-github-actions/*.
  • Use the latest stable version of each action.
  • Pin every action to a commit SHA (never a tag/branch); add a comment with the SHA→version mapping.
  • Apply least-privilege permissions: blocks.
  • Document every secret and variable the migrated workflow requires.

Action version verification

Never emit a commit SHA that is not present verbatim in the output of a command you ran in this session. A fabricated SHA either fails at dispatch time or resolves to an unintended commit.

Step 1 — check the shipped catalog first. pinned-actions.json in this skill directory holds verified SHAs for the actions this product emits most often. It ships with the plugin, so it works with no network at all:

grep -A2 '"actions/checkout"' plugin/skills/migration-core/pinned-actions.json

If the action is in the catalog, use that SHA and move on. Check resolved_on in the file — if it is more than about six months old, say so in the report so the user knows the pins are due a refresh.

Step 2 — capability probe. Only for actions the catalog does not cover. Network access is not guaranteed; offline and air-gapped installs are supported. Run this and branch on the result:

gh auth status >/dev/null 2>&1 && echo NETWORK_OK || echo NETWORK_UNAVAILABLE

Step 3a — if NETWORK_OK. Resolve the latest release tag, then resolve that tag to a commit SHA:

gh api repos/OWNER/REPO/releases/latest --jq .tag_name
gh api repos/OWNER/REPO/commits/TAG --jq .sha

Use commits/TAG rather than git/ref/tags/TAG — for an annotated tag the latter returns the tag object SHA, not the commit SHA.

If the repository publishes no releases, take the default-branch head:

gh api "repos/OWNER/REPO/commits?per_page=1" --jq '.[0].sha'

Step 3b — if NETWORK_UNAVAILABLE. Do not guess, and do not write a workflow step you cannot pin. Stop and tell the user which actions need resolving, so they can either grant network access or confirm the pin themselves. An unpinned action is a real defect — the quality gate will flag it, and it should.

A fully resolved pin looks like this:

# actions/checkout v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1

Secrets and variables

  • ${{ secrets.NAME }} — sensitive credentials; never log or echo, never put values in workflow files.
  • ${{ vars.NAME }} — non-sensitive configuration.
  • Org-level for shared values; repo-level for project-specific values.
  • Platform-specific secret syntax mappings live in the platform skill's mapping.md.

Safe Migration Reports

  • Document secret and variable names, purpose, scope, and ${{ secrets.NAME }} / ${{ vars.NAME }} references, never credential values.
  • Before writing the report, review all prose, tables, examples, and validation output. Remove credential values and use [REDACTED] when an omission must be shown; redaction is not an unfinished placeholder.
  • Use the same reviewed content for the report file, PR body, comments, and final response. Do not paste raw source files or logs containing credentials.
  • If a suspected credential cannot be safely removed, stop report publication and warn without repeating the value. Do not claim the migration is complete while publication is blocked.
  • Never disable secret scanning or push protection to deliver a report. If a value may already have been exposed, advise revocation or rotation and follow the repository's incident process.

Deliverables and Archival

Required deliverables

  1. Runnable .github/workflows/*.yml replicating source functionality.
  2. All required secrets/variables documented with names and purpose.
  3. Conversion explanations as comments in workflows and notes in the report.
  4. Real actionlint output pasted into the report (see actionlint skill).
  5. Source files archived and deleted from original locations.
  6. .github/ci-archive/MIGRATION-README.md — complete, no placeholders.
  7. Pull Request with the report as its body (or MIGRATION-README.md as fallback).

Archival protocol

mkdir -p .github/ci-archive/

MOVE (don't copy) source CI/CD files. Examples:

OriginalArchive destination
Jenkinsfile.github/ci-archive/Jenkinsfile
azure-pipelines.yml.github/ci-archive/azure-pipelines.yml
.circleci/config.yml.github/ci-archive/circleci-config.yml (delete .circleci/ dir)
.gitlab-ci.yml.github/ci-archive/.gitlab-ci.yml
.travis.yml.github/ci-archive/.travis.yml
.drone.yml.github/ci-archive/.drone.yml
bitbucket-pipelines.yml.github/ci-archive/bitbucket-pipelines.yml
bamboo-specs.yml.github/ci-archive/bamboo-specs.yml

Verify nothing remains in the original locations.


Completion Checklist (10 items)

Migration is NOT COMPLETE until all 10 are true:

  1. Source file(s) provided and analyzed
  2. Workflow(s) accurately replicate source functionality
  3. Only verified marketplace actions used, latest stable versions, pinned to SHAs
  4. actionlint executed per the actionlint skill; real output captured
  5. All required secrets and variables documented
  6. Original CI/CD files moved to .github/ci-archive/ and deleted from original locations
  7. .github/ci-archive/MIGRATION-README.md written from the platform's report-template.md, no placeholders
  8. Migration report delivered via PR (existing PR updated, or new PR created) where possible
  9. All guardrails above satisfied
  10. Response ends with:

Migration complete. MIGRATION-README.md created and Pull Request updated/created with migration report.

(If PR was unavailable: Migration complete. MIGRATION-README.md created in .github/ci-archive/)

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Install, run, and fix errors from actionlint — the GitHub Actions workflow linter. Load when validating `.github/workflows/*.yml` files after migration or generation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

github/actions-migrations-via-copilot772026년 10월 20일 업데이트

Azure DevOps migration to GitHub Actions — syntax mappings and the migration report template for YAML pipelines, templates, variable groups, service connections, deployment jobs, stages, conditional logic. Load with `migration-core` when migrating Azure DevOps sources to GitHub Actions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

github/actions-migrations-via-copilot772026년 10월 20일 업데이트

Bamboo migration to GitHub Actions — syntax mappings and the migration report template for Build plans, deployment projects, tasks, requirements, variables, plan branches. Load with `migration-core` when migrating Bamboo sources to GitHub Actions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

github/actions-migrations-via-copilot772026년 10월 20일 업데이트

Bitbucket Pipelines migration to GitHub Actions — syntax mappings and the migration report template for Pipelines, Pipes, parallel steps, branch/pull-request workflows, deployments, variables. Load with `migration-core` when migrating Bitbucket Pipelines sources to GitHub Actions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

github/actions-migrations-via-copilot772026년 10월 20일 업데이트

CircleCI migration to GitHub Actions — syntax mappings and the migration report template for Workflows, jobs, Orbs, executors, contexts, parameters, matrix jobs, approval gates. Load with `migration-core` when migrating CircleCI sources to GitHub Actions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

github/actions-migrations-via-copilot772026년 10월 20일 업데이트

Drone CI migration to GitHub Actions — syntax mappings and the migration report template for Pipelines, plugins, services, secrets, triggers, multi-platform pipelines. Load with `migration-core` when migrating Drone CI sources to GitHub Actions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

github/actions-migrations-via-copilot772026년 10월 20일 업데이트

github의 스킬 모두 보기

이 스킬의 문제 신고