These are scripts used to maintain various pieces of CC's open source community infrastructure.
- Workflow
- Status:
- Schedule: Hourly at 45 minutes past the hour (
**:45
) - YAML:
normalize_repos.yml
- Status:
- Script:
normalize_repos.py
- Common Modules:
ccos/
- Specific Modules:
ccos/norm/
- Common Modules:
- Required Environment Variables:
ADMIN_GITHUB_TOKEN
This workflow 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.
- Workflow
- Status:
- Schedule: Daily at midnight:15 (
00:15
) - YAML:
push_data_to_ccos.yml
- Status:
- Script:
push_data_to_ccos.py
- Common Modules:
ccos/
- Specific Modules:
ccos/data/
- Common Modules:
- Required Environment Variables:
ADMIN_ASANA_TOKEN
ADMIN_GITHUB_TOKEN
This workflow 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:
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 thecreativecommons
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 | |
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"