The pause-community-contributions workflow makes a call to the
GitHub API to check if the person contributing is a member of
the organization.
However, this call currently fails if the contributor has set their
membership to 'private'.
This is because the default token provided for GitHub Actions only
has permissions for the repository, not for the organization. With
this token, we're not allowed to see private memberships.
We've created a custom, org-wide secret containing a personal token
that has permissions to read organization membership.
Unfortunately the secret cannot be accessed directly by the shared
workflow, it has to be passed in.
We updated the shared workflow to use the token, if it is provided,
and this PR updates the workflow in this repo to pass the secret.
Until this is merged, contributions from people with private membership
in the Exercism organization will be automatically closed.
Note that this PR also removes the workflow_dispatch which fails if
you try to use it.
* Create autoresponder for pausing community contributions
We're going to take a step back and redesign the volunteering model for Exercism.
Please see [this forum post](https://forum.exercism.org/t/freeing-our-maintainers-exercism-wide-changes-to-track-repositories/1109) for context.
This PR adds an autoresponder that runs when an issue or PR is opened. If the person opening the issue is not a member of the Exercism organization, the autoresponder posts a comment and closes the issue. In the comment the author is directed to discuss the issue in the forum.
If the discussion in the forum results in the issue/PR being approved, a maintainer or staff member will reopen it.
Please feel free to merge this PR. It will be merged on December 1st, 2022. Please do not close it.
If you wish to discuss this, please do so in [the forum post](https://forum.exercism.org/t/freeing-our-maintainers-exercism-wide-changes-to-track-repositories/1109) rather than here.
* Update workflow for pausing community contributions
This removes duplicated logic, relying on a shared workflow.
* Define repo-specific labels.
This commit adds a `.appends/.github/labels.yml` file, which contains the repo-specific labels. This file will automatically be combined with the Exercism-wide labels defined in https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml to form the `.github/labels.yml` file.
* Define the labels used in this repo.
This commit adds a `.github/labels.yml` file, which contains the full list of labels that this repo can use. This file is a combination of the `.appends/.github/labels.yml` file and the Exercism-wide labels defined in https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml.
* Add a GitHub Actions workflow to automatically sync the repository labels.
This commit adds a `.github/workflow/sync-labels.yml` file, which defines a workflow that syncs this repository's labels with the contents of the `.github/labels.yml` file. The labels are synced automatically whenever the `.github/labels.yml` file changes.
The `.appends/.github/labels.yml` file contains all the labels that are currently used in this repo. The `.github/labels.yml` file will contain the full list of labels that this repo can use, which will be a combination of the `.appends/.github/labels.yml` file and a centrally-managed `labels.yml` file. We'll automatically sync any changes, which allows us to guarantee that all the track repositories will have a pre-determined set of labels, augmented with any custom labels defined in the `.appends/.github/labels.yml` file.
1. `ace_editor_language`: the language identifier for the Ace editor that is used to edit code on the website
2. `highlightjs_language`: the language identifier for Highlight.js which is used to highlight code on the website