The CDCGov organization on GitHub is designated for use by CDC programs to publish open source code. This is a set of practices to help programs release secure and compliant open source projects successfully. If you are interested in using GitHub for non-open source projects, please see information on our enterprise organization.
This will require your CDC login, so if you don’t have a login, ask someone to request on your behalf, or get in touch.
You should receive an email or notification when you are given access and your first repository should be setup for you. For subsequent projects, you will be able to create a repository in the organization using Github’s interface. The template repository is maintained and an easy way to quick start your repository that complies with the guidelines. Once this is completed you’re ready to follow the required guidelines to publish code.
Required Practices
You must follow these practices before you publish real code into your repository.
Get Clearance. Always obtain clearance from your organization prior to setting up and publishing a repository.
GitHub is a third party service used by CDC to collaborate with the public. Official CDC health messages will always be distributed through www.cdc.gov and through appropriate channels, so make sure to plan your project along with your official public health program on cdc.gov.
Naming. Set a meaningful project name and short description for your project. The form to do this is in your repositories settings.
Choose a license. Assign an open source license based on program need.
If you need help choosing a license, please review this article, refer to existing CDCgov projects, or ask for consultation support in choosing a license.
Security scanning and review.
This is the final step before publishing and the most critical.
All source code used within CDC systems must comply with all cybersecurity processes prior to production use, including static and dynamic scanning. The same applies to code published as open source.
If you are unsure about compliance, reach out to your organization’s security officers.
Never commit sensitive information, including usernames, passwords, tokens, PII, PHI. To automate this, you can integrate pre-commit tools like Clouseau to systematically review material before committing.
Make sure that the commit history of your Github repository also doesn’t have these things. In many cases it’s easier to start a new repository and push up the code that has all sensitive information removed as the first commit.
Maintain your repository. Once your repository is published, you must do the following to remain in compliance:
Respond to critical security issues and communication from administrators. Ignoring security issues or not responding to communication from administrators can result in archiving or removal.
Archive old projects. If you’re no longer updating the project or have moved it’s location, update your README.md file to let users know and archive the repository.
Recommended Practices
Optional improvements to make your open source project more successful.
Agree on project conventions and include them in your README.md file. Depending on what type of project, this includes folder structure for data, linters, editor configuration (eg, MicrobeTrace’s .editorconfig). This will help improve the quality of your project and make it easier for others to contribute to your project.
Add support and community procedures. CDC does not provide warranty or official support for open source projects, but describing how you would like questions and issues will assist users of your project. If you use a wiki, or project board, or package manager, describe and link to that. Official contribution steps will make it easier for people outside of CDC to contribute to your project.
Include references to publications, presentations, and sites featuring your project.
If you need additional support with your setting up project, or have any feedback or ideas about this guidance please open an issue or send an email to data@cdc.gov. We also accept pull requests if you want to directly edit the guidance.
Non-Compliance Procedure
Projects in this organization are reviewed occasionally for compliance with the Required Practices. If your project is found to not be in compliance, you will be contacted by administrators to help bring your project into compliance. Projects that do not respond or that habitually fail to meet these practices will be archived or removed from the organization, depending on severity.
Profile Setup
Please make sure your profile is set up properly to help us work better together. Specifically, keep your profile up to date with:
Name: Your first and last name.
Company: Your government agency or contracting company. (If you also use GitHub for personal projects, consider specifying “CDC (work) + personal projects” to make it clear that some of your GitHub projects may be personal in nature.)
Location: Your primary work location (city, state).
Photo: A headshot photo, or an appropriate image that is unique to you.
When you get an email or push alert that your repo is ready, push to GitHub
Add an entry in open.cdc.gov on their code page to officially be linked from cdc.gov. This helps users find and use your project.
Keep your project up to date, when you’re finished flag it as archived.
This checklist was adapted from the CDC IT Guard Rail and put here to help people who don’t have access to the intranet.
CDC Enterprise
Our CDCent organization is used for private, non-public projects so only CDC staff and approved outside collaborators work on these projects, you can request access through the GitHub Enterprise Cloud form.
Reference Links
These are helpful links from across the Federal Government regarding open sourcing code.