Skip to content

ci(labels): apply namespaced gittensor reward labels - #401

Merged
JSONbored merged 3 commits into
mainfrom
codex/gittensor-reward-labels
Jun 5, 2026
Merged

ci(labels): apply namespaced gittensor reward labels#401
JSONbored merged 3 commits into
mainfrom
codex/gittensor-reward-labels

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

  • update the type-label workflow to apply namespaced Gittensor reward labels
  • require feature PRs to close a feature issue before receiving gittensor:feature
  • keep gittensor:priority manual-only while preventing auto-label churn when it is present

What changed

  • scripts/github-type-label.mjs now applies gittensor:bug and gittensor:feature instead of plain bug and feature.
  • Feature PR auto-labeling checks closing issue references and only labels when a referenced issue is a feature issue.
  • The workflow self-creates the two auto labels if they are missing, while gittensor:priority remains manual.
  • Unit coverage now includes namespaced labels, feature-issue gating, referenced issue fetches, and missing-label creation.

Why

The Gittensor registry config now uses explicit gittensor:* labels with a zero default multiplier. CI should support that policy without turning every normal feature label into a scoring label.

Validation

  • npx vitest run test/unit/github-type-label.test.ts
  • git diff --check
  • npm run actionlint
  • npm run typecheck

Notes

  • Repository labels gittensor:bug, gittensor:feature, and gittensor:priority were created in GitHub so the workflow and manual priority flow are ready.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 5, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
gittensory-ui dfd20af Commit Preview URL

Branch Preview URL
Jun 05 2026, 08:11 PM

@JSONbored JSONbored self-assigned this Jun 5, 2026
@ghost

ghost commented Jun 5, 2026

Copy link
Copy Markdown

Note

Gittensory Gate skipped

PR closed before full evaluation. No late first comment was created.

Signal Result Evidence Action
Gate result ⚠️ Skipped #401 is no longer open. No action.

Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.

@ghost ghost added the gittensory:reviewed label Jun 5, 2026
@JSONbored
JSONbored merged commit 949e733 into main Jun 5, 2026
10 checks passed
@JSONbored
JSONbored deleted the codex/gittensor-reward-labels branch June 5, 2026 23:05
@github-project-automation github-project-automation Bot moved this from Todo to Done in gittensory - v1 roadmap Jun 5, 2026
JSONbored added a commit that referenced this pull request Jul 20, 2026
…7408)

Two independent hygiene fixes from the follow-up audit, bundled since both
are small and neither conflicts with the other.

Node-version drift: 13 release/publish-adjacent workflows hardcoded
node-version: 24.18.0 while .nvmrc pins 22 -- every PR-facing workflow
(ci.yml, ui-preview.yml, ui-deploy.yml, ui-sentry-release.yml,
mcp-release-candidate.yml) already correctly used node-version-file:
.nvmrc. Investigated before touching anything: none of the published
packages' own engines fields (@loopover/engine, mcp, ui-kit all >=22.0.0;
miner >=22.13.0) require Node 24, no comment anywhere explains the choice,
and git history shows each was just whatever version was current when
that particular publish workflow was first scaffolded, never reconciled
against .nvmrc. Switched all 13 (18 occurrences) to node-version-file:
.nvmrc for consistency. Left the two files already pinned to 22.23.1
alone (gittensor-impact.yml, visual-capture-fallback.yml) -- same major
version as .nvmrc, not actually inconsistent, lower value/higher risk to
touch than the real Node-24-vs-22 mismatch.

Composite-action schema validation: this repo's actionlint (both the npm
wrapper and the raw upstream binary, tested directly) does not support
.github/actions/**/action.yml files at all -- confirmed a genuine,
long-standing limitation (rhysd/actionlint#46 and #401, open since 2021),
not a configuration gap. Every file passed to actionlint is parsed as a
workflow regardless of shape, so it errors on runs/inputs/outputs as
unexpected top-level keys rather than actually validating the composite
action. scripts/lint-composite-actions.mjs is the closest available
substitute: validates against GitHub's own official action-metadata JSON
Schema (vendored locally at scripts/schemas/github-action.schema.json,
not fetched live, so this check doesn't depend on network access in CI),
plus a dedicated check for one thing the schema alone doesn't catch --
every run: step in a composite action needs an explicit shell:, unlike a
top-level workflow job which defaults to bash. Verified it actually
catches real problems, not just that it exists: fed it a deliberately
broken action file (missing shell:, an invalid uses: type) and confirmed
both classes of error surface clearly.

Wired into test:ci (npm run lint:composite-actions) and a new "Lint
composite actions" step in ci.yml, alongside the existing "Lint workflows"
step. Also added .github/actions/** to the backend path filter -- it was
missing entirely (only .github/workflows/** was covered), so a PR editing
ONLY a composite action file would previously trigger neither this new
check nor the existing actionlint step at all.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant