naftiko: 1.0.0-alpha2 info: label: GitHub Org API — Discussions description: 'GitHub Org API — Discussions. 16 operations. Lead operation: GitHub List Discussions. Self-contained Naftiko capability covering one Github business surface.' tags: - Github - Discussions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GITHUB_API_KEY: GITHUB_API_KEY capability: consumes: - type: http namespace: organizations-discussions baseUri: '' description: GitHub Org API — Discussions business capability. Self-contained, no shared references. resources: - name: orgs-org-teams-team_slug-discussions path: /orgs/{org}/teams/{team_slug}/discussions operations: - name: listdiscussions method: GET description: GitHub List Discussions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: pinned in: query type: string description: Pinned discussions only filter - name: creatediscussion method: POST description: GitHub Create Discussion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: orgs-org-teams-team_slug-discussions-discussion_number path: /orgs/{org}/teams/{team_slug}/discussions/{discussion_number} operations: - name: getdiscussion method: GET description: GitHub Get Discussion outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatediscussion method: PATCH description: GitHub Update Discussion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: deletediscussion method: DELETE description: GitHub Delete Discussion outputRawFormat: json outputParameters: - name: result type: object value: $. - name: orgs-org-teams-team_slug-discussions-discussion_number-comments path: /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments operations: - name: listdiscussioncomments method: GET description: GitHub List Discussion Comments outputRawFormat: json outputParameters: - name: result type: object value: $. - name: creatediscussioncomment method: POST description: GitHub Create Discussion Comment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: orgs-org-teams-team_slug-discussions-discussion_number-comments-comment_number path: /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number} operations: - name: getdiscussioncomment method: GET description: GitHub Get Discussion Comment outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatediscussioncomment method: PATCH description: GitHub Update Discussion Comment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletediscussioncomment method: DELETE description: GitHub Delete Discussion Comment outputRawFormat: json outputParameters: - name: result type: object value: $. - name: orgs-org-teams-team_slug-discussions-discussion_number-comments-comment_number-r path: /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions operations: - name: listreactionsforteamdiscussioncomment method: GET description: GitHub List Reactions for Team Discussion Comment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: content in: query type: string description: Returns a single [reaction type](https://docs.github.com/enterprise-server@3.9/rest/reactions/reactions#about-reactions). Omit this parameter to list all reacti - name: createreactionforteamdiscussioncomment method: POST description: GitHub Create Reaction for Team Discussion Comment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: orgs-org-teams-team_slug-discussions-discussion_number-comments-comment_number-r path: /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id} operations: - name: deleteteamdiscussioncommentreaction method: DELETE description: GitHub Delete Team Discussion Comment Reaction outputRawFormat: json outputParameters: - name: result type: object value: $. - name: orgs-org-teams-team_slug-discussions-discussion_number-reactions path: /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions operations: - name: listreactionsforteamdiscussion method: GET description: GitHub List Reactions for Team Discussion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: content in: query type: string description: Returns a single [reaction type](https://docs.github.com/enterprise-server@3.9/rest/reactions/reactions#about-reactions). Omit this parameter to list all reacti - name: createreactionforteamdiscussion method: POST description: GitHub Create Reaction for Team Discussion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: orgs-org-teams-team_slug-discussions-discussion_number-reactions-reaction_id path: /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id} operations: - name: deleteteamdiscussionreaction method: DELETE description: GitHub Delete Team Discussion Reaction outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.GITHUB_API_KEY}}' exposes: - type: rest namespace: organizations-discussions-rest port: 8080 description: REST adapter for GitHub Org API — Discussions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/orgs/{org}/teams/{team-slug}/discussions name: orgs-org-teams-team-slug-discussions description: REST surface for orgs-org-teams-team_slug-discussions. operations: - method: GET name: listdiscussions description: GitHub List Discussions call: organizations-discussions.listdiscussions with: pinned: rest.pinned outputParameters: - type: object mapping: $. - method: POST name: creatediscussion description: GitHub Create Discussion call: organizations-discussions.creatediscussion with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/teams/{team-slug}/discussions/{discussion-number} name: orgs-org-teams-team-slug-discussions-discussion-number description: REST surface for orgs-org-teams-team_slug-discussions-discussion_number. operations: - method: GET name: getdiscussion description: GitHub Get Discussion call: organizations-discussions.getdiscussion outputParameters: - type: object mapping: $. - method: PATCH name: updatediscussion description: GitHub Update Discussion call: organizations-discussions.updatediscussion with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletediscussion description: GitHub Delete Discussion call: organizations-discussions.deletediscussion outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/teams/{team-slug}/discussions/{discussion-number}/comments name: orgs-org-teams-team-slug-discussions-discussion-number-comments description: REST surface for orgs-org-teams-team_slug-discussions-discussion_number-comments. operations: - method: GET name: listdiscussioncomments description: GitHub List Discussion Comments call: organizations-discussions.listdiscussioncomments outputParameters: - type: object mapping: $. - method: POST name: creatediscussioncomment description: GitHub Create Discussion Comment call: organizations-discussions.creatediscussioncomment with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/teams/{team-slug}/discussions/{discussion-number}/comments/{comment-number} name: orgs-org-teams-team-slug-discussions-discussion-number-comments-comment-number description: REST surface for orgs-org-teams-team_slug-discussions-discussion_number-comments-comment_number. operations: - method: GET name: getdiscussioncomment description: GitHub Get Discussion Comment call: organizations-discussions.getdiscussioncomment outputParameters: - type: object mapping: $. - method: PATCH name: updatediscussioncomment description: GitHub Update Discussion Comment call: organizations-discussions.updatediscussioncomment with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletediscussioncomment description: GitHub Delete Discussion Comment call: organizations-discussions.deletediscussioncomment outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/teams/{team-slug}/discussions/{discussion-number}/comments/{comment-number}/reactions name: orgs-org-teams-team-slug-discussions-discussion-number-comments-comment-number-r description: REST surface for orgs-org-teams-team_slug-discussions-discussion_number-comments-comment_number-r. operations: - method: GET name: listreactionsforteamdiscussioncomment description: GitHub List Reactions for Team Discussion Comment call: organizations-discussions.listreactionsforteamdiscussioncomment with: content: rest.content outputParameters: - type: object mapping: $. - method: POST name: createreactionforteamdiscussioncomment description: GitHub Create Reaction for Team Discussion Comment call: organizations-discussions.createreactionforteamdiscussioncomment with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/teams/{team-slug}/discussions/{discussion-number}/comments/{comment-number}/reactions/{reaction-id} name: orgs-org-teams-team-slug-discussions-discussion-number-comments-comment-number-r description: REST surface for orgs-org-teams-team_slug-discussions-discussion_number-comments-comment_number-r. operations: - method: DELETE name: deleteteamdiscussioncommentreaction description: GitHub Delete Team Discussion Comment Reaction call: organizations-discussions.deleteteamdiscussioncommentreaction outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/teams/{team-slug}/discussions/{discussion-number}/reactions name: orgs-org-teams-team-slug-discussions-discussion-number-reactions description: REST surface for orgs-org-teams-team_slug-discussions-discussion_number-reactions. operations: - method: GET name: listreactionsforteamdiscussion description: GitHub List Reactions for Team Discussion call: organizations-discussions.listreactionsforteamdiscussion with: content: rest.content outputParameters: - type: object mapping: $. - method: POST name: createreactionforteamdiscussion description: GitHub Create Reaction for Team Discussion call: organizations-discussions.createreactionforteamdiscussion with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/teams/{team-slug}/discussions/{discussion-number}/reactions/{reaction-id} name: orgs-org-teams-team-slug-discussions-discussion-number-reactions-reaction-id description: REST surface for orgs-org-teams-team_slug-discussions-discussion_number-reactions-reaction_id. operations: - method: DELETE name: deleteteamdiscussionreaction description: GitHub Delete Team Discussion Reaction call: organizations-discussions.deleteteamdiscussionreaction outputParameters: - type: object mapping: $. - type: mcp namespace: organizations-discussions-mcp port: 9090 transport: http description: MCP adapter for GitHub Org API — Discussions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: github-list-discussions description: GitHub List Discussions hints: readOnly: true destructive: false idempotent: true call: organizations-discussions.listdiscussions with: pinned: tools.pinned outputParameters: - type: object mapping: $. - name: github-create-discussion description: GitHub Create Discussion hints: readOnly: false destructive: false idempotent: false call: organizations-discussions.creatediscussion with: body: tools.body outputParameters: - type: object mapping: $. - name: github-get-discussion description: GitHub Get Discussion hints: readOnly: true destructive: false idempotent: true call: organizations-discussions.getdiscussion outputParameters: - type: object mapping: $. - name: github-update-discussion description: GitHub Update Discussion hints: readOnly: false destructive: false idempotent: true call: organizations-discussions.updatediscussion with: body: tools.body outputParameters: - type: object mapping: $. - name: github-delete-discussion description: GitHub Delete Discussion hints: readOnly: false destructive: true idempotent: true call: organizations-discussions.deletediscussion outputParameters: - type: object mapping: $. - name: github-list-discussion-comments description: GitHub List Discussion Comments hints: readOnly: true destructive: false idempotent: true call: organizations-discussions.listdiscussioncomments outputParameters: - type: object mapping: $. - name: github-create-discussion-comment description: GitHub Create Discussion Comment hints: readOnly: false destructive: false idempotent: false call: organizations-discussions.creatediscussioncomment with: body: tools.body outputParameters: - type: object mapping: $. - name: github-get-discussion-comment description: GitHub Get Discussion Comment hints: readOnly: true destructive: false idempotent: true call: organizations-discussions.getdiscussioncomment outputParameters: - type: object mapping: $. - name: github-update-discussion-comment description: GitHub Update Discussion Comment hints: readOnly: false destructive: false idempotent: true call: organizations-discussions.updatediscussioncomment with: body: tools.body outputParameters: - type: object mapping: $. - name: github-delete-discussion-comment description: GitHub Delete Discussion Comment hints: readOnly: false destructive: true idempotent: true call: organizations-discussions.deletediscussioncomment outputParameters: - type: object mapping: $. - name: github-list-reactions-team-discussion description: GitHub List Reactions for Team Discussion Comment hints: readOnly: true destructive: false idempotent: true call: organizations-discussions.listreactionsforteamdiscussioncomment with: content: tools.content outputParameters: - type: object mapping: $. - name: github-create-reaction-team-discussion description: GitHub Create Reaction for Team Discussion Comment hints: readOnly: false destructive: false idempotent: false call: organizations-discussions.createreactionforteamdiscussioncomment with: body: tools.body outputParameters: - type: object mapping: $. - name: github-delete-team-discussion-comment description: GitHub Delete Team Discussion Comment Reaction hints: readOnly: false destructive: true idempotent: true call: organizations-discussions.deleteteamdiscussioncommentreaction outputParameters: - type: object mapping: $. - name: github-list-reactions-team-discussion-2 description: GitHub List Reactions for Team Discussion hints: readOnly: true destructive: false idempotent: true call: organizations-discussions.listreactionsforteamdiscussion with: content: tools.content outputParameters: - type: object mapping: $. - name: github-create-reaction-team-discussion-2 description: GitHub Create Reaction for Team Discussion hints: readOnly: false destructive: false idempotent: false call: organizations-discussions.createreactionforteamdiscussion with: body: tools.body outputParameters: - type: object mapping: $. - name: github-delete-team-discussion-reaction description: GitHub Delete Team Discussion Reaction hints: readOnly: false destructive: true idempotent: true call: organizations-discussions.deleteteamdiscussionreaction outputParameters: - type: object mapping: $.