# ASF Comdev tools

ASF Community Development (ComDev) project partners with other groups across the ASF to provide resources, tools, programs, and advice in order to attract, retain, educate, and grow key communities around the Apache Software Foundation, in support of sustainability producing software for the public good.

Other repositories:

* [comdev-site](https://github.com/apache/comdev-site)
* [comdev-working-groups](https://github.com/apache/comdev-working-groups)
* [comdev-projects](https://github.com/apache/comdev-projects)
* [comdev-events-site](https://github.com/apache/comdev-events-site)
* [comdev-reporter](https://github.com/apache/comdev-reporter)

Contents of this repository:

* asf-highlights - tools for finding foundation-wide activity
* project-activities - tools for project-specific activity

