diff --git a/.gitignore b/.gitignore index e016fd2..7d68343 100644 --- a/.gitignore +++ b/.gitignore @@ -51,4 +51,9 @@ ENV/ .env.*.local # Scratch folder -scratch/ \ No newline at end of file +scratch/ +# APM: generated / compiled output — produced on demand by `apm install` / `apm pack`. +# The committed source of truth is the primitives under `plugin/` and `agents/` plus `apm.yml`. +apm_modules/ +build/ +.agents/ diff --git a/README.md b/README.md index c515947..295531e 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,40 @@ cd actions-migrations-via-copilot copilot plugin install ./plugin ``` +### Option C — Install via APM (pinned, hashed, auditable) *(experimental)* + +Use this when you need reproducible installs with lockfile-pinned versions, content-integrity scanning, SBOM export, or **offline agent runtime** — typical for regulated industries. Install itself still requires network access to fetch the CLI and the pinned package, but once `apm install` resolves the dependency, all primitives land on disk in your repo — so the agent's runtime never fetches from a marketplace or plugin cache. + +Install the [APM CLI](https://microsoft.github.io/apm/) once: + +```bash +# macOS / Linux +curl -sSL https://aka.ms/apm-unix | sh +``` + +```powershell +# Windows +irm https://aka.ms/apm-windows | iex +``` + +Add the dependency to your project's `apm.yml`: + +```yaml +dependencies: + apm: + - github/actions-migrations-via-copilot/plugin#v1.2.0 +``` + +The `/plugin` suffix is a **virtual path** — it points APM at the [`plugin/`](plugin/) subdirectory where `plugin.json` lives, so APM treats this repo as a *Plugin collection* package type ([APM docs](https://microsoft.github.io/apm/reference/package-types/#plugin-collection-pluginjson)) and dissects `plugin.json` to install the agents and skills. + +Then run: + +```bash +apm install +``` + +APM deploys the agents and skills into your repo, pins the resolved sources and content hashes in `apm.lock.yaml`, and content-scans every primitive before it reaches disk. + --- ## How Migration Works diff --git a/apm.yml b/apm.yml new file mode 100644 index 0000000..4edd4cf --- /dev/null +++ b/apm.yml @@ -0,0 +1,31 @@ +name: actions-migrator +version: 1.2.0 +description: Enterprise-grade GitHub Copilot agents that migrate CI/CD pipelines + from Jenkins, Azure DevOps, CircleCI, GitLab, Travis CI, Bamboo, Bitbucket + Pipelines, and Drone CI to GitHub Actions. +author: GitHub Professional Services +repository: https://github.com/github/actions-migrations-via-copilot +homepage: https://github.com/github/actions-migrations-via-copilot +license: MIT +keywords: +- github-actions +- ci-cd +- migration +- jenkins +- azure-devops +- circleci +- gitlab +- travis-ci +- bamboo +- bitbucket +- drone-ci +- reusable-workflows +targets: +- copilot +includes: auto +dependencies: + apm: [] + mcp: [] +devDependencies: + apm: [] +scripts: {}