Skip to content

Restructure: split actions into individual repos (qoomon/actions pattern) #2

@nsheaps

Description

@nsheaps

Summary

Restructure nsheaps/github-actions to follow the qoomon/actions pattern, where each action lives in its own repository and the central repo is auto-generated.

Current State

All custom GitHub Actions live in subdirectories of this single repo.

Proposed Structure

1. Individual Action Repos

Each action gets its own repo with action.yml (or action.yaml) at the root:

  • nsheaps/<action-name> — e.g., nsheaps/setup-mise-action, nsheaps/arcane-action, etc.
  • Each repo is independently versioned and releasable
  • Users reference actions as nsheaps/<action-name>@v1

2. Central Repo Becomes Auto-Generated

nsheaps/github-actions becomes a discovery/index repo:

  • Weekly workflow scans all nsheaps/* repos for action.yml/action.yaml at root
  • Auto-generates a README or index listing all discovered action repos
  • No action source code lives here — just the generated index

3. Discovery Workflow

# Runs weekly, scans org for action repos
# Generates index in this repo

Benefits

  • Independent versioning per action
  • Cleaner dependency management
  • Easier to discover and reference
  • Follows established patterns (qoomon/actions)

Reference

Migration Steps

  1. Create individual repos for each existing action
  2. Move action code (pure move, no improvements)
  3. Verify each action works from its new location
  4. Set up the weekly discovery workflow in this repo
  5. Update all consumers to reference new action locations
  6. Remove old action subdirectories from this repo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions