Organizational defaults
The following organizational defaults are automatically applied to all repositories (per Creating a default community health file - GitHub Docs). Most repositories shouldn't have their own copies of these files:
- .github/PULL_REQUEST_TEMPLATE.md: Pull request template
- All pull request templates must include the full text of the DCO.
- .github/ISSUE_TEMPLATE/bug_report.md: Bug report issue template
- .github/ISSUE_TEMPLATE/feature_request.md: Feature request issue template
- CODE_OF_CONDUCT.md: Code of Conduct
- CONTRIBUTING.md: contributor guidelines
- FUNDING.yml: Displays a sponsor button
- SUPPORT.md: Documentation on how to get help
Required items
All GitHub repositories should have the following items to be considered fully ready for external contributors.
Files
- /.github/CODEOWNERS: Defined code owners
- /.cc-metadata.yml: The standard CC metadata YAML file.
- /LICENSE: license file.
- /README.md: repository information file
- begin with an H1 heading identical to repository name followed by a repository description
- Must document how to install and build the project locally and documents a high level overview of the project and code structure. It should also link to any other available documentation.
- Must document the Code of Conduct. For example, see the Code of Conduct README.md section in creativecommons/index-dev-env.
- Must document Contributing. For example, see the Contributing README.md section in creativecommons/index-dev-env.
Additional items
As applicable or appropriate, each repository should include:
- GitHub Actions for formatting, linting, styling, etc.
- GitHub Actions for unit tests
Repository configuration
- Main page: About ⚙️ (Edit repository details)
- Description should match README.md
- Add appropriate Topics
- Disable/Uncheck any of the "Include in home page" that are not relevant to the repository (ex. if no packages are provided, uncheck Packages).
- Settings: General
- Features
- Disable/Uncheck Wikis unless you are going to use that feature
- Disable/Uncheck Discussions unless you are going to use that feature
- Disable/Uncheck Projects unless you are going to use that feature
- Pull Requests
- Enable/check Automatically delete head branches
- Features
- Settings: Collaborators and teams
- Ensure, at a minimum that the team in /.github/CODEOWNERS has write permissions
Standard labels
All repositories must contain a set of standard labels, documented here, which comprise of common labels in addition to repository-specific skill labels. You don't have to set these up manually. The labels are automatically managed on all Creative Commons (CC) repositories, and so, must not be renamed.
Repositories may contain additional custom labels as well which will remain unaffected by the sync. It is recommended that custom labels be explained in the contribution guidelines for that project.
Branch protections
Branch protections are automatically set up by CC team members via creativecommons/ccos-scripts. By default, pushing directly to the default branch (ex. main) is disabled and all pull requests require review by at least one person before merge.
CC metadata file
Each repo should have a .cc-metadata.yml file in the root directory with the following structure:
This metadata file is used in the Projects page. Repos that are marked as non-engineering projects are not displayed in the page and repos marked as featured as displayed at the top of the page. Repos should be marked as featured if we are actively looking for community contributions and have the bandwidth to review them quickly.
Repos without this metadata file are treated as engineering_projects: true and featured: false. A default is necessary since it will take time for us to clean up and add metadata to all our repos.