{"id":13542680,"url":"https://github.com/taskcluster/community-tc-config","last_synced_at":"2026-04-03T05:48:56.584Z","repository":{"id":35235097,"uuid":"210879143","full_name":"taskcluster/community-tc-config","owner":"taskcluster","description":"Configuration for Taskcluster at https://community-tc.services.mozilla.com/","archived":false,"fork":false,"pushed_at":"2026-04-02T15:11:53.000Z","size":5165,"stargazers_count":11,"open_issues_count":23,"forks_count":36,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-03T03:38:28.097Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taskcluster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-09-25T15:28:52.000Z","updated_at":"2026-04-02T15:12:14.000Z","dependencies_parsed_at":"2023-02-18T08:45:39.498Z","dependency_job_id":"8d327c0c-9818-450e-ac55-87fb6d43d75c","html_url":"https://github.com/taskcluster/community-tc-config","commit_stats":null,"previous_names":["taskcluster/community-tc-config","mozilla/community-tc-config"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/taskcluster/community-tc-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskcluster%2Fcommunity-tc-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskcluster%2Fcommunity-tc-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskcluster%2Fcommunity-tc-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskcluster%2Fcommunity-tc-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taskcluster","download_url":"https://codeload.github.com/taskcluster/community-tc-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskcluster%2Fcommunity-tc-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31337170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T04:42:29.251Z","status":"ssl_error","status_checked_at":"2026-04-03T04:42:12.667Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T10:01:15.141Z","updated_at":"2026-04-03T05:48:56.569Z","avatar_url":"https://github.com/taskcluster.png","language":"Python","funding_links":[],"categories":["others","Shell"],"sub_categories":[],"readme":"# community-tc-config\n\nThis repository defines a tool to manage the runtime configuration for the Taskcluster deployment at \u003chttps://community-tc.services.mozilla.com/\u003e.\nIt uses [tc-admin](https://github.com/taskcluster/tc-admin) to examine and update the deployment.\nSee that library's documentation for background on how the process works.\n\n## Background\n\nA Taskcluster deployment has a collection of resources such a [roles](https://community-tc.services.mozilla.com/docs/manual/design/apis/hawk/roles), [hooks](https://community-tc.services.mozilla.com/docs/reference/core/hooks), and [worker pools](https://community-tc.services.mozilla.com/docs/reference/core/worker-manager), that define its behavior.\nThese can all be managed via the Taskcluster API, but managing them by hand is error-prone and difficult to track over time.\nThis tool exists to manage those resources in a controlled, observable way.\nIt does so by making API calls to determine the current state, examining this repository to determine the desired state, and then \"applying\" the necessary changes to get from the former to the latter.\n\nA deployment is also defined by a number of back-end settings that are not available in the API.\nThese are defined by the [service configuration](https://community-tc.services.mozilla.com/docs/manual/deploying).\nWhile this tool cannot change those settings, it does depend on them, and they are described [here](deployment-details.md).\n\n## Quick Start\n\nIf you would like to propose a change to the configuration of the Community-TC deployment, you are in the right spot.\nYou should already have an understanding of the resources you would like to modify.\nSee the [Taskcluster Documentation](https://community-tc.services.mozilla.com/docs) or consult with the Taskcluster team -- we are responsible for managing this deployment, and happy to help -- if you need assistance.\n\nBegin by installing this app by running `pip install -e .` in this directory.\nThen, run\n\n```shell\nTASKCLUSTER_ROOT_URL=https://community-tc.services.mozilla.com tc-admin diff --without-secrets\n```\n\nThis will show you the current difference between what's defined in your local repository and the runtime configuration of the deployment.\nMost of the time, there should be no difference.\n\nThen, change the configuration in this repository, using the comments in the relevant files as a guide.\nAfter making a change to the configuration, you can examine the results by running `tc-admin diff` again.\nIf you are adding or removing a number of resources, you can use `--ids-only` to show only the names of the added or removed resources.\nSee `tc-admin --help` for more useful command-line tricks.\n\n## Applying changes (community-tc administrators only)\n\nWhen the `main` branch is updated, typically a community-tc administrator will apply the changes.\n\nNote to community-tc administrators: you may need to use the `root` client to run `tc-admin apply \u003coptions\u003e...` successfully, i.e.\n\n```\nexport TASKCLUSTER_ROOT_URL=https://community-tc.services.mozilla.com\nexport TASKCLUSTER_CLIENT_ID=static/taskcluster/root\nexport TASKCLUSTER_ACCESS_TOKEN=\u003croot access token\u003e\nunset TASKCLUSTER_CERTIFICATE\n```\n\nwhere the value for `\u003croot access token\u003e` can be shown by running the command `pass show community-tc/root`.\n\n## Conventions\n\nThis deployment follows the convention of [project namespaces](https://docs.taskcluster.net/docs/manual/using/namespaces#projects).\nEach project has a its own worker pools, and user roles can be given \"admin\" access to the project.\n\nRepositories are granted scopes via the [Taskcluster-github scheme](https://docs.taskcluster.net/docs/reference/integrations/github/taskcluster-yml-v1#scopes-and-roles).\nEach repository is associated with a project, and scopes granted to the repository should be associated with that project.\nThis occurs within `config/projects.yml`.\n\n### Secrets\n\nThe tool can manage secrets directly, but this requires access to secret values, and is thus limited to a smaller group of people: the Taskcluster team.\nThose people use `--with-secrets`, which automatically reads from the team's password storage repository.\n\nIn general, per-project secrets can either be managed by this tool, or managed directly by the project admins.\nSee the comments in `projects.yml` for details.\n\n### Externally Managed Projects and Resources\n\nThis repository manages all resources in the deployment *except* those associated with \"externally managed\" projects.\nProjects that manage their own resources, either by hand or via their own automation, should have the `externallyManaged` attribute set in `config/projects.yml`, otherwise the next run of `tc-admin apply` will delete the project's resources!\nNote that externally managed projects can still define other resources in their `projects.yml` stanza.\nSuch resources will be created and managed by this repository, but if they are removed from `projects.yml`, this repository cannot delete them.\n\nThe `externallyManaged` attribute can be set to `true` (only resources explicitly mentioned should be managed by this repo; unknown resources will not be deleted) or `false` (all resources are managed by this repo; unknown resources will be deleted), or to a regular expression or list of regular expressions.\nThese regular expressions describe resource IDs of resources that are managed externally.  For example, if the project `darjeeling` dynamically creates hooks with prefix `project-darjeeling/dynamic-`, it it would set\n\n```yaml\n  externallyManaged:\n    - \"Hook=project-darjeeling/dynamic-.*\"\n```\n\n### Image Sets\n\nTo build a set of machine images in GCP/AWS/Azure, see the [imagesets](/imagesets) subdirectory.\n\n### Code Style\n\nThe Python code here follows [Black](https://black.readthedocs.io/en/stable/).\n\n```shell\npip install black\nblack generate\n```\n\nThe YAML in `config/` is linted with `yamllint`'s \"relaxed\" preset, and without checking line length.\n\n```shell\npip install yamllint\nyamllint config\n```\n\n### Pre-commit checks\n\nIf you would like your staged files to be checked for errors you can do so by installing `pre-commit` with: `pip install pre-commit` and `pre-commit install`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskcluster%2Fcommunity-tc-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaskcluster%2Fcommunity-tc-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskcluster%2Fcommunity-tc-config/lists"}