Generates a prototype "Year in Review" report of Open Source activity and impact in the public DSACMS GitHub organization.
This repository calculates GitHub metrics from publicly available data and turns them into a scrollable page with fun animations, celebrating and rewarding the people who contribute to DSACMS's open source projects.
It's the vision of this project to provide a comprehensive, performant, and trustworthy platform to transform the way that the CMS enterprise shares and uses data.
The goal of the project is to prototype a Year-in-Review website to highlight yearly Open Source achievements at DSACMS. The inspiration for this project comes from other Open Source offices with similar initiatives to share and inspire Open Source collaboration.
This aligns with the overarching mission to enable the CMS Enterprise to drive innovation in data sharing so that beneficiaries and their healthcare partners have the data they need to make informed decisions about their healthcare.
This aligns with the mission of the Open Source Program Office to define and implement programs, policies, and projects that guide organizational open source efforts.
A list of core team members responsible for the code and documentation in this repository can be found in COMMUNITY.md.
.
├── github_metrics.py
├── scripts/
│ └── generate_metrics.py
├── metrics_data/
│ └── data/
└── src/
├── index.njk
├── metrics-data.js
└── _includes/
github_metrics.pypulls commit, contributor, star, watcher, fork, and merged-PR counts from the GitHub API.scripts/generate_metrics.pyis the CLI entrypoint that runsgithub_metrics.pyfor a date range and writes a JSON snapshot.metrics_data/data/holds those JSON snapshots.src/metrics-data.jspicks one (viaDATA_FILE) to populate the static site.
Project team members with write access work directly in this repository. External contributors follow the same general workflow but submit changes through a fork and cannot merge their own pull requests. Additional guidance for contributing is available in: CONTRIBUTING.md.
This project aligns with the organization’s common approach to versioning, preparing releases, and communicating updates. Rather than restating those details here, please refer to the OSPO Release Guidelines:
Release Guidelines (OSPO Guide)
These guidelines outline agency-wide expectations for semantic versioning, release candidates, GitHub releases, and associated review and communication practices. Individual projects may follow this model in full or tailor it to their operational needs.
Install dependencies, then run the site:
npm install
npm run dev
This starts Eleventy in serve mode and rebuilds on changes.
To generate a new metrics snapshot, install the Python dependencies, set a GH_TOKEN with access to the org, then run:
pip install -r requirements.txt
export GH_TOKEN=<your_token>
python3 scripts/generate_metrics.py <start_date> <end_date>
Dates use YYYY-MM-DD format, e.g.:
export GH_TOKEN=<your_token>
python3 scripts/generate_metrics.py 2025-08-07 2026-08-07
end_date is optional and defaults to today. The output is written to metrics_data/data/; update DATA_FILE in src/metrics-data.js to point the site at the new file.
Each application has its own linting and testing guidelines. Lint and code tests are run on each commit, so linters and tests should be run locally before committing.
Thank you for considering contributing to an Open Source project of the US Government! For more information about our contribution guidelines, see CONTRIBUTING.md.
The {{ cookiecutter.project_name }} team is taking a community-first and open source approach to the product development of this tool. We believe government software should be made in the open and be built and licensed such that anyone can download the code, run it themselves without paying money to third parties or using proprietary software, and use it as they will.
We know that we can learn from a wide variety of communities, including those who will use or will be impacted by the tool, who are experts in technology, or who have experience with similar technologies deployed in other spaces. We are dedicated to creating forums for continuous conversation and feedback to help shape the design and development of the tool.
We also recognize capacity building as a key part of involving a diverse open source community. We are doing our best to use accessible language, provide technical and process documents, and offer support to community members with a wide variety of backgrounds and skillsets.
Principles and guidelines for participating in our open source community can be found in COMMUNITY.md. Please read them before joining or starting a conversation in this repo or one of the channels listed below. All community members and participants are expected to adhere to the community guidelines and code of conduct when participating in community spaces including: code repositories, communication channels and venues, and events.
We adhere to the CMS Open Source Policy. If you have any questions, just shoot us an email.
Submit a vulnerability: Vulnerability reports can be submitted through Bugcrowd. Reports may be submitted anonymously. If you share contact information, we will acknowledge receipt of your report within 3 business days.
For more information about our Security, Vulnerability, and Responsible Disclosure Policies, see SECURITY.md.
A Software Bill of Materials (SBOM) is a formal record containing the details and supply chain relationships of various components used in building software.
In the spirit of Executive Order 14028 - Improving the Nation’s Cyber Security, a SBOM for this repository is provided here: https://github.com/{{ cookiecutter.project_org }}/{{ cookiecutter.project_repo_name }}/network/dependencies.
For more information and resources about SBOMs, visit: https://www.cisa.gov/sbom.
This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication as indicated in LICENSE.
All contributions to this project will be released under the CC0 dedication. By submitting a pull request or issue, you are agreeing to comply with this waiver of copyright interest.