Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
gitlab-mcp
command
Command gitlab-mcp is an MCP server for GitLab.
|
Command gitlab-mcp is an MCP server for GitLab. |
|
internal
|
|
|
app
Package app is the startup assembly every entry point shares: open the profile, settle the OAuth application, build the HTTP transport, the token source and the GitLab client, refuse a mode the sign-in cannot serve, and wire the MCP server.
|
Package app is the startup assembly every entry point shares: open the profile, settle the OAuth application, build the HTTP transport, the token source and the GitLab client, refuse a mode the sign-in cannot serve, and wire the MCP server. |
|
auth
Package auth is the family's sign-in on GitLab's OAuth provider: the person's own OAuth application, a loopback redirect on 127.0.0.1 with a random port, PKCE S256, and a refreshing token source that survives GitLab's immediate rotation (docs/architecture.md §10).
|
Package auth is the family's sign-in on GitLab's OAuth provider: the person's own OAuth application, a loopback redirect on 127.0.0.1 with a random port, PKCE S256, and a refreshing token source that survives GitLab's immediate rotation (docs/architecture.md §10). |
|
config
Package config loads and validates the runtime configuration.
|
Package config loads and validates the runtime configuration. |
|
credentials
Package credentials stores and resolves the OAuth token of one profile: access token, refresh token, expiry and type.
|
Package credentials stores and resolves the OAuth token of one profile: access token, refresh token, expiry and type. |
|
diffpos
Package diffpos computes where an inline comment lands: GitLab's diff position for a line of a merge request's diff, from the file's unified diff and the diff version's refs (docs/architecture.md §7.4).
|
Package diffpos computes where an inline comment lands: GitLab's diff position for a line of a merge request's diff, from the file's unified diff and the diff version's refs (docs/architecture.md §7.4). |
|
fileperm
Package fileperm restricts a file to the account that wrote it: mode 0600 on Unix, an explicit access list on Windows, where a mode only sets the read-only attribute and protects nothing.
|
Package fileperm restricts a file to the account that wrote it: mode 0600 on Unix, an explicit access list on Windows, where a mode only sets the read-only attribute and protects nothing. |
|
gapi
Package gapi is the raw REST client for GitLab's API v4.
|
Package gapi is the raw REST client for GitLab's API v4. |
|
gapi/gitlabtest
Package gitlabtest is an in-memory GitLab behind httptest, for tests.
|
Package gitlabtest is an in-memory GitLab behind httptest, for tests. |
|
gitlab
Package gitlab holds the wire types of GitLab's REST API v4.
|
Package gitlab holds the wire types of GitLab's REST API v4. |
|
instance
Package instance normalizes the GitLab base URL (gitlab.com, or the loopback test instance), checks URLs against it, reads the instance's version and edition, and turns GitLab web URLs into tool arguments.
|
Package instance normalizes the GitLab base URL (gitlab.com, or the loopback test instance), checks URLs against it, reads the instance's version and edition, and turns GitLab web URLs into tool arguments. |
|
model
Package model is the server's view of what GitLab returns: the shapes every tool result carries as structuredContent, under its output schema.
|
Package model is the server's view of what GitLab returns: the shapes every tool result carries as structuredContent, under its output schema. |
|
quickaction
Package quickaction finds and neutralizes the lines of a Markdown body that GitLab would run as quick actions.
|
Package quickaction finds and neutralizes the lines of a Markdown body that GitLab would run as quick actions. |
|
redact
Package redact masks what this server prints for a person and must not survive being pasted somewhere else, and the secrets a job log can carry.
|
Package redact masks what this server prints for a person and must not survive being pasted somewhere else, and the secrets a job log can carry. |
|
render
Package render turns the server's model into the readable half of a tool result, and prepares text other people wrote before anything shows it (docs/architecture.md §4.1, §4.8).
|
Package render turns the server's model into the readable half of a tool result, and prepares text other people wrote before anything shows it (docs/architecture.md §4.1, §4.8). |
|
scopes
Package scopes is the one source of truth for the OAuth scopes this server requests in each mode, the scope each kind of tool needs, and the text people paste when they register their OAuth application.
|
Package scopes is the one source of truth for the OAuth scopes this server requests in each mode, the scope each kind of tool needs, and the text people paste when they register their OAuth application. |
|
server
Package server wires the tools onto the MCP SDK and dumps the tool surface.
|
Package server wires the tools onto the MCP SDK and dumps the tool surface. |
|
service
Package service is the orchestration between the tools and the REST client: resolving a project once per call, the reads that take more than one request, and turning wire types into the model a result carries, with every piece of other people's text prepared by render on the way (docs/architecture.md §4.1, §4.8).
|
Package service is the orchestration between the tools and the REST client: resolving a project once per call, the reads that take more than one request, and turning wire types into the model a result carries, with every piece of other people's text prepared by render on the way (docs/architecture.md §4.1, §4.8). |
|
tools
Package tools registers the MCP tools.
|
Package tools registers the MCP tools. |
|
userconfig
Package userconfig stores non-secret, per-profile state between runs: which instance a profile signs in to, which OAuth application it uses, who signed in, where the token went and which scopes GitLab granted.
|
Package userconfig stores non-secret, per-profile state between runs: which instance a profile signs in to, which OAuth application it uses, who signed in, where the token went and which scopes GitLab granted. |
|
version
Package version reports the binary's version.
|
Package version reports the binary's version. |
|
scripts
|
|
|
evals
command
The evals are behind a build tag so an ordinary `go build ./...` never reaches for a model.
|
The evals are behind a build tag so an ordinary `go build ./...` never reaches for a model. |
|
gates
command
Command gates runs the repository's own checks.
|
Command gates runs the repository's own checks. |
|
internal/gatekit
Package gatekit is what several gates share that is not git, a TSV record or an MCP session: the repository's names, how a list of problems becomes one failure, and the few readers more than one gate needs.
|
Package gatekit is what several gates share that is not git, a TSV record or an MCP session: the repository's names, how a list of problems becomes one failure, and the few readers more than one gate needs. |
|
internal/gitx
Package gitx is the few git questions the gates and drivers ask, as one line of plumbing each.
|
Package gitx is the few git questions the gates and drivers ask, as one line of plumbing each. |
|
internal/mcpstdio
Package mcpstdio is a small MCP client over a child process's stdio, for the programs under scripts/ that drive the built server: the smoke gate, the live driver and the evals.
|
Package mcpstdio is a small MCP client over a child process's stdio, for the programs under scripts/ that drive the built server: the smoke gate, the live driver and the evals. |
|
internal/redact
Package redact is how the programs under scripts/ that drive a real instance print: through one Printer, which masks what a run can carry.
|
Package redact is how the programs under scripts/ that drive a real instance print: through one Printer, which masks what a run can carry. |
|
internal/tsv
Package tsv is the one reader for the record files the gates hold the code against — API verdicts, field verdicts, live-driver waivers, coverage exemptions — so they cannot disagree about blank lines, comments, a trailing TAB or a key listed twice.
|
Package tsv is the one reader for the record files the gates hold the code against — API verdicts, field verdicts, live-driver waivers, coverage exemptions — so they cannot disagree about blank lines, comments, a trailing TAB or a key listed twice. |
|
livegitlab
command
The live driver is behind a build tag, so an ordinary `go build ./...` never reaches an instance or an account.
|
The live driver is behind a build tag, so an ordinary `go build ./...` never reaches an instance or an account. |
Click to show internal directories.
Click to hide internal directories.