16 Commits

Author SHA1 Message Date
DevCats 20051c7089 feat: add skills as namespace-level catalogue entries with external source repos (#884)
## Summary

Adds skills as a catalogue resource type in the registry. Each namespace
declares its skill source repos and per-skill presentation metadata in
`registry/<namespace>/skills/README.md`. The registry-server build
pipeline clones source repos, auto-discovers skills, and serves them
with the metadata defined here.

## Catalogue format

The skills README uses structured YAML frontmatter with nested per-skill
metadata:

```yaml
---
icon: ../../../.icons/coder.svg
sources:
  - repo: coder/skills@main
    skills:
      setup:
        display_name: Setup & Configuration
        icon: ../../../.icons/coder.svg
        tags: [coder, deployment, configuration]
---
```

- `icon` (top-level): default icon for skills without a per-skill
override
- `sources[].repo`: GitHub repo to clone (`owner/repo@ref`)
- `sources[].skills`: per-skill overrides for `display_name`,
`description`, `icon`, and `tags`
- Multiple repos per namespace are supported
- Skills not listed in the `skills` map are still discovered with
default metadata
- `name` and `description` always come from the source repo's SKILL.md
unless overridden

## Changes

- `registry/coder/skills/README.md`: Coder namespace pointing to
`coder/skills@main` with per-skill metadata
- `registry/DevelopmentCats/skills/README.md`: Test namespace pointing
to `DevelopmentCats/skills@main` (remove before merge)
- `registry/DevelopmentCats/README.md` + `.images/avatar.svg`: Test
namespace profile (remove before merge)
- `.github/workflows/deploy-registry.yaml`: Added
`registry/**/skills/**` path trigger
- `.github/workflows/release.yml`: Skill/module path detection in tag
extraction
- `.github/workflows/version-bump.yaml`: Added `registry/**/skills/**`
path trigger
- `cmd/readmevalidation/repostructure.go`: Added `skills` to supported
namespace directories

## Related

-
[registry-server#442](https://github.com/coder/registry-server/pull/442):
Build pipeline, API, MCP, frontend, and well-known discovery for skills
- [coder/skills](https://github.com/coder/skills): Coder's official
skills source repo
- [Problem
Document](https://www.notion.so/35dd579be59281a4b657d02174667e4f):
Skills as First-Class Registry Catalogue Items

> 🤖 This PR was updated with the help of Coder Agents.
2026-05-22 12:20:55 -05:00
imgbot[bot] bbd18ac870 [ImgBot] Optimize images (#641)
## Beep boop. Your images are optimized!

Your image file size has been reduced 🎉

<details>
<summary>
Details
</summary>

| File | Before | After | Percent reduction |
|:--|:--|:--|:--|
| /.icons/filebrowser.svg | 5.38kb | 3.08kb | 42.76% |
| /.icons/nomad.svg | 0.38kb | 0.26kb | 31.79% |
| /.icons/vault.svg | 0.49kb | 0.37kb | 24.31% |
| /.icons/proxmox.svg | 12.52kb | 9.49kb | 24.23% |
| /.icons/copyparty.svg | 8.28kb | 6.32kb | 23.71% |
| /.icons/devcontainers.svg | 0.56kb | 0.44kb | 21.39% |
| /.icons/openwebui.svg | 0.29kb | 0.23kb | 19.11% |
| /.icons/scaleway.svg | 0.89kb | 0.77kb | 13.80% |
| /.icons/perplexica.svg | 0.21kb | 0.19kb | 10.65% |
| /.icons/positron.svg | 0.71kb | 0.64kb | 10.18% |
| /.icons/azure.svg | 2.05kb | 1.86kb | 9.60% |
| /.icons/lxc.svg | 1.22kb | 1.12kb | 8.01% |
| /.icons/fleet.svg | 5.57kb | 5.23kb | 6.12% |
| /.icons/gateway.svg | 4.20kb | 3.99kb | 4.86% |
| /.icons/rustdesk.svg | 1.32kb | 1.26kb | 4.65% |
| /.icons/tasks.svg | 0.44kb | 0.42kb | 4.42% |
| /.icons/kasmvnc.svg | 0.80kb | 0.77kb | 4.27% |
| /.icons/dotfiles.svg | 0.59kb | 0.56kb | 3.83% |
| /.icons/vsphere.svg | 1.08kb | 1.04kb | 3.69% |
| /.icons/rdp.svg | 4.63kb | 4.47kb | 3.40% |
| /.icons/mux.svg | 1.75kb | 1.70kb | 2.46% |
| /.icons/aws.svg | 3.22kb | 3.14kb | 2.34% |
| /.icons/gemini.svg | 2.76kb | 2.71kb | 2.12% |
| /.icons/kiro.svg | 1.21kb | 1.19kb | 1.69% |
| /.icons/slack.svg | 1.00kb | 0.98kb | 1.37% |
| /.icons/digital-ocean.svg | 0.93kb | 0.92kb | 1.15% |
| /.icons/amazon-q.svg | 2.09kb | 2.07kb | 0.98% |
| /.icons/akamai.svg | 0.83kb | 0.82kb | 0.94% |
| /.icons/auto-dev-server.svg | 4.54kb | 4.49kb | 0.93% |
| /.icons/desktop.svg | 0.53kb | 0.52kb | 0.93% |
| /.icons/sourcegraph-amp.svg | 0.56kb | 0.56kb | 0.87% |
| /.icons/nextflow.svg | 0.68kb | 0.67kb | 0.87% |
| /registry/coder/.images/avatar.svg | 0.60kb | 0.59kb | 0.82% |
| /.icons/coder.svg | 0.60kb | 0.59kb | 0.82% |
| /.icons/electric-plug-emoji.svg | 0.24kb | 0.24kb | 0.81% |
| /.icons/hetzner.svg | 5.47kb | 5.43kb | 0.80% |
| /.icons/cmux.svg | 17.58kb | 17.46kb | 0.72% |
| /.icons/box-emoji.svg | 4.62kb | 4.59kb | 0.66% |
| /.icons/openai.svg | 2.89kb | 2.87kb | 0.61% |
| /.icons/auggie.svg | 4.78kb | 4.75kb | 0.57% |
| /.icons/airflow.svg | 3.24kb | 3.23kb | 0.57% |
| /.icons/jetbrains.svg | 0.77kb | 0.76kb | 0.51% |
| /.icons/git.svg | 0.78kb | 0.78kb | 0.50% |
| /.icons/zed.svg | 0.88kb | 0.88kb | 0.44% |
| /.icons/pgadmin.svg | 2.95kb | 2.94kb | 0.40% |
| /registry/coder/.images/aws-devcontainer-architecture.svg | 123.63kb |
123.14kb | 0.39% |
| /registry/coder/.images/gcp-devcontainer-architecture.svg | 123.63kb |
123.15kb | 0.39% |
| /.icons/windsurf.svg | 1.11kb | 1.11kb | 0.35% |
| /.icons/opencode.svg | 0.56kb | 0.56kb | 0.35% |
| /.icons/folder.svg | 0.28kb | 0.28kb | 0.35% |
| /registry/coder-labs/.images/avatar.svg | 3.69kb | 3.68kb | 0.32% |
| /.icons/jupyter.svg | 6.50kb | 6.48kb | 0.32% |
| /.icons/cloud-devops.svg | 35.08kb | 34.99kb | 0.26% |
| /cmd/.icons/docker.svg | 1.14kb | 1.13kb | 0.26% |
| /.icons/docker.svg | 1.14kb | 1.13kb | 0.26% |
| /.icons/exoscale.svg | 0.42kb | 0.42kb | 0.23% |
| /.icons/personalize.svg | 1.89kb | 1.89kb | 0.21% |
| /cmd/.icons/goose.svg | 3.07kb | 3.07kb | 0.19% |
| /.icons/goose.svg | 3.07kb | 3.07kb | 0.19% |
| /.icons/nexus-repository.svg | 26.65kb | 26.60kb | 0.18% |
| /.icons/claude.svg | 2.80kb | 2.80kb | 0.14% |
| /.icons/kubernetes.svg | 7.54kb | 7.53kb | 0.09% |
| /.icons/jfrog.svg | 6.76kb | 6.76kb | 0.04% |
| /.icons/aider.svg | 14.16kb | 14.16kb | 0.03% |
| /.icons/antigravity.svg | 2,346.99kb | 2,346.81kb | 0.01% |
| | | | |
| **Total :** | **2,827.25kb** | **2,816.16kb** | **0.39%** |
</details>

---

[📝 docs](https://imgbot.net/docs) | [:octocat:
repo](https://github.com/imgbot/ImgBot) | [🙋🏾
issues](https://github.com/imgbot/ImgBot/issues) | [🏪
marketplace](https://github.com/marketplace/imgbot)

<i>~Imgbot - Part of [Optimole](https://optimole.com/) family</i>

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2026-01-08 12:11:02 -06:00
35C4n0r e8e3a4e642 feat(cmd/tests): update tests to fail on invalid and absolute urls (#639)
## Description
Updated the tests:
- We now don't accept absolute urls (http / https)
- We only accept urls that start with `../../../../.icons/*` and exists

<!-- Briefly describe what this PR does and why -->

## Type of Change

- [ ] New module
- [ ] New template
- [x] Bug fix
- [ ] Feature/enhancement
- [ ] Documentation
- [ ] Other

## Testing & Validation

- [x] Tests pass (`bun test`)
- [x] Code formatted (`bun fmt`)
- [x] Changes tested locally

---------

Co-authored-by: DevCats <christofer@coder.com>
2026-01-08 08:13:16 -06:00
Phorcys 7c4ef92c8c chore: update all module READMEs to use main agent id (#567) 2025-11-26 13:37:19 -06:00
Michael Smith e94dfd2df6 fix: add validation for Github-Flavored Markdown Alerts (#394)
No issue to link – this was a problem we discovered while updating the
Registry website

## Description

This PR adds (very) basic validation for the GitHub Flavored Markdown
alerts that we allow contributors to add to their README files. The
errors that get generated should be correct, but the error messages
themselves aren't as helpful as they could be. I'm going to be handling
that in a separate PR, just so we can get this one in sooner.

### Changes made
- Added function for validating the core structure of all GFM alerts
- Updated existing README files that were failing the new validation
requirements

## Type of Change

- [ ] New module
- [x] Bug fix
- [ ] Feature/enhancement
- [ ] Documentation
- [ ] Other
2025-08-26 20:52:22 -05:00
DevCats 8677e7d52b feat: add validation for module and namespace names (#359)
Closes #

## Description

add validation for module and namespace names to ensure they contain
only alphanumeric characters and hyphens
<!-- Briefly describe what this PR does and why -->

## Type of Change

- [ ] New module
- [ ] Bug fix
- [X] Feature/enhancement
- [ ] Documentation
- [ ] Other

## Testing & Validation

- [X] Tests pass (`bun test`)
- [X] Code formatted (`bun run fmt`)
- [X] Changes tested locally

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Michael Smith <michaelsmith@coder.com>
2025-08-22 09:45:15 -04:00
Michael Smith 08ed594bfd chore: add validation for Coder Template README files (#326)
Closes #194 alongside #325

## Description

This PR adds the missing base layer of validation for all Coder template
README files, ensuring that they all follow a consistent structure when
processed by the Registry website's build step. It also updates a few
README files to match the new standards.

## Type of Change

- [ ] New module
- [x] Bug fix
- [ ] Feature/enhancement
- [ ] Documentation
- [x] Other

## Testing & Validation

- [x] Tests pass (`bun test`)
- [x] Code formatted (`bun run fmt`)
- [x] Changes tested locally
2025-08-13 13:38:11 -05:00
Michael Smith fd074a5643 fix: improve logic for existing README validation (#325)
Addresses part of https://github.com/coder/registry/issues/194

## Description

This PR beefs up the validation for the validation logic that we already
had in place. This PR does not include adding validation for templates
(which will be addressed in a second PR).

### Changes made
- Added logic to reject unknown frontmatter fields for modules and
contributor profile README files
- Added logic to handle frontmatter fields that were previously missed
in validation steps (GitHub username for contributors and Operating
Systems for modules)
- Updated a few comments (added some new comments, formatted existing
comments to meet 100-column width)

### Type of Change

- [ ] New module
- [x] Bug fix
- [ ] Feature/enhancement
- [ ] Documentation
- [x] Other

## Testing & Validation

- [x] Tests pass (`bun test`)
- [x] Code formatted (`bun run fmt`)
- [x] Changes tested locally
2025-08-13 11:07:08 -05:00
Muhammad Atif Ali c8d99cfba3 fix: correct terraform state arg and log typos
- test/test.ts: ensure `-state` is immediately followed by the state file to avoid apply failures
- readmevalidation: fix two logger message typos (processing/processed)
2025-08-08 13:15:52 +05:00
Callum Styan 13a25ff4af refactor: use coder/slog + minor go style changes (#107)
Changes are broken down in to multiples commits to hopefully make
reviewing easy. 1 commit for the slog change and then a commit per Go
file for style changes.

Style changes are generally:
- try to use full sentences for all comments
- try to stick to 120 column lines (not strict) instead of 80
- try to one line as many `call function, check if err != nil` blocks as
possible (ex: only err or variables are not reused outside the if statement)
- try to use `err` or `errs` for all return type names, previously used
`problems` in some cases but `errs` in others
- some minor readability changes
- `Todo` -> `TODO`, sometimes also useful to do `TODO (name):` to make
it easier to find things a specific author meant to follow up on
- comments for types/functions should generally start with `//
FunctionName/TypeName ...`

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-06-02 12:23:55 -07:00
Callum Styan 8b6a80b82d ci: add golangci-lint and fix existing lint failures (#118)
This PR adds `golangci-lint` based on the configuration from
`coder/coder`
([here](https://github.com/coder/coder/blob/main/.golangci.yaml)) then
migrated to v2 using `golangci-lint migrate` plus the addition of few
more linters.

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-05-29 10:24:35 -07:00
Michael Smith d004200d93 chore: add avatars for each contributor (#117)
## Changes made
- Added avatars for each contributor
- Updated validation steps to account for avatars, if the avatar field
exists
- Went ahead and made some slog changes, ahead of @cstyan's refactor PR
2025-05-27 23:29:20 -04:00
Michael Smith 84ce4ea325 chore: update all source URLs for modules to reflect new namespace format (#89)
## Changes made
- Updated all `source` properties in Terraform import snippets to use
the new namespaced Terraform protocol URLs

## Notes
- Probably need to wait until the latest version of the Registry website
is pushed to production before we merge this in, just to be on the safe
side
- I replaced all the paths via a regex, and then double-checked all the
files modified to make sure there weren't any false positives
2025-05-13 17:53:24 -04:00
Michael Smith 31b8312877 chore: add all missing README files to repo (#85)
## Changes made
- Fleshed out main top-level README file
- Added formal docs for code of conduct and security (that just lead to
the Coder Docs)
- Revamped contributing guide
- Added a few images to help support the new docs

## Notes
- Just because we're not supporting templates for the moment, I did
deliberately limit the number of mentions to it.
2025-05-09 18:21:38 -04:00
Michael Smith ba6fea8ddb chore: add logic to validate all modules (#11)
Closes https://github.com/coder/internal/issues/531

## Changes made
- Added functionality to validate the structure of module README files (frontmatter and the README body)
- Added a really basic snapshot-ish test for the module README body validation
- Updated README files that were previously violating README requirements (the old modules validation logic wasn't catching these)
- Changed `ValidationPhase` from an int to a string
2025-05-02 18:39:55 -04:00
Michael Smith 45dc925f8b fix: update repo structure validation logic to disallow false positives (#10)
* refactor: update file structure to reflect new changes

* refactor: start splitting up files

* refactor: more domain splitting

* refactor: remove directory validation from contributors file

* fix: update repo structure checks

* fix: improve check for user namespace subdirectories

* docs: add missing words to comment

* docs: update typo

* refactor: make code easier to read

* fix: update README files

* fix: remove employer field entirely

* fix: make Github field optional

* refactor: rename files
2025-05-02 11:23:52 -04:00