Skip to content

Latest commit

 

History

History

metalsmith-github-profile

metalsmith-github-profile

npm: version npm: downloads

Snyk: vulnerabilities codecov: coverage license

A Metalsmith plugin to fetch GitHub profile information as global metadata.

Installation

npm install --save metalsmith-github-profile

JavaScript Usage

import 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:

GitHub username: {{ github.profile.user.login }}

The rest of the page content.

The following metadata is available from the GitHub public API:

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:

githubProfile({
  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