Gather, curate, and feature stories of people using GitHub as part of their open government innovations.
The site is open source (here's all the code!) and is a tool for and by the community.
- Share stories of real world experiences using GitHub in open Government
- Demystify open source terminology
- Showcase the community using GitHub to promote connections and sharing between individuals and organizations.
- Make getting started with GitHub easier
Under the Hood
This site is made with Jekyll, an open source static site generator. This means the Jekyll program takes the content we want to be on the site and turns them into HTML files ready to be hosted somewhere. Awesomely, GitHub provides free web hosting for repositories, called GitHub Pages, and that's how this site is hosted. The content for the site is on a branch named gh-pages.
If you see an error or a place where content should be updated or improved, just fork this repository to your account, make the change you'd like and then submit a pull request. If you're not able to make the change, file an issue.
If you know of an GitHub organization that should be added to the organization list that generates the matrix of avatars on the Community page: fork this repository, open the _data/civic_hackers.yml, _data/governments.yml, or_data/research.yml file and add it to the appropriate section of the list in the format being used. Commit your change and submit a pull request to us!
To Set up Locally
You can take all the files of this site and run them just on your computer as if it were live online, only it's just on your machine.
If you have installed GitHub Desktop, Git was also installed automatically.
To copy the repository's files from here onto your computer and to view and serve those files locally, at your computer's command line type:
git clone https://github.com/github/government.github.com.git cd government.github.com script/bootstrap script/server
http://localhost:4000 in your browser
github.government.com now utilizes a two-repo approach to managing staging and production deployments:
For small changes, you can deploy right to production by merging a pull request. For larger changes, push your branch to the staging repo from Terminal. Here's how to setup staging and deploy to it:
$ script/stage staging
This script will generate the government site (without starting the local server) and prep it for staging. It does this by creating a temporary Git repo within the compiled
_site directory and force pushing that to a separate remote repo (in this case, https://ghe.io/government/staging).
Pushing to the staging repo requires authenticating with GitHub via Terminal. You'll be asked for a username and password when running
script/stage. Use your GHE.io username and, since we enforce 2FA, use a personal access token as your password.
Having trouble deploying to a staging server? Delete the entire
_site directory and try again. Sometimes the temporary Git repository we make in the script can go awry.
When you're done with staging and your pull request has been approved, you can merge your branch. Your changes will be automatically deployed to the production site in a few minutes.
In addition to contributing changes, you can help to triage issues. This can include asking for vital information or requesting formatting changes. If you would like to start triaging issues, one easy way to get started is to subscribe to government.github.com on CodeTriage.
Don't see what you're looking for? Create an issue, we'll do our best to help you out.