gatsby-source-github-api
Source plugin for pulling data into Gatsby from the official GitHub v4 GraphQL API.
Install
npm i gatsby-source-github-api
How to use
Follow GitHub's guide how to generate a token.
Once you are done, either create a gatsby-config.js
file or open the one you already have.
In there, you want to add this plugin and at least add the token in the options object:
plugins: [
{
resolve: `gatsby-source-github-api`,
options: {
url: someUrl,
token: someString,
graphQLQuery: anotherString,
variables: someObject
}
}
];
Examples
Search query:
plugins: [
{
resolve: `gatsby-source-github-api`,
options: {
token: "hunter2",
variables: {
q: "author:ldd state:closed type:pr sort:comments",
nFirst: 2
}
}
}
];
resulting API call:
query ($nFirst: Int, $q: String) {
search(query: "${q}", type: ISSUE, first: ${nFirst}){
edges{
node{
... on PullRequest{
title
}
}
}
}
}
Custom GraphQL query:
plugins: [
{
resolve: `gatsby-source-github-api`,
options: {
token: "hunter2",
variables: {},
graphQLQuery: `
query {
repository(owner:"torvalds",name:"linux"){
description
}
}
`
}
}
];
resulting API call:
query {
repository(owner: "torvalds", name: "linux") {
description
}
}
For more examples see gatsby-starter-github-portfolio.
Tips and Tricks
You'll probably want to use valid GraphQL queries. To help you, GitHub has a Query Explorer with auto-completion.
Changelog
v1.0.0
add support for gatsby v3. Remove support for older versions of gatsbyv0.2.1
update dependenciesv0.2.0
provide raw github responsev0.1.5
document url option (for GitHub Enterprise users)v0.1.4
- Add tests
- expose DEFAULT_QUERY by exporting it
v0.1.3
- Change mediaType of exported node to be ignored by
gatsby-transformer-json
- prettify changelog of this file
v0.1.2
Updated yarn.lock
to address github security warningsv0.1.1
Updated Readme for easier usagev0.1.0
Submit to Gatsby's Plugin Libraryv0.0.4
Update dev dependencies, add linting script to package.jsonv0.0.3
Initial public release