What is @octokit/openapi-types?
The @octokit/openapi-types npm package provides TypeScript definitions based on GitHub's OpenAPI specification. This package is useful for developers working with GitHub's REST API, as it offers type definitions that can help ensure that API requests and responses are correctly structured according to the GitHub API schema.
Type Definitions for GitHub API
This code sample demonstrates how to use the type definitions for GitHub API objects provided by @octokit/openapi-types. In this example, we define an 'issue' object with properties that match the expected structure of a GitHub issue according to the API's schema.
import { components } from '@octokit/openapi-types';
const issue: components['schemas']['issue'] = {
id: 1,
number: 1347,
state: 'open',
title: 'Found a bug',
body: 'I'm having a problem with this.',
user: {
login: 'octocat',
id: 1,
node_id: 'MDQ6VXNlcjE=',
avatar_url: 'https://github.com/images/error/octocat_happy.gif',
gravatar_id: '',
url: 'https://api.github.com/users/octocat',
html_url: 'https://github.com/octocat',
followers_url: 'https://api.github.com/users/octocat/followers',
following_url: 'https://api.github.com/users/octocat/following{/other_user}',
gists_url: 'https://api.github.com/users/octocat/gists{/gist_id}',
starred_url: 'https://api.github.com/users/octocat/starred{/owner}{/repo}',
subscriptions_url: 'https://api.github.com/users/octocat/subscriptions',
organizations_url: 'https://api.github.com/users/octocat/orgs',
repos_url: 'https://api.github.com/users/octocat/repos',
events_url: 'https://api.github.com/users/octocat/events{/privacy}',
received_events_url: 'https://api.github.com/users/octocat/received_events',
type: 'User',
site_admin: false
}
};