naftiko: 1.0.0-alpha2 info: title: Gitlab Bitbucket Multi Scm Shift Left Capability description: A capability that runs governance checks across GitLab + Bitbucket repos for orgs with multi-SCM estate, normalizing results into a single feed. tags: [Naftiko, GitLab, Bitbucket, Multi-SCM] created: '2026-05-01' modified: '2026-05-04' binds: - namespace: gitlab-env keys: {GITLAB_HOST: GITLAB_HOST, GITLAB_TOKEN: GITLAB_TOKEN} - namespace: bitbucket-env keys: {BITBUCKET_TOKEN: BITBUCKET_TOKEN} capability: consumes: - namespace: gitlab type: http baseUri: https://{{GITLAB_HOST}} authentication: {type: bearer, token: '{{GITLAB_TOKEN}}'} resources: - {name: projects, path: /api/v4/projects, operations: [{name: list-gitlab-projects, method: GET}]} - name: project-mr path: /api/v4/projects/{{project_id}}/merge_requests operations: - {name: list-merge-requests, method: GET, inputParameters: [{name: project_id, in: path}]} - namespace: bitbucket type: http baseUri: https://api.bitbucket.org authentication: {type: bearer, token: '{{BITBUCKET_TOKEN}}'} resources: - name: pull-requests path: /2.0/repositories/{{workspace}}/{{repo}}/pullrequests operations: - {name: list-bitbucket-prs, method: GET, inputParameters: [{name: workspace, in: path}, {name: repo, in: path}]} exposes: - type: rest address: 0.0.0.0 port: 8080 namespace: gitlab-bitbucket-multi-scm-shift-left-capability-rest description: REST surface unifying GitLab + Bitbucket review feeds. resources: - {name: review-feed, path: /review-feed, operations: [{method: GET, name: get-multi-scm-feed, call: gitlab.list-merge-requests}]} - type: mcp address: 0.0.0.0 port: 3010 namespace: gitlab-bitbucket-multi-scm-shift-left-capability-mcp description: MCP for multi-SCM shift-left. tools: - {name: list-gitlab-projects, hints: {readOnly: true}, call: gitlab.list-gitlab-projects} - name: list-merge-requests hints: {readOnly: true} inputParameters: [{name: project_id, type: string, required: true}] call: gitlab.list-merge-requests - name: list-bitbucket-prs hints: {readOnly: true} inputParameters: [{name: workspace, type: string, required: true}, {name: repo, type: string, required: true}] call: bitbucket.list-bitbucket-prs - type: skill address: 0.0.0.0 port: 3011 namespace: gitlab-bitbucket-multi-scm-shift-left-capability-skills description: Skill for multi-SCM shift-left. skills: - name: gitlab-bitbucket-multi-scm-shift-left-capability description: Multi-SCM shift-left governance. location: file:///opt/naftiko/skills/gitlab-bitbucket-multi-scm-shift-left-capability allowed-tools: list-gitlab-projects,list-merge-requests,list-bitbucket-prs tools: - {name: list-gitlab-projects, from: {sourceNamespace: gitlab-bitbucket-multi-scm-shift-left-capability-mcp, action: list-gitlab-projects}} - {name: list-merge-requests, from: {sourceNamespace: gitlab-bitbucket-multi-scm-shift-left-capability-mcp, action: list-merge-requests}} - {name: list-bitbucket-prs, from: {sourceNamespace: gitlab-bitbucket-multi-scm-shift-left-capability-mcp, action: list-bitbucket-prs}}