Files
awesome-copilot/eng
Aaron Powell a998c2d38c feat: support external recipes in cookbook (#831)
* feat(schema): add external recipe fields to cookbook schema

Add optional external, url, and author fields to the recipe schema
in cookbook.schema.json. When external is true, url is required via
conditional validation. Author supports name (required) and url
(optional) for attribution.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(data): support external recipes in data generator

- External recipes (external: true) skip local file validation
- Validate URL format for external recipes
- Pass through external, url, and author fields to output JSON
- Add per-recipe languages array: derived from resolved variant keys
  for local recipes, and from tags matching known language IDs for
  external recipes
- Collect language IDs in a first pass before processing recipes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(website): render external recipe cards on cookbook page

- Extend Recipe interface with external, url, author, and languages
- Render external recipes with Community badge, author attribution,
  and View on GitHub link instead of View Recipe/View Example buttons
- Language filter uses per-recipe languages array uniformly
- Remove Nerd Font icons from select dropdown options (native selects
  cannot render custom web fonts)
- Add CSS for external recipe cards (dashed border, badge, author)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(cookbook): add community samples section with first external recipe

Add a Community Samples cookbook section to cookbook.yml with the
Node.js Agentic Issue Resolver as the first external recipe entry,
linking to https://github.com/Impesud/nodejs-copilot-issue-resolver.

Resolves the use case from PR #613 for supporting external samples.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(cookbook): add Copilot SDK Web App to community samples

Add aaronpowell/copilot-sdk-web-app — a full-stack chat app built with
the GitHub Copilot SDK, .NET Aspire, and React.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-02 19:36:10 +11:00
..
2025-12-18 09:53:16 -08:00

Contributor Reporting (Maintainers) 🚧

This directory contains build scripts and utilities for maintaining the repository.

Build Scripts

update-readme.mjs

Generates the main README.md and documentation files from the repository content (agents, prompts, instructions, skills, hooks, collections).

generate-marketplace.mjs

Automatically generates .github/plugin/marketplace.json from all plugin directories in the plugins/ folder. This file is used by the GitHub Copilot CLI to discover and install plugins from this repository.

How it works:

  • Scans all directories in plugins/
  • Reads each plugin's .github/plugin/plugin.json for metadata
  • Generates a consolidated marketplace.json with all available plugins
  • Runs automatically as part of npm run build

To run manually:

npm run plugin:generate-marketplace

generate-website-data.mjs

Generates JSON data files for the website from repository content.

Contributor Tools

  • contributor-report.mjs — generates a markdown report of merged PRs for missing contributors (includes shared helpers).
  • add-missing-contributors.mjs — on-demand maintainer script to automatically add missing contributors to .all-contributorsrc (infers contribution types from merged PR files, then runs the all-contributors CLI).

Key notes for maintainers

  • Reports are generated on-demand and output to reports/contributor-report.md for human review.
  • The report output is intentionally minimal: a single list of affected PRs and one command to add missing contributor(s).
  • This repository requires full git history for accurate analysis. In CI, set fetch-depth: 0.
  • Link: all-contributors CLI documentation

On-demand scripts (not CI)

These are maintainer utilities. They are intentionally on-demand only (but could be wired into CI later).

add-missing-contributors.mjs

  • Purpose: detect missing contributors, infer contribution types from their merged PR files, and run npx all-contributors add ... to update .all-contributorsrc.
  • Requirements:
    • GitHub CLI (gh) available (used to query merged PRs).
    • .all-contributorsrc exists.
    • Auth token set to avoid the anonymous GitHub rate limits:
      • Set GITHUB_TOKEN (preferred), or GH_TOKEN for the gh CLI.
      • If you use PRIVATE_TOKEN locally, contributor-report.mjs will map it to GITHUB_TOKEN.

Graceful shutdown

  • contributor-report.mjs calls setupGracefulShutdown('script-name') from eng/utils/graceful-shutdown.mjs early in the file to attach signal/exception handlers.

Testing & maintenance

  • Helper functions have small, deterministic behavior and include JSDoc comments.
  • The getMissingContributors function in contributor-report.mjs is the single source of truth for detecting missing contributors from all-contributors check output.