These are scripts used to maintain various pieces of CC's open source community infrastructure.
- Script:
normalize_repos.py
- Common Modules:
ccos/
- Specific Modules:
ccos/norm/
- Common Modules:
- Workflow
- Status:
- Schedule: Hourly at 45 minutes past the hour
- YAML:
normalize_repos.yml
- Status:
- Required Environment Variables:
ADMIN_GITHUB_TOKEN
This script 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 script will only update color and description of existing labels or create new labels. It will never delete labels.
GitHub token with admin permissions to the creativecommons
GitHub
organization.
Workflow Name/Status | YML File Name | Workflow Purpose |
---|---|---|
add_community_pr.yml |
Runs hourly at 5 minutes past every hour UTC and adds new Vocabulary issues to Vocabulary: In Progress | |
push_data_to_ccos.yml |
Runs daily at 00:00 UTC and whenever someone pushes to the main branch and uses [push_data_to_ccos ][push_to_ccos] |
|
sync_community_team.yml |
Runs daily at 00:30 UTC and whenever someone pushes to the main branch and uses [sync_community_team ][sync_team] |
|
track_backlog.yml |
Runs hourly at 45 minutes past every hour UTC and adds PRs to Active Sprint: Code Review and new issues to Backlog: Pending Review. Uses dhruvkb/issue-projector. |
Scripts 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:
- It's ethically important that our community members know when they are talking to a bot instead of a human.
- It makes it easy to audit our automations in the future, because all commits and messages will be associated with the single @cc-open-source-bot user account via the GitHub search, api, etc.
- We won't need to update automations when there are changes to staff or volunteers.
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:
# ...other settings here
- name: Commit changes
uses: EndBug/add-and-commit@v4
with:
author_name: cc-open-source-bot
author_email: opensource@creativecommons.org
message: "Deploy site"
add: "./example-directory"