Scalar · Capability

Core — github

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.

Core — github is a Naftiko capability published by Scalar, one of 22 capabilities the APIs.io network indexes for this provider. It bundles 16 operations across the GET and POST methods rooted at /v1/github.

The capability includes 8 read-only operations and 8 state-changing operations. Lead operation: Get and save a user github token to their database object. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Scalar and github.

Run with Naftiko Scalargithub

What You Can Do

GET
Getgithubauthorize — Get and save a user github token to their database object. This allows subsequent queries for github data from the users scope.
/v1/github/authorize
GET
Getgithublinkinitiate — Issue a signed OAuth state token for the GitHub user-authorization flow and return the GitHub authorize URL the client should redirect to. O
/v1/github/link/initiate
GET
Getgithubrepos — Get a list of repositories that can be linked to a project
/v1/github/repos
GET
Getgithubreposid — Get repository info
/v1/github/repos/{id}
POST
Postgithublinkrepo — Links a github repo to a Scalar github project
/v1/github/link-repo
GET
Getgithubdocsprojectuidcommits — List commits from the GitHub repo backing a `provider: github` DocsProject
/v1/github/docs-project/{uid}/commits
GET
Getgithubdocsprojectuidbranches — List branches on the GitHub repo backing a `provider: github` DocsProject. Supports prefix search.
/v1/github/docs-project/{uid}/branches
POST
Postgithubdocsprojectuidpullrequest — Create a pull request on the GitHub repo backing a `provider: github` DocsProject
/v1/github/docs-project/{uid}/pull-request
POST
Postgithubslugavailable — Check if github slug is available
/v1/github/slug/available
POST
Postgithubslug — Update a github project slug
/v1/github/slug
POST
Postgithubcreate — Create a github project that is not linked to a github repo. This project will be used by the cli flow.
/v1/github/create
POST
Postgithubunlinkrepo — Unlink a github repo from a Scalar github project
/v1/github/unlink-repo
POST
Postgithubconfigvalidate — Validate configuration file for a github project
/v1/github/config/validate
GET
Getgithubslug — Get a github project.
/v1/github/{slug}
GET
Getgithublistprojects — Get github projects for the team
/v1/github/list-projects
POST
Postgithubdelete — Deletes a Github project
/v1/github/delete

MCP Tools

scalar-getgithubauthorize

Get and save a user github token to their database object. This allows subsequent queries for github data from the users scope.

read-only idempotent
scalar-getgithublinkinitiate

Issue a signed OAuth state token for the GitHub user-authorization flow and return the GitHub authorize URL the client should redirect to. O

read-only idempotent
scalar-getgithubrepos

Get a list of repositories that can be linked to a project

read-only idempotent
scalar-getgithubreposid

Get repository info

read-only idempotent
scalar-postgithublinkrepo

Links a github repo to a Scalar github project

scalar-getgithubdocsprojectuidcommits

List commits from the GitHub repo backing a `provider: github` DocsProject

read-only idempotent
scalar-getgithubdocsprojectuidbranches

List branches on the GitHub repo backing a `provider: github` DocsProject. Supports prefix search.

read-only idempotent
scalar-postgithubdocsprojectuidpullrequest

Create a pull request on the GitHub repo backing a `provider: github` DocsProject

scalar-postgithubslugavailable

Check if github slug is available

scalar-postgithubslug

Update a github project slug

scalar-postgithubcreate

Create a github project that is not linked to a github repo. This project will be used by the cli flow.

scalar-postgithubunlinkrepo

Unlink a github repo from a Scalar github project

scalar-postgithubconfigvalidate

Validate configuration file for a github project

scalar-getgithubslug

Get a github project.

read-only idempotent
scalar-getgithublistprojects

Get github projects for the team

read-only idempotent
scalar-postgithubdelete

Deletes a Github project

Capability Spec

core-github.yaml Raw ↑
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: $.