All files / src/cli/plugin listing.ts

100% Statements 7/7
100% Branches 0/0
100% Functions 0/0
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73                  7x             7x     7x     7x                     7x               7x           7x                                                  
/**
 * Listing metadata of the GitLab MCP plugin package.
 *
 * Identity, version, license and links come from package.json at build time;
 * this module holds only what package.json has no field for. Privacy and terms
 * links belong to whoever operates the endpoint and are build inputs.
 */
 
/** Plugin identifier: hosts use it as the plugin ID and the component namespace. */
export const PLUGIN_NAME = 'gitlab-mcp';
 
/**
 * Key of the single MCP server in mcp.json. Codex names the server and its tools by it,
 * and a server of the same name hides another, so it is not the generic "gitlab" other
 * GitLab servers use.
 */
export const MCP_SERVER_NAME = 'gitlab-sw';
 
/** Skill opened when the plugin is first set up. */
export const ONBOARDING_SKILL = 'gitlab-setup';
 
/** Directory search terms; package.json keywords target npm and name other hosts. */
export const PLUGIN_KEYWORDS = [
  'gitlab',
  'merge-requests',
  'code-review',
  'ci-cd',
  'pipelines',
  'issues',
  'devops',
] as const;
 
/** Package-relative path of the logo, shared with the MCPB bundle. */
export const LOGO_SOURCE = 'plugin/assets/logo.png';
 
/**
 * Listing images other than the logo, as package-relative paths; each is packaged under
 * assets/ with its file name. The logo is a tile with its own background and serves both
 * themes; the composer icon is a bare glyph and needs one per theme. The PNG files are
 * rendered by scripts/plugin-assets.mjs.
 */
export const LISTING_ASSETS = {
  composerIcon: 'plugin/assets/composer-icon.png',
  composerIconDark: 'plugin/assets/composer-icon-dark.png',
  screenshots: ['plugin/assets/screenshot-1.png', 'plugin/assets/screenshot-2.png'],
} as const;
 
export const LISTING = {
  displayName: 'GitLab by Structured World',
  shortDescription: 'GitLab projects, MRs and CI',
  longDescription:
    'Work with GitLab from chat: browse projects and repositories, review and manage merge requests, ' +
    'triage issues, epics and other work items, inspect and run CI/CD pipelines, and manage releases, ' +
    'wiki pages, labels and milestones. Every call runs with the permissions of the GitLab account ' +
    'the server connects with: your own when the server signs you in with GitLab, or the token a ' +
    'local server is started with. The account settings page limits the tools, projects and groups ' +
    'a chat can use or keeps it read-only. Works with GitLab.com and self-managed GitLab 16.0 or later, ' +
    'as the endpoint operator configures. Features GitLab does not offer on an instance or tier stay ' +
    'unavailable there.',
  developerName: 'Structured World',
  category: 'Developer Tools',
  capabilities: ['Interactive', 'Read', 'Write'],
  defaultPrompt: [
    'Show my open merge requests and which ones wait for my review',
    'Why did the latest pipeline on main fail?',
    'Summarize the issues assigned to me in this milestone',
  ],
  // 6.1:1 against white; the directory requires at least 2:1.
  brandColor: '#6B4FBB',
  // 6.7:1 against the dark theme's #212121; the directory requires at least 2:1.
  brandColorDark: '#B197FC',
} as const;