Skip to content

Fit the description into the Marketplace limit, and check it in the pipeline - #9

Merged
Paebbels merged 3 commits into
devfrom
claude/marketplace-metadata
Sep 11, 2026
Merged

Paebbels merged 3 commits into
devfrom
claude/marketplace-metadata

Conversation

@pytooling-claude

@pytooling-claude pytooling-claude Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Bug Fixes

  • The action's description was 127 characters; the Marketplace allows fewer than 125. That is the first of the two
    errors:

    -description: Synchronize branches and tags of forked repositories of a GitHub organisation or user account with their upstream repositories.
    +description: Synchronize branches and tags of forked repositories in a GitHub namespace with their upstream repositories.

    108 characters, and it says the same thing — "a GitHub organisation or user account" is what a namespace is, and
    the parameter documentation still spells it out where there's room.

New Features

  • CheckMarketplaceMetadata.yml — a local reusable workflow, run by the pipeline on every push, so the next
    such defect is a red pipeline on dev rather than a rejection at publish time. It checks:

    Rule Behaviour
    action.yml/action.yaml at the repository root error, and the check stops
    name present error — uniqueness across the Marketplace can't be checked offline, and is called out
    description present and shorter than the limit error, reporting the actual length
    branding.icon present and shaped like a Feather name error
    branding.color one of white, yellow, blue, green, orange, red, purple, gray-dark error, listing the accepted values
    public repository error

    The values are read with the YAML parser, not with grep, so a folded or quoted description is measured as the
    Marketplace measures it. The limit is an input, defaulting to 125.

    The three release jobs needs: it, so a release can't be tagged with metadata the Marketplace would reject.

    The icon is checked for shape, not membership. The accepted set is a subset of Feather, long and subject to
    change, so hard-coding it here would go stale silently; the check says so rather than implying more than it
    verifies.

Documentation

  • The README's Pipeline section gains the check, and states plainly that publishing is manual and why.

Unit Tests

Nine cases against the extracted step, all passing: valid metadata; the exact 127-character description the
Marketplace rejected
, reported as 'description' is 127 characters; the Marketplace requires fewer than 125.; a
missing colour; turquoise; a malformed icon; an empty description; a missing metadata file; invalid YAML; and a
private repository.

One of those found a defect in the check itself, which is why it's worth having: action.get("description", "")
returns None for a key present with an empty value, and str(None) is the four-character string "None" — so
description: with nothing after it would have passed as a four-character description. It reads or "" now.

The other two harnesses still pass unchanged: 23 for the action, 10 for the version-branch workflow.


Related Issues and Pull-Requests

  • Follows v1.0.0 (v1.0.0 #4). A v1.0.1 release pull-request follows this one.

🤖 Generated with Claude Code

…ipeline.

The Marketplace form rejected the action with "Description must be less than 125 characters." - it was 127. The
description now names the namespace instead of spelling out "a GitHub organisation or user account", and is 108
characters.

'CheckMarketplaceMetadata.yml' is a local reusable workflow validating the metadata on every push, so the next
such defect is a red pipeline on 'dev' rather than a rejection at publish time: the metadata file at the
repository root, a name, a description below the limit, a branding icon, one of the eight accepted branding
colours, and a public repository.

Publishing itself is deliberately not automated - there is no API for it.

Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RnpaXYDwfNwnJrQew78j3f
@pytooling-claude pytooling-claude Bot added Bug Something isn't working CI: GitHub Actions Continuous Integration issues related to GitHub Actions (Windows, Linux and MacOS) labels Sep 10, 2026
Comment thread .github/workflows/CheckMarketplaceMetadata.yml Outdated
Comment thread .github/workflows/Pipeline.yml Outdated
@Paebbels
Paebbels merged commit 697c72f into dev Sep 11, 2026
8 checks passed
@Paebbels
Paebbels deleted the claude/marketplace-metadata branch September 11, 2026 05:44
@pytooling-claude pytooling-claude Bot mentioned this pull request Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug Something isn't working CI: GitHub Actions Continuous Integration issues related to GitHub Actions (Windows, Linux and MacOS)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants