GitHub

About GitHub

GitHub is a publicly available, free service which hosts the source code for tens of thousands of open source projects. CivicActions uses GitHub for all open source projects (except those which are better hosted on an open source community infrastructure), as well as internal, client or pro-bono projects that should be developed in public. Client projects that are not developed in public do not use GitHub, but usually use GitLab: https://git.civicactions.net.

Setting Up Your Account

Many CivicActions employees will already have a GitHub account. If you don't have one yet, now's a great time to create one! Follow these steps:

  1. Sign up with a free profile on https://github.com/join.
    • Use a personal email account, not your CivicActions one, so that your GitHub account will be portable.
    • As always, please use a unique, secure password.
  2. Ask a coworker to add you to the CivicActions team and any relevant subteams.
  3. Find out the details of the repositories you'll be working with.
  4. Good work! Now set up two-factor authentication.

Setting up Git and a local repository

Unless you are only ever going to be editing a few handbook pages the "easy" way (per CONTRIBUTING.md), you'll want to set up a git workflow locally and clone a local copy of the repository you're working with. You can find instructions at https://help.github.com/articles/set-up-git/ and https://git-scm.com/book/en/v2/Getting-Started-Git-Basics.

If you'd prefer not to use command-line tools, you may want to use Git Desktop: https://desktop.github.com/.

Many projects will have special requirements for local repositories, especially for engineers. Ask your coworkers for help!

Managing teams and access

We use Github Teams functionality for two purposes:

  1. Managing access to the Handbook to all CivicActions Team members, and managing control over subdirectories in the Handbook by subteams.
  2. Managing groups of collaborators that share the same access to more than one repo.

You don't need to create a Github team unless that team has special access to more than one repo.