packages/metalsmith-github-profile/README.md
# metalsmith-github-profile [](https://www.npmjs.com/package/metalsmith-github-profile)[](https://www.npmjs.com/package/metalsmith-github-profile) [](https://snyk.io/test/npm/metalsmith-github-profile)[](https://codecov.io/gh/emmercm/metalsmith-github-profile)[](https://github.com/emmercm/metalsmith-plugins/blob/main/LICENSE) A Metalsmith plugin to fetch GitHub profile information as global metadata. ## Installation ```shellnpm install --save metalsmith-github-profile``` ## JavaScript Usage ```javascriptimport Metalsmith from 'metalsmith';import githubProfile from 'metalsmith-github-profile'; Metalsmith(__dirname) .use(githubProfile({ username: "<your-username-here>" // additional options })) .build((err) => { if (err) { throw err; } });``` ## Global metadata This plugin adds a metadata field named `github.profile` to the global metadata which can be used with templating engines, such as with [`handlebars`](https://www.npmjs.com/package/handlebars): ```handlebars The rest of the page content.``` The following metadata is available from the GitHub public API: - [`github.profile.user`](https://docs.github.com/en/rest/reference/users#get-a-user) (`Object`)- [`github.profile.repos`](https://docs.github.com/en/rest/reference/repos#list-repositories-for-a-user) (`Object[]`) ## Options ### `username` (required) Type: `string` The GitHub username to fetch information for. ### `authorization` (optional) Type: `{username: string, token: string}` A GitHub username and OAuth token (including personal access tokens) to use for API requests to get around rate limits. You can source the token from environment variables like this: ```javascriptgithubProfile({ username: "emmercm", authorization: { username: "emmercm", token: process.env.GITHUB_PERSONAL_ACCESS_TOKEN }})``` ### `timeout` (optional) Type: `number` Default: `5000` Timeout in milliseconds for API requests to GitHub. ### `retries` (optional) Type: `number` Default: `3` Number of times to retry GitHub API requests. ### `retryableStatusCodes` (optional) Type: `number[]` Default: `[0, 408, 500, 502, 503, 504]` A list of HTTP status codes to retry GitHub API requests on. ## Changelog [Changelog](./CHANGELOG.md)