naftiko: 1.0.0-alpha2 info: label: GitHub Repos API — Protections description: 'GitHub Repos API — Protections. 18 operations. Lead operation: Get Branch Protection. Self-contained Naftiko capability covering one Github business surface.' tags: - Github - Protections created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GITHUB_API_KEY: GITHUB_API_KEY capability: consumes: - type: http namespace: temp-protections baseUri: '' description: GitHub Repos API — Protections business capability. Self-contained, no shared references. resources: - name: repos-owner-repo-branches-branch-protection path: /repos/{owner}/{repo}/branches/{branch}/protection operations: - name: getbranchprotection method: GET description: Get Branch Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: updatebranchprotection method: PUT description: Update Branch Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: body in: body type: object description: Request body (JSON). required: true - name: deletebranchprotection method: DELETE description: Delete Branch Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: repos-owner-repo-branches-branch-protection-enforce_admins path: /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins operations: - name: getadminbranchprotection method: GET description: Get Admin Branch Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: setadminbranchprotection method: POST description: Set Admin Branch Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: deleteadminbranchprotection method: DELETE description: Delete Admin Branch Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: repos-owner-repo-branches-branch-protection-required_pull_request_reviews path: /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews operations: - name: getpullrequestreviewprotection method: GET description: Get Pull Request Review Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: updatepullrequestreviewprotection method: PATCH description: Update Pull Request Review Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: body in: body type: object description: Request body (JSON). required: false - name: deletepullrequestreviewprotection method: DELETE description: Delete Pull Request Review Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: repos-owner-repo-branches-branch-protection-required_signatures path: /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures operations: - name: getcommitsignatureprotection method: GET description: Get Commit Signature Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: createcommitsignatureprotection method: POST description: Create Commit Signature Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: deletecommitsignatureprotection method: DELETE description: Delete Commit Signature Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: repos-owner-repo-branches-branch-protection-required_status_checks path: /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks operations: - name: getstatuschecksprotection method: GET description: Get Status Checks Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: updatestatuscheckprotection method: PATCH description: Update Status Check Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: body in: body type: object description: Request body (JSON). required: false - name: removestatuscheckprotection method: DELETE description: Remove Status Check Protection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: repos-owner-repo-tags-protection path: /repos/{owner}/{repo}/tags/protection operations: - name: listtagprotectionstatesforrepository method: GET description: List Tag Protection States For Repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: createtagprotectionstateforrepository method: POST description: Create Tag Protection State For Repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string - name: body in: body type: object description: Request body (JSON). required: true - name: repos-owner-repo-tags-protection-tag_protection_id path: /repos/{owner}/{repo}/tags/protection/{tag_protection_id} operations: - name: deletetagprotectionstateforrepository method: DELETE description: Delete Tag Protection State For Repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string - name: X-GitHub-Api-Version in: header type: string - name: Accept in: header type: string authentication: type: bearer token: '{{env.GITHUB_API_KEY}}' exposes: - type: rest namespace: temp-protections-rest port: 8080 description: REST adapter for GitHub Repos API — Protections. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/repos/{owner}/{repo}/branches/{branch}/protection name: repos-owner-repo-branches-branch-protection description: REST surface for repos-owner-repo-branches-branch-protection. operations: - method: GET name: getbranchprotection description: Get Branch Protection call: temp-protections.getbranchprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - method: PUT name: updatebranchprotection description: Update Branch Protection call: temp-protections.updatebranchprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletebranchprotection description: Delete Branch Protection call: temp-protections.deletebranchprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - path: /v1/repos/{owner}/{repo}/branches/{branch}/protection/enforce-admins name: repos-owner-repo-branches-branch-protection-enforce-admins description: REST surface for repos-owner-repo-branches-branch-protection-enforce_admins. operations: - method: GET name: getadminbranchprotection description: Get Admin Branch Protection call: temp-protections.getadminbranchprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - method: POST name: setadminbranchprotection description: Set Admin Branch Protection call: temp-protections.setadminbranchprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - method: DELETE name: deleteadminbranchprotection description: Delete Admin Branch Protection call: temp-protections.deleteadminbranchprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - path: /v1/repos/{owner}/{repo}/branches/{branch}/protection/required-pull-request-reviews name: repos-owner-repo-branches-branch-protection-required-pull-request-reviews description: REST surface for repos-owner-repo-branches-branch-protection-required_pull_request_reviews. operations: - method: GET name: getpullrequestreviewprotection description: Get Pull Request Review Protection call: temp-protections.getpullrequestreviewprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - method: PATCH name: updatepullrequestreviewprotection description: Update Pull Request Review Protection call: temp-protections.updatepullrequestreviewprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletepullrequestreviewprotection description: Delete Pull Request Review Protection call: temp-protections.deletepullrequestreviewprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - path: /v1/repos/{owner}/{repo}/branches/{branch}/protection/required-signatures name: repos-owner-repo-branches-branch-protection-required-signatures description: REST surface for repos-owner-repo-branches-branch-protection-required_signatures. operations: - method: GET name: getcommitsignatureprotection description: Get Commit Signature Protection call: temp-protections.getcommitsignatureprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - method: POST name: createcommitsignatureprotection description: Create Commit Signature Protection call: temp-protections.createcommitsignatureprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - method: DELETE name: deletecommitsignatureprotection description: Delete Commit Signature Protection call: temp-protections.deletecommitsignatureprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - path: /v1/repos/{owner}/{repo}/branches/{branch}/protection/required-status-checks name: repos-owner-repo-branches-branch-protection-required-status-checks description: REST surface for repos-owner-repo-branches-branch-protection-required_status_checks. operations: - method: GET name: getstatuschecksprotection description: Get Status Checks Protection call: temp-protections.getstatuschecksprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - method: PATCH name: updatestatuscheckprotection description: Update Status Check Protection call: temp-protections.updatestatuscheckprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: removestatuscheckprotection description: Remove Status Check Protection call: temp-protections.removestatuscheckprotection with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - path: /v1/repos/{owner}/{repo}/tags/protection name: repos-owner-repo-tags-protection description: REST surface for repos-owner-repo-tags-protection. operations: - method: GET name: listtagprotectionstatesforrepository description: List Tag Protection States For Repository call: temp-protections.listtagprotectionstatesforrepository with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - method: POST name: createtagprotectionstateforrepository description: Create Tag Protection State For Repository call: temp-protections.createtagprotectionstateforrepository with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept body: rest.body outputParameters: - type: object mapping: $. - path: /v1/repos/{owner}/{repo}/tags/protection/{tag-protection-id} name: repos-owner-repo-tags-protection-tag-protection-id description: REST surface for repos-owner-repo-tags-protection-tag_protection_id. operations: - method: DELETE name: deletetagprotectionstateforrepository description: Delete Tag Protection State For Repository call: temp-protections.deletetagprotectionstateforrepository with: Authorization: rest.Authorization X-GitHub-Api-Version: rest.X-GitHub-Api-Version Accept: rest.Accept outputParameters: - type: object mapping: $. - type: mcp namespace: temp-protections-mcp port: 9090 transport: http description: MCP adapter for GitHub Repos API — Protections. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-branch-protection description: Get Branch Protection hints: readOnly: true destructive: false idempotent: true call: temp-protections.getbranchprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: update-branch-protection description: Update Branch Protection hints: readOnly: false destructive: false idempotent: true call: temp-protections.updatebranchprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept body: tools.body outputParameters: - type: object mapping: $. - name: delete-branch-protection description: Delete Branch Protection hints: readOnly: false destructive: true idempotent: true call: temp-protections.deletebranchprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: get-admin-branch-protection description: Get Admin Branch Protection hints: readOnly: true destructive: false idempotent: true call: temp-protections.getadminbranchprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: set-admin-branch-protection description: Set Admin Branch Protection hints: readOnly: false destructive: false idempotent: false call: temp-protections.setadminbranchprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: delete-admin-branch-protection description: Delete Admin Branch Protection hints: readOnly: false destructive: true idempotent: true call: temp-protections.deleteadminbranchprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: get-pull-request-review-protection description: Get Pull Request Review Protection hints: readOnly: true destructive: false idempotent: true call: temp-protections.getpullrequestreviewprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: update-pull-request-review-protection description: Update Pull Request Review Protection hints: readOnly: false destructive: false idempotent: true call: temp-protections.updatepullrequestreviewprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept body: tools.body outputParameters: - type: object mapping: $. - name: delete-pull-request-review-protection description: Delete Pull Request Review Protection hints: readOnly: false destructive: true idempotent: true call: temp-protections.deletepullrequestreviewprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: get-commit-signature-protection description: Get Commit Signature Protection hints: readOnly: true destructive: false idempotent: true call: temp-protections.getcommitsignatureprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: create-commit-signature-protection description: Create Commit Signature Protection hints: readOnly: false destructive: false idempotent: false call: temp-protections.createcommitsignatureprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: delete-commit-signature-protection description: Delete Commit Signature Protection hints: readOnly: false destructive: true idempotent: true call: temp-protections.deletecommitsignatureprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: get-status-checks-protection description: Get Status Checks Protection hints: readOnly: true destructive: false idempotent: true call: temp-protections.getstatuschecksprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: update-status-check-protection description: Update Status Check Protection hints: readOnly: false destructive: false idempotent: true call: temp-protections.updatestatuscheckprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept body: tools.body outputParameters: - type: object mapping: $. - name: remove-status-check-protection description: Remove Status Check Protection hints: readOnly: false destructive: true idempotent: true call: temp-protections.removestatuscheckprotection with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: list-tag-protection-states-repository description: List Tag Protection States For Repository hints: readOnly: true destructive: false idempotent: true call: temp-protections.listtagprotectionstatesforrepository with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $. - name: create-tag-protection-state-repository description: Create Tag Protection State For Repository hints: readOnly: false destructive: false idempotent: false call: temp-protections.createtagprotectionstateforrepository with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept body: tools.body outputParameters: - type: object mapping: $. - name: delete-tag-protection-state-repository description: Delete Tag Protection State For Repository hints: readOnly: false destructive: true idempotent: true call: temp-protections.deletetagprotectionstateforrepository with: Authorization: tools.Authorization X-GitHub-Api-Version: tools.X-GitHub-Api-Version Accept: tools.Accept outputParameters: - type: object mapping: $.