naftiko: 1.0.0-alpha2 info: label: GitHub Org API — Groups description: 'GitHub Org API — Groups. 18 operations. Lead operation: GitHub List Self-hosted Runner Groups for an Organization. Self-contained Naftiko capability covering one Github business surface.' tags: - Github - Groups created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GITHUB_API_KEY: GITHUB_API_KEY capability: consumes: - type: http namespace: organizations-groups baseUri: '' description: GitHub Org API — Groups business capability. Self-contained, no shared references. resources: - name: orgs-org-actions-runner-groups path: /orgs/{org}/actions/runner-groups operations: - name: listselfhostedrunnergroupsforanorganization method: GET description: GitHub List Self-hosted Runner Groups for an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createselfhostedrunnergroupforanorganization method: POST description: GitHub Create Self-hosted Runner Group for an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: orgs-org-actions-runner-groups-runner_group_id path: /orgs/{org}/actions/runner-groups/{runner_group_id} operations: - name: getselfhostedrunnergroupforanorganization method: GET description: GitHub Get Self-hosted Runner Group for an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateselfhostedrunnergroupforanorganization method: PATCH description: GitHub Update Self-hosted Runner Group for an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deleteselfhostedrunnergroupfromanorganization method: DELETE description: GitHub Delete Self-hosted Runner Group from an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: orgs-org-actions-runner-groups-runner_group_id-repositories path: /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories operations: - name: listrepositoryaccesstoselfhostedrunnergroupinanorganization method: GET description: GitHub List Repository Access to Self-hosted Runner Group in an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: setrepositoryaccessforselfhostedrunnergroupinanorganization method: PUT description: GitHub Set Repository Access for Self-hosted Runner Group in an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: orgs-org-actions-runner-groups-runner_group_id-repositories-repository_id path: /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id} operations: - name: addrepositoryaccesstoselfhostedrunnergroupinanorganization method: PUT description: GitHub Add Repository Access to Self-hosted Runner Group in an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: removerepositoryaccesstoselfhostedrunnergroupinanorganization method: DELETE description: GitHub Remove Repository Access to Self-hosted Runner Group in an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: orgs-org-actions-runner-groups-runner_group_id-runners path: /orgs/{org}/actions/runner-groups/{runner_group_id}/runners operations: - name: listselfhostedrunnersingroupforanorganization method: GET description: GitHub List Self-hosted Runners in Group for an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: setselfhostedrunnersingroupforanorganization method: PUT description: GitHub Set Self-hosted Runners in Group for an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: orgs-org-actions-runner-groups-runner_group_id-runners-runner_id path: /orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id} operations: - name: addselfhostedrunnertogroupforanorganization method: PUT description: GitHub Add Self-hosted Runner to Group for an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: removeselfhostedrunnerfromgroupforanorganization method: DELETE description: GitHub Remove Self-hosted Runner from Group for an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: orgs-org-external-group-group_id path: /orgs/{org}/external-group/{group_id} operations: - name: getanexternalgroup method: GET description: GitHub Get an External Group outputRawFormat: json outputParameters: - name: result type: object value: $. - name: orgs-org-external-groups path: /orgs/{org}/external-groups operations: - name: listexternalgroupsinanorganization method: GET description: GitHub List External Groups in an Organization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer description: Page token - name: display_name in: query type: string description: Limits the list to groups containing the text in the group name - name: orgs-org-teams-team_slug-external-groups path: /orgs/{org}/teams/{team_slug}/external-groups operations: - name: listconnectionbetweenanexternalgroupandteam method: GET description: GitHub List Connection Between an External Group and Team outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatetheconnectionbetweenanexternalgroupandteam method: PATCH description: GitHub Update the Connection Between an External Group and Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: removetheconnectionbetweenanexternalgroupandteam method: DELETE description: GitHub Remove the Connection Between an External Group and Team outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.GITHUB_API_KEY}}' exposes: - type: rest namespace: organizations-groups-rest port: 8080 description: REST adapter for GitHub Org API — Groups. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/orgs/{org}/actions/runner-groups name: orgs-org-actions-runner-groups description: REST surface for orgs-org-actions-runner-groups. operations: - method: GET name: listselfhostedrunnergroupsforanorganization description: GitHub List Self-hosted Runner Groups for an Organization call: organizations-groups.listselfhostedrunnergroupsforanorganization outputParameters: - type: object mapping: $. - method: POST name: createselfhostedrunnergroupforanorganization description: GitHub Create Self-hosted Runner Group for an Organization call: organizations-groups.createselfhostedrunnergroupforanorganization with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/actions/runner-groups/{runner-group-id} name: orgs-org-actions-runner-groups-runner-group-id description: REST surface for orgs-org-actions-runner-groups-runner_group_id. operations: - method: GET name: getselfhostedrunnergroupforanorganization description: GitHub Get Self-hosted Runner Group for an Organization call: organizations-groups.getselfhostedrunnergroupforanorganization outputParameters: - type: object mapping: $. - method: PATCH name: updateselfhostedrunnergroupforanorganization description: GitHub Update Self-hosted Runner Group for an Organization call: organizations-groups.updateselfhostedrunnergroupforanorganization with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteselfhostedrunnergroupfromanorganization description: GitHub Delete Self-hosted Runner Group from an Organization call: organizations-groups.deleteselfhostedrunnergroupfromanorganization outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/actions/runner-groups/{runner-group-id}/repositories name: orgs-org-actions-runner-groups-runner-group-id-repositories description: REST surface for orgs-org-actions-runner-groups-runner_group_id-repositories. operations: - method: GET name: listrepositoryaccesstoselfhostedrunnergroupinanorganization description: GitHub List Repository Access to Self-hosted Runner Group in an Organization call: organizations-groups.listrepositoryaccesstoselfhostedrunnergroupinanorganization outputParameters: - type: object mapping: $. - method: PUT name: setrepositoryaccessforselfhostedrunnergroupinanorganization description: GitHub Set Repository Access for Self-hosted Runner Group in an Organization call: organizations-groups.setrepositoryaccessforselfhostedrunnergroupinanorganization with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/actions/runner-groups/{runner-group-id}/repositories/{repository-id} name: orgs-org-actions-runner-groups-runner-group-id-repositories-repository-id description: REST surface for orgs-org-actions-runner-groups-runner_group_id-repositories-repository_id. operations: - method: PUT name: addrepositoryaccesstoselfhostedrunnergroupinanorganization description: GitHub Add Repository Access to Self-hosted Runner Group in an Organization call: organizations-groups.addrepositoryaccesstoselfhostedrunnergroupinanorganization outputParameters: - type: object mapping: $. - method: DELETE name: removerepositoryaccesstoselfhostedrunnergroupinanorganization description: GitHub Remove Repository Access to Self-hosted Runner Group in an Organization call: organizations-groups.removerepositoryaccesstoselfhostedrunnergroupinanorganization outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/actions/runner-groups/{runner-group-id}/runners name: orgs-org-actions-runner-groups-runner-group-id-runners description: REST surface for orgs-org-actions-runner-groups-runner_group_id-runners. operations: - method: GET name: listselfhostedrunnersingroupforanorganization description: GitHub List Self-hosted Runners in Group for an Organization call: organizations-groups.listselfhostedrunnersingroupforanorganization outputParameters: - type: object mapping: $. - method: PUT name: setselfhostedrunnersingroupforanorganization description: GitHub Set Self-hosted Runners in Group for an Organization call: organizations-groups.setselfhostedrunnersingroupforanorganization with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/actions/runner-groups/{runner-group-id}/runners/{runner-id} name: orgs-org-actions-runner-groups-runner-group-id-runners-runner-id description: REST surface for orgs-org-actions-runner-groups-runner_group_id-runners-runner_id. operations: - method: PUT name: addselfhostedrunnertogroupforanorganization description: GitHub Add Self-hosted Runner to Group for an Organization call: organizations-groups.addselfhostedrunnertogroupforanorganization outputParameters: - type: object mapping: $. - method: DELETE name: removeselfhostedrunnerfromgroupforanorganization description: GitHub Remove Self-hosted Runner from Group for an Organization call: organizations-groups.removeselfhostedrunnerfromgroupforanorganization outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/external-group/{group-id} name: orgs-org-external-group-group-id description: REST surface for orgs-org-external-group-group_id. operations: - method: GET name: getanexternalgroup description: GitHub Get an External Group call: organizations-groups.getanexternalgroup outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/external-groups name: orgs-org-external-groups description: REST surface for orgs-org-external-groups. operations: - method: GET name: listexternalgroupsinanorganization description: GitHub List External Groups in an Organization call: organizations-groups.listexternalgroupsinanorganization with: page: rest.page display_name: rest.display_name outputParameters: - type: object mapping: $. - path: /v1/orgs/{org}/teams/{team-slug}/external-groups name: orgs-org-teams-team-slug-external-groups description: REST surface for orgs-org-teams-team_slug-external-groups. operations: - method: GET name: listconnectionbetweenanexternalgroupandteam description: GitHub List Connection Between an External Group and Team call: organizations-groups.listconnectionbetweenanexternalgroupandteam outputParameters: - type: object mapping: $. - method: PATCH name: updatetheconnectionbetweenanexternalgroupandteam description: GitHub Update the Connection Between an External Group and Team call: organizations-groups.updatetheconnectionbetweenanexternalgroupandteam with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: removetheconnectionbetweenanexternalgroupandteam description: GitHub Remove the Connection Between an External Group and Team call: organizations-groups.removetheconnectionbetweenanexternalgroupandteam outputParameters: - type: object mapping: $. - type: mcp namespace: organizations-groups-mcp port: 9090 transport: http description: MCP adapter for GitHub Org API — Groups. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: github-list-self-hosted-runner description: GitHub List Self-hosted Runner Groups for an Organization hints: readOnly: true destructive: false idempotent: true call: organizations-groups.listselfhostedrunnergroupsforanorganization outputParameters: - type: object mapping: $. - name: github-create-self-hosted-runner description: GitHub Create Self-hosted Runner Group for an Organization hints: readOnly: false destructive: false idempotent: false call: organizations-groups.createselfhostedrunnergroupforanorganization with: body: tools.body outputParameters: - type: object mapping: $. - name: github-get-self-hosted-runner description: GitHub Get Self-hosted Runner Group for an Organization hints: readOnly: true destructive: false idempotent: true call: organizations-groups.getselfhostedrunnergroupforanorganization outputParameters: - type: object mapping: $. - name: github-update-self-hosted-runner description: GitHub Update Self-hosted Runner Group for an Organization hints: readOnly: false destructive: false idempotent: true call: organizations-groups.updateselfhostedrunnergroupforanorganization with: body: tools.body outputParameters: - type: object mapping: $. - name: github-delete-self-hosted-runner description: GitHub Delete Self-hosted Runner Group from an Organization hints: readOnly: false destructive: true idempotent: true call: organizations-groups.deleteselfhostedrunnergroupfromanorganization outputParameters: - type: object mapping: $. - name: github-list-repository-access-self description: GitHub List Repository Access to Self-hosted Runner Group in an Organization hints: readOnly: true destructive: false idempotent: true call: organizations-groups.listrepositoryaccesstoselfhostedrunnergroupinanorganization outputParameters: - type: object mapping: $. - name: github-set-repository-access-self description: GitHub Set Repository Access for Self-hosted Runner Group in an Organization hints: readOnly: false destructive: false idempotent: true call: organizations-groups.setrepositoryaccessforselfhostedrunnergroupinanorganization with: body: tools.body outputParameters: - type: object mapping: $. - name: github-add-repository-access-self description: GitHub Add Repository Access to Self-hosted Runner Group in an Organization hints: readOnly: false destructive: false idempotent: true call: organizations-groups.addrepositoryaccesstoselfhostedrunnergroupinanorganization outputParameters: - type: object mapping: $. - name: github-remove-repository-access-self description: GitHub Remove Repository Access to Self-hosted Runner Group in an Organization hints: readOnly: false destructive: true idempotent: true call: organizations-groups.removerepositoryaccesstoselfhostedrunnergroupinanorganization outputParameters: - type: object mapping: $. - name: github-list-self-hosted-runners description: GitHub List Self-hosted Runners in Group for an Organization hints: readOnly: true destructive: false idempotent: true call: organizations-groups.listselfhostedrunnersingroupforanorganization outputParameters: - type: object mapping: $. - name: github-set-self-hosted-runners description: GitHub Set Self-hosted Runners in Group for an Organization hints: readOnly: false destructive: false idempotent: true call: organizations-groups.setselfhostedrunnersingroupforanorganization with: body: tools.body outputParameters: - type: object mapping: $. - name: github-add-self-hosted-runner description: GitHub Add Self-hosted Runner to Group for an Organization hints: readOnly: false destructive: false idempotent: true call: organizations-groups.addselfhostedrunnertogroupforanorganization outputParameters: - type: object mapping: $. - name: github-remove-self-hosted-runner description: GitHub Remove Self-hosted Runner from Group for an Organization hints: readOnly: false destructive: true idempotent: true call: organizations-groups.removeselfhostedrunnerfromgroupforanorganization outputParameters: - type: object mapping: $. - name: github-get-external-group description: GitHub Get an External Group hints: readOnly: true destructive: false idempotent: true call: organizations-groups.getanexternalgroup outputParameters: - type: object mapping: $. - name: github-list-external-groups-organization description: GitHub List External Groups in an Organization hints: readOnly: true destructive: false idempotent: true call: organizations-groups.listexternalgroupsinanorganization with: page: tools.page display_name: tools.display_name outputParameters: - type: object mapping: $. - name: github-list-connection-between-external description: GitHub List Connection Between an External Group and Team hints: readOnly: true destructive: false idempotent: true call: organizations-groups.listconnectionbetweenanexternalgroupandteam outputParameters: - type: object mapping: $. - name: github-update-connection-between-external description: GitHub Update the Connection Between an External Group and Team hints: readOnly: false destructive: false idempotent: true call: organizations-groups.updatetheconnectionbetweenanexternalgroupandteam with: body: tools.body outputParameters: - type: object mapping: $. - name: github-remove-connection-between-external description: GitHub Remove the Connection Between an External Group and Team hints: readOnly: false destructive: true idempotent: true call: organizations-groups.removetheconnectionbetweenanexternalgroupandteam outputParameters: - type: object mapping: $.