Common repository information, such as the project name and description, is available to Jekyll sites hosted on GitHub Pages.

Usage

Repository metadata is exposed to your Jekyll site's configuration in the site.github namespace.

Simply, reference any of the below keys as you would any other site configuration value present in your _config.yml file, prefacing the key with site.github.

For example, to list a project's name, you might write something like The project is called {{ site.github.project_title }} or to list an organization's open source repositories, you might use the following:

{% for repository in site.github.public_repositories %}
  * [{{ repository.name }}]({{ repository.html_url }})
{% endfor %}

Using repository metadata locally

To recreate the site.github namespace locally, ensure you have the latest version of the GitHub Pages Gem installed, and that you have the following line in your site's _config.yml file:

repository: <USERNAME>/<PROJECT>

Some metadata fields, such as your repository's custom domain, may require additional authentication. Follow the GitHub Metadata plugin documentation to provide the appropriate credentials by creating a personal access token, and selecting the public_repo scope in step five.

Available repository metadata

Note: For the latest dependency versions see "GitHub Pages Dependencies Versions."

The following sample information is exposed to Jekyll templates in the site.github namespace:

{
    "versions": {
        "jekyll": <version>,
        "kramdown": <version>,
        "liquid": <version>,
        "maruku": <version>,
        "rdiscount": <version>,
        "redcarpet": <version>,
        "RedCloth": <version>,
        "jemoji": <version>,
        "jekyll-mentions": <version>,
        "jekyll-redirect-from": <version>,
        "jekyll-sitemap": <version>,
        "github-pages": <version>,
        "ruby": <version>"
    },
    "hostname": "github.com",
    "pages_hostname": "github.io",
    "api_url": "https://api.github.com",
    "environment": "dotcom",
    "public_repositories": [ Repository Objects ],
    "organization_members": [ User Objects ],
    "build_revision": "cbd866ebf142088896cbe71422b949de7f864bce",
    "project_title": "metadata-example",
    "project_tagline": "A GitHub Pages site to showcase repository metadata",
    "owner_name": "github",
    "owner_url": "https://github.com/github",
    "owner_gravatar_url": "https://github.com/github.png",
    "repository_url": "https://github.com/github/metadata-example",
    "repository_nwo": "github/metadata-example",
    "repository_name": "metadata-example",
    "zip_url": "https://github.com/github/metadata-example/zipball/gh-pages",
    "tar_url": "https://github.com/github/metadata-example/tarball/gh-pages",
    "clone_url": "https://github.com/github/metadata-example.git",
    "releases_url": "https://github.com/github/metadata-example/releases",
    "issues_url": "https://github.com/github/metadata-example/issues",
    "wiki_url": "https://github.com/github/metadata-example/wiki",
    "language": null,
    "is_user_page": false,
    "is_project_page": true,
    "show_downloads": true,
    "url": "http://username.github.io/metadata-example", // (or the CNAME)
    "contributors": [ User Objects ],
    "releases": [ Release Objects ]
}

For more information on the contents of the repository and user objects, see these API endpoints: