These are scripts used to maintain various pieces of CC's open source community infrastructure.
The Creative Commons team is committed to fostering a welcoming community. This project and all other Creative Commons open source projects are governed by our Code of Conduct. Please report unacceptable behavior to [email protected] per our reporting guidelines.
See CONTRIBUTING.md
.
The following workflows are ordered by schedule frequency and start time.
| Workflow | | |
| -- | --: | --- |
| | Schedule: | Hourly at 5 minutes past the hour (**:05
) |
| | YAML: | add_community_pr.yml
|
| Action | | |
| | | subhamX/github-project-bot |
| Env | | |
| | Required: | ADMIN_GITHUB_TOKEN
|
This workflow adds community PRs in the creativecommons/vocabulary repository to Vocabulary Planning project.
| Workflow | | |
| -- | --: | --- |
| | Schedule: | Hourly at 30 minutes past the hour (**:30
) |
| | YAML: | sync_community_teams.yml
|
| Script | | |
| | File: | sync_community_teams.py
|
| | Common Modules: | ccos/
|
| | Specific Modules: | ccos/norm/
|
| Env | | |
| | Required: | ADMIN_GITHUB_TOKEN
|
This creates GitHub teams for the Community teams and updates their membership
based on the community_team_members.json
Lektor databag.
- The databag is used to:
- create the Community Team Members β Creative Commons Open
Source page
- configure GitHub team memberships and repository permissions
- The databag is kept up-to-date by Push data to CC Open
Source, below
| Workflow | | |
| -- | --: | --- |
| | Schedule: | Hourly at 45 minutes past the hour (**:45
) |
| | YAML: | manage_issues.yml
|
| Action | | |
| | | dhruvkb/issue-projector |
| Script | | |
| | File: | move_closed_issues.py
|
| | Common Modules: | ccos/
|
| Env | | |
| | Required: | ADMIN_GITHUB_TOKEN
|
This manages issues within the Active Sprint and Backlog projects: - Action: Track new issues in Backlog: Pending Review - Action: Track PRs in Active Sprint: Code Review - Script: Move closed issues from Backlog to Active Sprint: Done
| Workflow | | |
| -- | --: | --- |
| | Schedule: | Hourly at 45 minutes past the hour (**:45
) |
| | YAML: | normalize_repos.yml
|
| Script | | |
| | File: | normalize_repos.py
|
| | Common Modules: | ccos/
|
| | Specific Modules: | ccos/norm/
|
| Action | | |
| | | gautamkrishnar/keepalive-workflow |
| Env | | |
| | Required: | ADMIN_GITHUB_TOKEN
|
This ensures that all active repositories in the creativecommons
GitHub organization are consistent in the following ways:
- They have all the labels defined in labels.yml
present.
- They have standard branch protections set up (with some exceptions).
This will only update color and description of existing labels or create new labels. It will never delete labels.
| Workflow | | |
| -- | --: | --- |
| | Schedule: | Daily at midnight:15 (00:15
) |
| | YAML: | push_data_to_ccos.yml
|
| Script | | |
| | File: | push_data_to_ccos.py
|
| | Common Modules: | ccos/
|
| | Specific Modules: | ccos/data/
|
| Env | | |
| | Required: | ADMIN_ASANA_TOKEN
|
| | Required: | ADMIN_GITHUB_TOKEN
|
This retreives data from Asana, formats it as a lektor databag, and pushes it
to CC Open Source website source repository:
- Data Source: Community Team Tracking - Asana (limited access)
- Data Destination:
- creativecommons/creativecommons.github.io-source
- databags/community_team_members.json
- databags/repos.json
The destination data is used by the following pages: - Community Team Members β Creative Commons Open Source - Open Source Projects β Creative Commons Open Source
ADMIN_ASANA_TOKEN
: Asana token with access to the Creative Commons Asana
organizationADMIN_GITHUB_TOKEN
: GitHub token with admin permissions to the
creativecommons
GitHub organizationScripts that commit code or automatically reply to pull requests and issues need to be associated with a GitHub user account. Creative Commons maintains a cc-open-source-bot user for this purpose. This is useful for a few reasons:
Using this bot clearly communicates when a commit, comment, or action was performed by an automation. For example, here is some configuration for a workflow using the Add & Commit GitHub Action:
```yml
Skill labels need to be manually set up in skills.json
. This
- increases manual work on the part of repo maintainers to ensure that the skills listed in a different repo (this one) are up to date
- causes redundancy of information that is already present in cc-metadata.yml
under the technologies
key in each repo
The technologies key could be expanded to a more verbose structure to describe languages, libraries and frameworks and then used to eliminate the need for skills.json
entirely. This presents benefits such as
- richer information about the technological make-up of our projects
- automated sync of labels with technologies
The improvements to .cc-metadata.yml
can be a good-to-have part of the feature if there isn't a consensus to proceed with that. But the automation of skill labels is still beneficial. Also it does not have to be binary, a combination of .cc-metadata.yml
and skills.json
would also be a fine solution.