GitHub is a publicly available, free service which hosts the source code for tens of thousands of open source projects. GitHub is very secure, and is working hard to make git version control more user friendly. CivicActions uses GitHub for all public open source projects ( https://github.com/civicactions ). We are an open source company that believes in sharing our code where possible. We encourage internal projects, client and pro-bono projects to be developed in the open and released under an open license.
There are times where data or code needs to be kept private. In most instances we will use our own internal GitLab infrastructure ( https://git.civicactions.net ) to manage our private repositories. There may also be projects which are just better supported on our own infrastructure. Generally when a client asks for a project to not be developed in public and doesn't have their own Git hosting in place we will use our GitLab instance.
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:
- 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.
- Ask a coworker to add you to the CivicActions team and any relevant subteams.
- Find out the details of the repositories you'll be working with.
- 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 GitHub 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:
- Managing access to the Handbook to all CivicActions Team members, and managing control over subdirectories in the Handbook by subteams.
- 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.