Joining the Pilot

All DC Government teams are encouraged to take part in the Open Source Pilot, whether it be by proposing edits to this guide or by building new open source projects with your colleagues.

Whatever form it takes, the Technology Innovation Program at OCTO is ready to help you learn the tools and techniques to participate successfully. Please email us to find out more!

If you feel ready to dive in, you can get started by joining the DCgov organization on GitHub.

GitHub 101

GitHub is a popular web-based platform, on which you can publicly host and collaboratively work on software projects. It is also host to DCgov, the new online home for DC Government agencies’ open-source projects.

Having all such projects in one place improves collaboration and impact, by making them more easily discoverable to others within and outside of DC Government.

There are many GitHub tutorials out there (this and this are two good ones), but you should first go ahead and create a GitHub account.

Setting Up a GitHub Account

Start out by creating a free Github account. If you have used GitHub in the past and already have an account set up, there is no need to open a new one. Just use some common sense to ensure that your username and avatar are work appropriate.

As an added layer of security, you should enable two-factor authentication, or 2FA. More information on 2FA is available here.

Joining DCgov on GitHub

Any DC government employee or contractor can become a member by setting up a Github account and requesting access to the DCgov organization.

To join the DCgov organization on Github, send opensource@dc.gov an email containing your GitHub username from your official DC Government email address.

Joining and Creating Teams or Projects

So you have joined DCgov. Now what?

For starters, you can now create your own repositories (i.e. projects) that will show up on the DCgov organization page. You will also find that a neat DC logo has been added to your user profile!

To really leverage your DCgov membership, join the relevant project or agency team by requesting access from each team’s maintainer. By default, you cannot edit other teams’ repositories (though you are able to make suggestions).

If no existing team meets your needs, feel free to create a new one. All teams should have a self-explanatory name, a brief description, and be marked visible.

When you open up a new repository, edit its settings to give ‘write’ or ‘admin’ permissions to your team, so they can pitch in.

Individuals other than DC Government staff and contractors may be added as ‘outside collaborators’ to individual repositories on a case-by-case basis.

Close

Glossary of Terms

  • Commit

    Committing records changes made to a Git repository.

  • Fork

    A fork is a copy of someone else’s Git repository. You can make changes to your fork without affecting the original project.

  • Git

    Git is a popular free and open source system for tracking changes in text-based files. It is primarily used for software development.

  • GitHub

    GitHub is a web-based platform on which you can host and work on Git repositories. It provides a number of useful features, including bug tracking, feature requests, and task management.

  • Open Source

    In brief, open source licenses allow software to be freely used, modified, and shared. They abide by standards laid out in the Open Source Definition.

  • Personally Identifiable Information (PII)

    PII is any information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context.

  • Private Key

    Private keys are a kind of PII used to decrypt messages sent over the Internet. They form part of a system called Public-Key Cryptography.

  • Push

    Pushing allows you to share the Git commits you have made with others.

  • Repository

    Repositories are places where a Git project’s files and their revision history are stored.

  • Token

    A software token can be used in two-factor authentication to authorize access to computer services.

  • Two-Factor Authentication (2FA)

    In two-factor authentication, two different components are used in combination to verify a user’s identity (e.g. a password and a single-use token sent to your email).