Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: structured-world/gitlab-mcp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v6.9.0
Choose a base ref
...
head repository: structured-world/gitlab-mcp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v6.10.0
Choose a head ref
  • 2 commits
  • 14 files changed
  • 2 contributors

Commits on Jan 20, 2026

  1. feat(docs): add --export flag to list-tools for TOOLS.md generation (#51

    )
    
    * feat(docs): add --export flag to list-tools for TOOLS.md generation
    
    Add documentation export capability to the list-tools CLI script:
    
    - Add --export flag to generate complete TOOLS.md markdown
    - Add --toc flag for table of contents
    - Add --no-examples flag to skip example JSON blocks
    - Add getAllToolDefinitionsUnfiltered() method to registry-manager
      for getting all tools without env filtering (for documentation)
    - Apply schema transformation to flatten discriminated unions
    - Include tier badges for tools with tier requirements
    - Extract actions from CQRS schemas and display in tables
    - Group tools by entity category (Core, Work Items, MRs, etc.)
    - Add version and timestamp to generated header
    
    Usage:
      yarn list-tools --export > docs/TOOLS.md
      yarn list-tools --export --toc --no-examples
    
    Closes #47
    
    * feat(config): add GITLAB_SCHEMA_MODE for schema output format control
    
    Add environment variable to control JSON Schema output format:
    
    - GITLAB_SCHEMA_MODE=flat (default): Flatten discriminated unions
      to single object with action enum for AI clients compatibility
    - GITLAB_SCHEMA_MODE=discriminated: Keep oneOf structure with
      separate branches per action for clients supporting JSON Schema
    
    Changes:
    - Add GITLAB_SCHEMA_MODE and SchemaMode type to config.ts
    - Update schema-utils.ts to use config import instead of process.env
    - Rename getSchemaFormat() to getSchemaMode() for consistency
    - Update tests to mock GITLAB_SCHEMA_MODE
    
    Partial implementation of #49
    
    * fix: address PR review comments for list-tools
    
    - Fix regex for space replacement to use global flag (/g)
    - Extract ACTION_DESCRIPTIONS to constant object
    - Extract action descriptions dynamically from oneOf branches
    - Update extractParameters to merge params from all oneOf branches
    - Update generateExample to use first oneOf branch
    - Add unit tests for getAllToolDefinitionsUnfiltered
    - Return original schemas in getAllToolDefinitionsUnfiltered for richer docs
    
    * test: add coverage for GITLAB_SCHEMA_MODE and --export mode
    
    - Add 6 tests for GITLAB_SCHEMA_MODE parsing in config.test.ts
    - Add 6 tests for --export mode in list-tools.test.ts
      - oneOf schema action extraction
      - parameter merging with action hints
      - --toc and --no-examples flags
      - flat schema fallback
    
    * docs: update README with GITLAB_SCHEMA_MODE and --export documentation
    
    - Rename GITLAB_SCHEMA_FORMAT to GITLAB_SCHEMA_MODE throughout
    - Add documentation for yarn list-tools --export flag
    - Document --toc and --no-examples options
    - Describe export mode output: actions table, parameters, examples, tier badges
    
    * feat(cli): add grouped parameters format and semantic-release integration
    
    TOOLS.md export improvements:
    - Group parameters by common (all actions) vs action-specific
    - Much cleaner human-readable documentation format
    - Add extractParametersGrouped() for structured parameter extraction
    
    Semantic-release integration:
    - Auto-generate docs/TOOLS.md during release via @semantic-release/exec
    - Add TOOLS.md to git assets for automatic commit
    - Remove manual commit step from CI workflow
    
    Code organization:
    - Move list-tools.ts to src/cli/ directory
    - Move tests to tests/unit/cli/
    
    PR review fixes:
    - Add bounds checking for --entity/--tool CLI args
    - Add clarifying comment for ENTITY_TOOLS categories
    - Remove unused toolName parameter from generateExample
    - Add fallback for package.json version detection
    - Fix misleading test description for getAllToolDefinitionsUnfiltered
    
    * test(cli): increase list-tools coverage to 91%
    
    Add comprehensive tests for list-tools.ts:
    - Verbose mode with no parameters
    - Tier info badges (premium/ultimate/free)
    - Unresolved $ref type handling
    - Common + action-specific parameters grouping
    - Action-specific params sorting by required status
    - Example generation with all parameter naming patterns
    
    * refactor(cli): remove dead code from extractParameters
    
    Remove unused oneOf handling from extractParameters function.
    This code was never executed because extractParametersGrouped
    handles oneOf schemas directly and only calls extractParameters
    for flat schemas.
    
    Reduces code by ~50 lines and improves coverage to 96%.
    
    * fix(cli): add error handling for unrecognized flags
    
      Warn users about typos (e.g., --exprt instead of --export) with
      helpful error message pointing to --help.
    
      Also:
      - Remove unused artifact download from semantic-release CI job
      - Ensure docs directory exists before TOOLS.md generation
    polaz authored Jan 20, 2026
    Configuration menu
    Copy the full SHA
    25f5393 View commit details
    Browse the repository at this point in the history
  2. chore(release): 6.10.0 [skip ci]

    ## [6.10.0](v6.9.0...v6.10.0) (2026-01-20)
    
    ### Features
    
    * **docs:** add --export flag to list-tools for TOOLS.md generation ([#51](#51)) ([25f5393](25f5393)), closes [#47](#47) [#49](#49)
    semantic-release-bot committed Jan 20, 2026
    Configuration menu
    Copy the full SHA
    acdb83d View commit details
    Browse the repository at this point in the history
Loading