naftiko: 1.0.0-alpha2 info: label: Core — github description: 'Core — github. 16 operations. Lead operation: Get and save a user github token to their database object. This allows subsequent queries for github data from the users scope.. Self-contained Naftiko capability covering one business surface.' tags: - Scalar - github created: '2026-05-20' modified: '2026-05-20' binds: - namespace: env keys: SCALAR_API_KEY: SCALAR_API_KEY capability: consumes: - type: http namespace: core-github baseUri: https://example.com description: Core — github business capability. Self-contained, no shared references. resources: - name: github-authorize path: /github/authorize operations: - name: getgithubauthorize method: GET description: Get and save a user github token to their database object. This allows subsequent queries for github data from the users scope. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: code in: query type: string description: query parameter code. required: true - name: state in: query type: string description: query parameter state. required: true - name: github-link-initiate path: /github/link/initiate operations: - name: getgithublinkinitiate method: GET description: Issue a signed OAuth state token for the GitHub user-authorization flow and return the GitHub authorize URL the client should redirect to. O outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: redirect in: query type: string description: query parameter redirect. - name: github-repos path: /github/repos operations: - name: getgithubrepos method: GET description: Get a list of repositories that can be linked to a project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: [] - name: github-repos-id path: /github/repos/{id} operations: - name: getgithubreposid method: GET description: Get repository info outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: number description: path parameter id. required: true - name: github-link-repo path: /github/link-repo operations: - name: postgithublinkrepo method: POST description: Links a github repo to a Scalar github project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: github-docs-project-uid-commits path: /github/docs-project/{uid}/commits operations: - name: getgithubdocsprojectuidcommits method: GET description: 'List commits from the GitHub repo backing a `provider: github` DocsProject' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string description: path parameter uid. required: true - name: branch in: query type: string description: query parameter branch. - name: page in: query type: number description: query parameter page. required: true - name: perPage in: query type: number description: query parameter perPage. required: true - name: github-docs-project-uid-branches path: /github/docs-project/{uid}/branches operations: - name: getgithubdocsprojectuidbranches method: GET description: 'List branches on the GitHub repo backing a `provider: github` DocsProject. Supports prefix search.' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string description: path parameter uid. required: true - name: query in: query type: string description: query parameter query. - name: page in: query type: number description: query parameter page. required: true - name: perPage in: query type: number description: query parameter perPage. required: true - name: github-docs-project-uid-pull-request path: /github/docs-project/{uid}/pull-request operations: - name: postgithubdocsprojectuidpullrequest method: POST description: 'Create a pull request on the GitHub repo backing a `provider: github` DocsProject' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string description: path parameter uid. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: github-slug-available path: /github/slug/available operations: - name: postgithubslugavailable method: POST description: Check if github slug is available outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: github-slug path: /github/slug operations: - name: postgithubslug method: POST description: Update a github project slug outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: github-create path: /github/create operations: - name: postgithubcreate method: POST description: Create a github project that is not linked to a github repo. This project will be used by the cli flow. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: github-unlink-repo path: /github/unlink-repo operations: - name: postgithubunlinkrepo method: POST description: Unlink a github repo from a Scalar github project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: github-config-validate path: /github/config/validate operations: - name: postgithubconfigvalidate method: POST description: Validate configuration file for a github project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: github-slug path: /github/{slug} operations: - name: getgithubslug method: GET description: Get a github project. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: slug in: path type: string description: path parameter slug. required: true - name: github-list-projects path: /github/list-projects operations: - name: getgithublistprojects method: GET description: Get github projects for the team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: [] - name: github-delete path: /github/delete operations: - name: postgithubdelete method: POST description: Deletes a Github project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: core-github-rest port: 8080 description: REST adapter for Core — github. One resource per consumed operation, prefixed with /v1. resources: - path: /v1/github/authorize name: github-authorize description: REST surface for github-authorize. operations: - method: GET name: getgithubauthorize description: Get and save a user github token to their database object. This allows subsequent queries for github data from the users scope. call: core-github.getgithubauthorize with: code: rest.code state: rest.state outputParameters: - type: object mapping: $. - path: /v1/github/link/initiate name: github-link-initiate description: REST surface for github-link-initiate. operations: - method: GET name: getgithublinkinitiate description: Issue a signed OAuth state token for the GitHub user-authorization flow and return the GitHub authorize URL the client should redirect to. O call: core-github.getgithublinkinitiate with: redirect: rest.redirect outputParameters: - type: object mapping: $. - path: /v1/github/repos name: github-repos description: REST surface for github-repos. operations: - method: GET name: getgithubrepos description: Get a list of repositories that can be linked to a project call: core-github.getgithubrepos with: {} outputParameters: - type: object mapping: $. - path: /v1/github/repos/{id} name: github-repos-id description: REST surface for github-repos-id. operations: - method: GET name: getgithubreposid description: Get repository info call: core-github.getgithubreposid with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/github/link-repo name: github-link-repo description: REST surface for github-link-repo. operations: - method: POST name: postgithublinkrepo description: Links a github repo to a Scalar github project call: core-github.postgithublinkrepo with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/github/docs-project/{uid}/commits name: github-docs-project-uid-commits description: REST surface for github-docs-project-uid-commits. operations: - method: GET name: getgithubdocsprojectuidcommits description: 'List commits from the GitHub repo backing a `provider: github` DocsProject' call: core-github.getgithubdocsprojectuidcommits with: uid: rest.uid branch: rest.branch page: rest.page perPage: rest.perPage outputParameters: - type: object mapping: $. - path: /v1/github/docs-project/{uid}/branches name: github-docs-project-uid-branches description: REST surface for github-docs-project-uid-branches. operations: - method: GET name: getgithubdocsprojectuidbranches description: 'List branches on the GitHub repo backing a `provider: github` DocsProject. Supports prefix search.' call: core-github.getgithubdocsprojectuidbranches with: uid: rest.uid query: rest.query page: rest.page perPage: rest.perPage outputParameters: - type: object mapping: $. - path: /v1/github/docs-project/{uid}/pull-request name: github-docs-project-uid-pull-request description: REST surface for github-docs-project-uid-pull-request. operations: - method: POST name: postgithubdocsprojectuidpullrequest description: 'Create a pull request on the GitHub repo backing a `provider: github` DocsProject' call: core-github.postgithubdocsprojectuidpullrequest with: uid: rest.uid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/github/slug/available name: github-slug-available description: REST surface for github-slug-available. operations: - method: POST name: postgithubslugavailable description: Check if github slug is available call: core-github.postgithubslugavailable with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/github/slug name: github-slug description: REST surface for github-slug. operations: - method: POST name: postgithubslug description: Update a github project slug call: core-github.postgithubslug with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/github/create name: github-create description: REST surface for github-create. operations: - method: POST name: postgithubcreate description: Create a github project that is not linked to a github repo. This project will be used by the cli flow. call: core-github.postgithubcreate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/github/unlink-repo name: github-unlink-repo description: REST surface for github-unlink-repo. operations: - method: POST name: postgithubunlinkrepo description: Unlink a github repo from a Scalar github project call: core-github.postgithubunlinkrepo with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/github/config/validate name: github-config-validate description: REST surface for github-config-validate. operations: - method: POST name: postgithubconfigvalidate description: Validate configuration file for a github project call: core-github.postgithubconfigvalidate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/github/{slug} name: github-slug description: REST surface for github-slug. operations: - method: GET name: getgithubslug description: Get a github project. call: core-github.getgithubslug with: slug: rest.slug outputParameters: - type: object mapping: $. - path: /v1/github/list-projects name: github-list-projects description: REST surface for github-list-projects. operations: - method: GET name: getgithublistprojects description: Get github projects for the team call: core-github.getgithublistprojects with: {} outputParameters: - type: object mapping: $. - path: /v1/github/delete name: github-delete description: REST surface for github-delete. operations: - method: POST name: postgithubdelete description: Deletes a Github project call: core-github.postgithubdelete with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: core-github-mcp port: 9090 transport: http description: MCP adapter for Core — github. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: scalar-getgithubauthorize description: Get and save a user github token to their database object. This allows subsequent queries for github data from the users scope. hints: readOnly: true destructive: false idempotent: true call: core-github.getgithubauthorize with: code: tools.code state: tools.state outputParameters: - type: object mapping: $. - name: scalar-getgithublinkinitiate description: Issue a signed OAuth state token for the GitHub user-authorization flow and return the GitHub authorize URL the client should redirect to. O hints: readOnly: true destructive: false idempotent: true call: core-github.getgithublinkinitiate with: redirect: tools.redirect outputParameters: - type: object mapping: $. - name: scalar-getgithubrepos description: Get a list of repositories that can be linked to a project hints: readOnly: true destructive: false idempotent: true call: core-github.getgithubrepos with: {} outputParameters: - type: object mapping: $. - name: scalar-getgithubreposid description: Get repository info hints: readOnly: true destructive: false idempotent: true call: core-github.getgithubreposid with: id: tools.id outputParameters: - type: object mapping: $. - name: scalar-postgithublinkrepo description: Links a github repo to a Scalar github project hints: readOnly: false destructive: false idempotent: false call: core-github.postgithublinkrepo with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-getgithubdocsprojectuidcommits description: 'List commits from the GitHub repo backing a `provider: github` DocsProject' hints: readOnly: true destructive: false idempotent: true call: core-github.getgithubdocsprojectuidcommits with: uid: tools.uid branch: tools.branch page: tools.page perPage: tools.perPage outputParameters: - type: object mapping: $. - name: scalar-getgithubdocsprojectuidbranches description: 'List branches on the GitHub repo backing a `provider: github` DocsProject. Supports prefix search.' hints: readOnly: true destructive: false idempotent: true call: core-github.getgithubdocsprojectuidbranches with: uid: tools.uid query: tools.query page: tools.page perPage: tools.perPage outputParameters: - type: object mapping: $. - name: scalar-postgithubdocsprojectuidpullrequest description: 'Create a pull request on the GitHub repo backing a `provider: github` DocsProject' hints: readOnly: false destructive: false idempotent: false call: core-github.postgithubdocsprojectuidpullrequest with: uid: tools.uid body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postgithubslugavailable description: Check if github slug is available hints: readOnly: false destructive: false idempotent: false call: core-github.postgithubslugavailable with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postgithubslug description: Update a github project slug hints: readOnly: false destructive: false idempotent: false call: core-github.postgithubslug with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postgithubcreate description: Create a github project that is not linked to a github repo. This project will be used by the cli flow. hints: readOnly: false destructive: false idempotent: false call: core-github.postgithubcreate with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postgithubunlinkrepo description: Unlink a github repo from a Scalar github project hints: readOnly: false destructive: false idempotent: false call: core-github.postgithubunlinkrepo with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postgithubconfigvalidate description: Validate configuration file for a github project hints: readOnly: false destructive: false idempotent: false call: core-github.postgithubconfigvalidate with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-getgithubslug description: Get a github project. hints: readOnly: true destructive: false idempotent: true call: core-github.getgithubslug with: slug: tools.slug outputParameters: - type: object mapping: $. - name: scalar-getgithublistprojects description: Get github projects for the team hints: readOnly: true destructive: false idempotent: true call: core-github.getgithublistprojects with: {} outputParameters: - type: object mapping: $. - name: scalar-postgithubdelete description: Deletes a Github project hints: readOnly: false destructive: false idempotent: false call: core-github.postgithubdelete with: body: tools.body outputParameters: - type: object mapping: $.