Skip to main content

create-plugin

Scaffold a new datadog-ci plugin end-to-end using repository conventions.

Zur Installation springen

Quellinformationen

Repository
datadog/datadog-ci
Letzte Quellaktivität
4. August 2026 um 08:06
Erkannte Sprache von SKILL.md
Englisch
Sterne
163
Forks
73

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
create-plugin
description
Scaffold a new datadog-ci plugin end-to-end using repository conventions.
# Create Plugin Scaffold a new datadog-ci plugin end-to-end. Walk the user through each step, confirming the scope name and whether the plugin should be built-in or separately installable. ## Workflow 1. **Ask** for the scope name (kebab-case) and whether this is a built-in or separately installable plugin. 2. **Run `yarn plugin:create <scope>`** to scaffold `packages/plugin-<scope>/`. 3. **Create the base command** in `packages/base/src/commands/<scope>/<command>.ts`: - Extend `BaseCommand` from `@datadog/datadog-ci-base` - Use `Command.Usage()` for description - Use `Option.*` from clipanion for arguments/flags - `execute()` should call `return executePluginCommand(this)` - Export the command class 4. **Create `packages/base/src/commands/<scope>/cli.ts`** exporting a `commands` array containing the command class. 5. **Create the plugin implementation** in `packages/plugin-<scope>/src/commands/<command>.ts`: - Import and extend the base command - Implement the actual `execute()` logic - Return `0` for success 6. **Update project files** per the CONTRIBUTING.md checklist: - Add to `.github/CODEOWNERS` under the correct product - Add scope to the Usage section in root `README.md` - If new product: create a GitHub label, update `pr-required-labels.yml`, `advanced-issue-labeler.yml`, and `release.yml` changelog config ## Notes - The commands map in `packages/base/src/cli.ts` is auto-generated by `bin/lint-packages.ts` -- do not edit it manually. Run `yarn lint:packages` to verify. - Use `getRequestBuilder()` or `httpRequest()` from base helpers for HTTP, not raw fetch or axios.
Auf GitHub ansehen