gatsby-source-gh
Gatsby source plugin for files in a GitHub repository
Installation
1. Add this package as a dependency
yarn add gatsby-source-gh
npm install --save gatsby-source-gh
2. Configure the plugin in gatsby-config.js
module.exports = {
plugins: [
{
resolve: `gatsby-source-gh`,
options: {
repo: `<GITHUB_REPOSITORY>`,
user: `<GITHUB_USERNAME>`,
},
},
],
}
3. Querying
All queried files will return a node with content
containing the raw text
of the file and all of the data returned when
querying for a file on GitHub's API.
Example query
query GitHubQuery {
allGitHubFile {
edges {
node {
name
path
content
}
}
}
}
Example response
{
"name": "hello.md",
"path": "content/hello.md",
"content": "Hello world",
"sha": "3d21ec53a331a6f037a91c368710b99387d012c1",
"type": "file",
"size": 5362,
"url": "https://api.github.com/repos/shwilliam/shwilliam/contents/hello.md",
"git_url": "https://api.github.com/repos/shwilliam/shwilliam/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1",
"html_url": "https://github.com/shwilliam/shwilliam/blob/master/hello.md",
"download_url": "https://raw.githubusercontent.com/shwilliam/shwilliam/master/hello.md",
"_links": {
"git": "https://api.github.com/repos/shwilliam/shwilliam/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1",
"self": "https://api.github.com/repos/shwilliam/shwilliam/contents/hello.md",
"html": "https://github.com/shwilliam/shwilliam/blob/master/hello.md"
}
}
Contributing
This project is open to and encourages contributions! Feel free to discuss any
bug fixes/features in the issues.
If you wish to work on this project:
- Fork this project
- Create a branch (
git checkout -b new-branch
) - Commit your changes (
git commit -am 'add new feature'
) - Push to the branch (
git push origin new-branch
) - Submit a pull request!