Skip to main content

create-plugin

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

Aller à l'installation

Informations de source

Dépôt
DataDog/datadog-ci
Dernière activité de la source
4 août 2026 à 08:06
Langue détectée de SKILL.md
anglais
Étoiles
163
Forks
73

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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.
Voir sur GitHub