naftiko: 1.0.0-alpha2 info: label: GitHub Auth API — Create description: 'GitHub Auth API — Create. 4 operations. Lead operation: GitHub Create an Impersonation Oauth Token. Self-contained Naftiko capability covering one Github business surface.' tags: - Github - Create created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GITHUB_API_KEY: GITHUB_API_KEY capability: consumes: - type: http namespace: auth-create baseUri: '' description: GitHub Auth API — Create business capability. Self-contained, no shared references. resources: - name: admin-users-username-authorizations path: /admin/users/{username}/authorizations operations: - name: createanimpersonationoauthtoken method: POST description: GitHub Create an Impersonation Oauth Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: authorizations path: /authorizations operations: - name: createnewauthorization method: POST description: GitHub Createnew Authorization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: authorizations-clients-client_id path: /authorizations/clients/{client_id} operations: - name: getorcreateanauthorizationforspecificapp method: PUT description: GitHub Get or Create an Authorization Forspecific App outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: authorizations-clients-client_id-fingerprint path: /authorizations/clients/{client_id}/{fingerprint} operations: - name: getorcreateanauthorizationforspecificappandfingerprint method: PUT description: GitHub Get or Create an Authorization Forspecific App and Fingerprint outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fingerprint in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.GITHUB_API_KEY}}' exposes: - type: rest namespace: auth-create-rest port: 8080 description: REST adapter for GitHub Auth API — Create. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/admin/users/{username}/authorizations name: admin-users-username-authorizations description: REST surface for admin-users-username-authorizations. operations: - method: POST name: createanimpersonationoauthtoken description: GitHub Create an Impersonation Oauth Token call: auth-create.createanimpersonationoauthtoken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/authorizations name: authorizations description: REST surface for authorizations. operations: - method: POST name: createnewauthorization description: GitHub Createnew Authorization call: auth-create.createnewauthorization with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/authorizations/clients/{client-id} name: authorizations-clients-client-id description: REST surface for authorizations-clients-client_id. operations: - method: PUT name: getorcreateanauthorizationforspecificapp description: GitHub Get or Create an Authorization Forspecific App call: auth-create.getorcreateanauthorizationforspecificapp with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/authorizations/clients/{client-id}/{fingerprint} name: authorizations-clients-client-id-fingerprint description: REST surface for authorizations-clients-client_id-fingerprint. operations: - method: PUT name: getorcreateanauthorizationforspecificappandfingerprint description: GitHub Get or Create an Authorization Forspecific App and Fingerprint call: auth-create.getorcreateanauthorizationforspecificappandfingerprint with: fingerprint: rest.fingerprint body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: auth-create-mcp port: 9090 transport: http description: MCP adapter for GitHub Auth API — Create. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: github-create-impersonation-oauth-token description: GitHub Create an Impersonation Oauth Token hints: readOnly: false destructive: false idempotent: false call: auth-create.createanimpersonationoauthtoken with: body: tools.body outputParameters: - type: object mapping: $. - name: github-createnew-authorization description: GitHub Createnew Authorization hints: readOnly: false destructive: false idempotent: false call: auth-create.createnewauthorization with: body: tools.body outputParameters: - type: object mapping: $. - name: github-get-create-authorization-forspecific description: GitHub Get or Create an Authorization Forspecific App hints: readOnly: false destructive: false idempotent: true call: auth-create.getorcreateanauthorizationforspecificapp with: body: tools.body outputParameters: - type: object mapping: $. - name: github-get-create-authorization-forspecific-2 description: GitHub Get or Create an Authorization Forspecific App and Fingerprint hints: readOnly: false destructive: false idempotent: true call: auth-create.getorcreateanauthorizationforspecificappandfingerprint with: fingerprint: tools.fingerprint body: tools.body outputParameters: - type: object mapping: $.