This document describes Infra support for and policy related to project use of GitHub Pages.

Information for projects has moved to infra.a.o. If our policy regarding GitHub pages has changed and you are updating this page, also review the page on infra.a.o.

Infrastructure Instructions

       1. Ensure the project has website content available in a 'gh-pages' branch or make sure in the 'settings' section of the Github repos points to
           an alternate branch. See the image below.

2. Create a CNAME file in the Github repository where the site will be hosted and in the 'gh-pages' branch (or configured alternate branch)
           This can be done in the 'settings' area of the Github repos as in the image below

      or by adding a new file called CNAME at the top level of the repos with the contents ''

   3. Enable https from the 'settings' area of the Github repos as in the image below

        Note that the checkbox may not be available for an hour or so.

   4. Create a CNAME entry in and do the usual to make it live.

Please do not add the below cname entry without a corresponding and working end point $ or we could be subject to a subdomain takeover attack !!

Ensure that step 2 is complete - that a 'Custom Domain' entry exists first, before then adding that entry to our DNS

See this security@ email: 

Example CNAME entry
add_cname('jmeter-preview', '')

           'jmeter-preview' ( is the DNS we want the site to be available at.
           'jmeter-site-preview' is the name of the Github repos where gh-pages is enabled and the website code lives

That should be everything. Once DNS propagates the site should be available at with its content
being served from the Github Repository directly. Any changes to the website code should show up immediately.

Note that Github pages works without DNS. Above example would have been available via before DNS was enabled. 

INFRA controls the ordering of gh-pages and DNS entries, so if we just do things in the correct order, we are golden. HOWEVER, a problem can still occur if someone on the project removes the CNAME file from their code, and we don't know about it.

Legal discussion

INFRA-19395 - Getting issue details... STATUS