Skip to content

feat(runners): expose Runners management (list/register/delete)Β #442

@polaz

Description

@polaz

πŸ‘ React to this issue if you need this feature β€” helps us prioritise.

Problem

GitLab Runners are the workhorses of CI. Admins/maintainers regularly need to list, register, and decommission runners. We expose nothing here.

Investigation done (current state)

Verified against src/entities/:

  • βœ… TokenScopeDetector.ts recognises create_runner and manage_runner scopes (good β€” we can hint at availability)
  • βœ… entities/shared.ts reads shared_runners_enabled, group_runners_enabled, runners_token, runner_token_expiration_interval on project schema β€” but we expose no actions
  • ❌ No entity runners/ exists, no grep hit for runner CRUD

Re-verify before coding:

grep -rIni 'runner' src/entities/ | grep -v shared

Acceptance criteria

  • New entity src/entities/runners/ with:
    • browse_runners actions: list_all (admin), list_owned (current user), list_project, list_group, get, list_jobs (jobs run by a runner)
    • manage_runner actions: create_authentication_token (new GitLab 16+ runner registration flow), update, pause/resume, delete, reset_authentication_token
  • Permission: create_runner / manage_runner scopes; admin probe (feat(context): probe admin_mode elevation and expose in whoamiΒ #434) for instance-level list
  • Integration test: register ephemeral runner, list, delete

GitLab API

  • Endpoints: /api/v4/runners, /projects/:id/runners, /groups/:id/runners
  • Tier: Free
  • Important: GitLab 16+ uses new authentication-token-based registration; legacy registration-token flow is removed
  • Docs: https://docs.gitlab.com/api/runners/

Estimate

1d

Context

Found during GitLab 18β†’19 API landscape analysis.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions