naftiko: 1.0.0-alpha2 info: label: Socket Repos Repos description: Socket repos repos business capability. Self-contained Naftiko capability covering one Socket business surface. tags: - Socket - Supply Chain Security - Repos - Repos created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: SOCKET_API_KEY: SOCKET_API_KEY capability: consumes: - type: http namespace: repos-repos baseUri: https://api.socket.dev/v0 description: Socket repos repos business capability. Self-contained, no shared references. resources: - name: orgs-org-slug-repos path: /orgs/{org_slug}/repos operations: - name: get-orgs-org-slug-repos method: GET description: List repositories outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org_slug in: path type: string description: The slug of the organization required: true - name: sort in: query type: string description: '' required: false - name: direction in: query type: string description: '' required: false - name: per_page in: query type: integer description: '' required: false - name: page in: query type: integer description: '' required: false - name: include_archived in: query type: boolean description: Include archived repositories in the results required: false - name: workspace in: query type: string description: Filter repositories by workspace. When provided (including empty string), only repos in that workspace are returned. required: false - name: post-orgs-org-slug-repos method: POST description: Create repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org_slug in: path type: string description: The slug of the organization required: true - name: on_duplicate in: query type: string description: Set to "redirect" to receive a 302 redirect to the existing repo instead of a 409 error when a duplicate slug is detected. required: false - name: body in: body type: object description: Request body (JSON). required: true - name: orgs-org-slug-repos-repo-slug path: /orgs/{org_slug}/repos/{repo_slug} operations: - name: get-orgs-org-slug-repos-repo-slug method: GET description: Get repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org_slug in: path type: string description: The slug of the organization required: true - name: repo_slug in: path type: string description: The slug of the repository required: true - name: workspace in: query type: string description: The workspace of the repository required: false - name: post-orgs-org-slug-repos-repo-slug method: POST description: Update repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org_slug in: path type: string description: The slug of the organization required: true - name: repo_slug in: path type: string description: The slug of the repository required: true - name: workspace in: query type: string description: The workspace of the repository required: false - name: body in: body type: object description: Request body (JSON). required: true - name: delete-orgs-org-slug-repos-repo-slug method: DELETE description: Delete repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org_slug in: path type: string description: The slug of the organization required: true - name: repo_slug in: path type: string description: The slug of the repository required: true - name: workspace in: query type: string description: The workspace of the repository required: false authentication: type: basic username: '{{env.SOCKET_API_KEY}}' password: '' description: Socket authenticates via HTTP Basic with the API key as the username and empty password. exposes: - type: rest namespace: repos-repos-rest port: 8080 description: REST adapter for Socket repos repos. resources: - path: /v1/orgs/{org_slug}/repos name: orgs-org-slug-repos description: REST surface for orgs-org-slug-repos. operations: - method: GET name: get-orgs-org-slug-repos description: List repositories call: repos-repos.get-orgs-org-slug-repos with: org_slug: rest.path.org_slug sort: rest.query.sort direction: rest.query.direction per_page: rest.query.per_page page: rest.query.page include_archived: rest.query.include_archived workspace: rest.query.workspace outputParameters: - type: object mapping: $. - method: POST name: post-orgs-org-slug-repos description: Create repository call: repos-repos.post-orgs-org-slug-repos with: org_slug: rest.path.org_slug on_duplicate: rest.query.on_duplicate body: rest.body.body outputParameters: - type: object mapping: $. - path: /v1/orgs/{org_slug}/repos/{repo_slug} name: orgs-org-slug-repos-repo-slug description: REST surface for orgs-org-slug-repos-repo-slug. operations: - method: GET name: get-orgs-org-slug-repos-repo-slug description: Get repository call: repos-repos.get-orgs-org-slug-repos-repo-slug with: org_slug: rest.path.org_slug repo_slug: rest.path.repo_slug workspace: rest.query.workspace outputParameters: - type: object mapping: $. - method: POST name: post-orgs-org-slug-repos-repo-slug description: Update repository call: repos-repos.post-orgs-org-slug-repos-repo-slug with: org_slug: rest.path.org_slug repo_slug: rest.path.repo_slug workspace: rest.query.workspace body: rest.body.body outputParameters: - type: object mapping: $. - method: DELETE name: delete-orgs-org-slug-repos-repo-slug description: Delete repository call: repos-repos.delete-orgs-org-slug-repos-repo-slug with: org_slug: rest.path.org_slug repo_slug: rest.path.repo_slug workspace: rest.query.workspace outputParameters: - type: object mapping: $. - type: mcp namespace: repos-repos-mcp port: 9090 transport: http description: MCP adapter for Socket repos repos. tools: - name: socket-get-orgs-org-slug-repos description: List repositories hints: readOnly: true destructive: false idempotent: true call: repos-repos.get-orgs-org-slug-repos with: org_slug: tools.org_slug sort: tools.sort direction: tools.direction per_page: tools.per_page page: tools.page include_archived: tools.include_archived workspace: tools.workspace outputParameters: - type: object mapping: $. - name: socket-post-orgs-org-slug-repos description: Create repository hints: readOnly: false destructive: false idempotent: false call: repos-repos.post-orgs-org-slug-repos with: org_slug: tools.org_slug on_duplicate: tools.on_duplicate body: tools.body outputParameters: - type: object mapping: $. - name: socket-get-orgs-org-slug-repos-repo-slug description: Get repository hints: readOnly: true destructive: false idempotent: true call: repos-repos.get-orgs-org-slug-repos-repo-slug with: org_slug: tools.org_slug repo_slug: tools.repo_slug workspace: tools.workspace outputParameters: - type: object mapping: $. - name: socket-post-orgs-org-slug-repos-repo-slug description: Update repository hints: readOnly: false destructive: false idempotent: false call: repos-repos.post-orgs-org-slug-repos-repo-slug with: org_slug: tools.org_slug repo_slug: tools.repo_slug workspace: tools.workspace body: tools.body outputParameters: - type: object mapping: $. - name: socket-delete-orgs-org-slug-repos-repo-slug description: Delete repository hints: readOnly: false destructive: true idempotent: true call: repos-repos.delete-orgs-org-slug-repos-repo-slug with: org_slug: tools.org_slug repo_slug: tools.repo_slug workspace: tools.workspace outputParameters: - type: object mapping: $.