Skip to content

feat(projects): support 'active' filter on browse_projects (GitLab 18.5+)Β #435

@polaz

Description

@polaz

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

Problem

GitLab 18.5 added an active query parameter to GET /projects (and /groups) that returns only non-archived AND non-pending-delete entries in a single shot. Without it, clients have to fetch then filter on the client side β€” slower and prone to off-by-one with pagination.

Investigation done (current state)

Verified against src/entities/core/:

  • βœ… browse_projects action list exists with various filters
  • ❌ No grep hit for project-level active filter passing β€” only smart-user-search.ts:110 uses active: true but for users, not projects
  • ❌ No tier/version gating helper for "β‰₯18.5" specifically

Re-verify before coding:

grep -rn 'active.*=.*true\|active: true' src/entities/core/

Acceptance criteria

  • New optional active?: boolean param on browse_projects list action schema
  • Sends active=true or active=false to GitLab when set
  • Version-gated via existing ConnectionManager.isFeatureAvailable β€” fallback to client-side filter on instances < 18.5
  • Action description mentions "requires GitLab 18.5+" but works with degraded perf on older
  • Integration test verifying both paths (mock version or skip via tier-gate helper)

GitLab API

Estimate

2h

Context

Found during GitLab 18β†’19 API landscape analysis. Quality-of-life improvement that also offloads filtering work from the LLM context.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature, new MCP tool, new capability

    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