Skip to content

Every pull request is blocked by the organization Go workflow since GitHub reclassified this repository as Go #5852

Closed

Description

@devantler

What happened

Since about 16:40 UTC on 3 November 2026, every pull request in this repository has had to pass the organization's required ✅ Validate Go Project workflow. All 13 pull-request runs since then have failed, so no pull request can merge. Examples: #5850 and the open Longhorn and gRPC update pull requests.

Why

The organization rule Require workflows to pass before merging for Go (deploy/organization-rulesets/require-workflows-go.yaml in devantler-tech/.github) selects repositories whose GitHub-detected language is Go. This repository's Go code now narrowly outweighs its shell scripts (about 6,025,700 against 6,021,200 bytes), so GitHub flipped the detected language from Shell to Go. That enrolled the repository in the rule.

This repository's own instructions say the opposite is intended: "The organization Go workflow's language selector does not enroll this primarily Shell repository." The repository already runs its own Go checks (the complete regression suite, module tidiness and the vulnerability scan), and the organization workflow fails here on lint, tests, coverage and dead-code analysis it was never set up for.

Because the two languages are within a few kilobytes of each other, the detected language can flip back and forth with ordinary changes. A fix that relies on the byte count will not hold.

Options

  1. Keep this repository out of the organization Go rule on purpose, for example with a repository property the rule excludes, managed in devantler-tech/.github. This matches the documented intent and keeps the repository's own Go checks as the gate.
  2. Adopt the organization Go workflow here and make it pass. That means meeting its lint, test, coverage and dead-code requirements across about 660 Go files, then updating this repository's instructions.

Done when

  • Pull requests in this repository can pass their required checks again.
  • The chosen enrolment holds regardless of which language GitHub detects.
  • This repository's instructions describe the enrolment that is actually in force.

🤖 Generated with Claude Code

Activity

  1. added theissue type on Nov 3, 2026
  2. moved this to 📥 Backlog in 🌊 Project Boardon Nov 3, 2026
  3. coderabbitai commented on Nov 3, 2026

    @coderabbitai
    Contributor
    ⚠️ Possible Duplicate Issue(s)
    🔗 Related PRs

    #5778 - fix(ci): reject untidy files in every tracked Go module [closed]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  4. devantler commented on Nov 3, 2026

    @devantler
    ContributorAuthor

    Decision — 3 November 2026

    The maintainer chose option 2: adopt the organization Go workflow here and make it pass. This repository stays enrolled whatever language GitHub detects.

    What has to pass

    Measured on today's failing runs:

    Job Findings
    MegaLinter (whole repository) about 450: YAML style (293), workflow security (40), dependency vulnerabilities (38 + 1), Checkov (27), one HTML page (29), secret-scanner hits (12), and one each from Trivy, v8r, ShellCheck, Hadolint and revive
    golangci-lint 27 (mostly unchecked errors)
    Dead-code analysis 2 unreachable functions
    Tests and race coverage 3 tests that fail on the organization runner

    How it lands

    The required check scans the whole repository on every pull request, so no partial fix can go green on its own. The fixes are gathered on one integration branch, claude/go-workflow-adoption, and land through a single pull request that fixes this issue. Findings are fixed at their cause. A genuine false positive gets a narrowly scoped, justified disposition, never a disabled linter.

    Until that pull request merges, every pull request here stays blocked, unless an organization admin bypasses the rule for an individual merge.

    Slices

    • Go code: golangci-lint, dead code, revive, and the tests that fail on the organization runner
    • Dependencies and scanners: Grype, OSV-Scanner, Trivy, Hadolint, and Checkov outside workflows
    • YAML and workflows: yamllint, v8r, zizmor, ShellCheck, and Checkov's workflow checks
    • Secrets and HTML: Betterleaks, Secretlint, HTMLHint and djLint
    • This repository's instructions describe the enrolment that is in force

    🤖 Generated with Claude Code

  5. moved this from 📥 Backlog to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Nov 3, 2026
  6. devantler commented on Nov 4, 2026

    @devantler
    ContributorAuthor

    Status — 4 November 2026

    Delivered: #5853 merged at 08:01 UTC. The organization's ✅ Validate Go Project workflow passed on its final head (d328b724f, run 41785808182, first attempt), with every job green: golangci-lint, dead code, tests, race coverage and the whole-repository MegaLinter. The merge-queue deploy succeeded.

    Done when State
    Pull requests can pass their required checks again ✅ Done. #5853 passed the organization workflow, and #5850 is CLEAN on current main.
    This repository's instructions describe the enrolment in force ✅ Done. AGENTS.md → Validation now says to keep passing that workflow whichever language GitHub detects.
    The chosen enrolment holds whatever language GitHub detects ❌ Not yet. See below.

    Why the enrolment check is still open: after #5853 merged, GitHub detects this repository as Shell again: 6,047,621 bytes of Shell against 6,041,410 of Go. The organization rule selects by detected language only, so the workflow no longer runs here. #5850 got no run at be6951afb. A lint or dead-code regression can now merge unnoticed, then block every pull request the next time the language flips back to Go.

    Ways to close it:

    1. This repository calls the organization workflow itself. A caller workflow here would run the reusable validate-go-project.yaml at a pinned ref on every pull request, with its result required through the CI aggregate. This needs no organization change. While the language is Go, the workflow runs twice.
    2. The organization also enrols by repository property. Add a ruleset in devantler-tech/.github (deploy/organization-rulesets/) that requires the same workflow for repositories with a custom property such as go-workflow: required, and set that property on this repository. A separate ruleset leaves the language rule that other repositories rely on unchanged.

    Option 2 keeps one source of truth and helps any other repository near the Go/Shell line. Option 1 can land in this repository alone.

    🤖 Generated with Claude Code

  7. self-assigned this
    on Nov 7, 2026
  8. added a commit that references this issue on Nov 7, 2026
  9. moved this from 🏃🏻‍♂️ In Progress to ✅ Done in 🌊 Project Boardon Nov 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Fields

Priority

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions