This is a standalone application which updates the Owner of a Clubhouse Story when a targeted branch is pushed inside a GitHub organization. This works by providing a configurable dashboard to sync your Clubhouse and GitHub member directories and providing a GitHub event endpoint for created branches within an organization.
This application is intended to be hosted with Zeit. To start, press the Deploy button and select the "Create Git repository" when prompted. It is essential that this repository is forked due to GitHub Action requirements.
Once you have navigated to the project template, you will be required to fill out the following secrets:
CLUBHOUSE SECRETFAUNA SECRETGITHUB OAUTH CLIENT IDGITHUB OAUTH CLIENT SECRETGITHUB ORG HOOK SECRETGITHUB ORG ID
This application requires a Clubhouse secret to perform the following actions:
- List the member directory of your Clubhouse organization
- Update a Story's owner
To issue a Clubhouse secret navigate to your organizations settings and generate a new API Token.
Save this API Token as the required CLUBHOUSE SECRET in Zeit's template onboarding form.
This application uses Fauna, a serverless data-store, as a data layer. Included with this repository is suite of GitHub actions that execute migrations when master is pushed. When this project is initially forked, this action will fail due to a missing Fauna Secret.
- Login or create a Fauna account.
- Create a new database.
- Issue a new key by selecting the Security label in the sidebar.
- Save this key as a
FAUNA_SECRETvariable in your forked repositories Secret Settings /settings/secrets - Save this key as the required
FAUNA SECRETin Zeit's template onboarding form.
This application registers as a customer GitHub OAuth application to perform the following actions:
- Verify members of your GitHub organization to access the managed dashboard.
- List the member directory of your GitHub organization
To create an set of OAuth Credentials:
- Navigate to https://github.com/settings/applications/new
- Fill out the following fields like so:
- Create a temporary Authorization callback URL. You will be required to change this later within the setup.
- Save the Client ID as the required
GITHUB OAUTH CLIENT IDin Zeit's template onboarding form. - Save the Client Secret as the required
GITHUB OAUTH CLIENT SECRETin Zeit's template onboarding form.
This application requires a registered Organization Webhook to be notified when a new branch has been created. The webhook created will be authenticated by a signed signature from a user provided secret.
To create an Organization Webhook:
- Be an Organization Owner
- Create a new Organization Webhook
https://github.com/organizations/{org-name}/settings/hooks/new - Fill out the following fields like so:
- Create a temporary Payload URL. You will be required to change this later within the setup.
- Assert that you only have Branch or tag creation selected.
- Save the Secret you generated as the required
GITHUB ORG HOOK SECRETin Zeit's template onboarding form.
The required GITHUB ORG ID is simply the string of your organization's name.
In previous steps we added a temporary Authorization callback URL and Payload URL. Once the deployment is complete you must replace these temporary values using the alias that Zeit provisioned (or one that you add manually).
Using https://clubhouse-sync.now.sh as an example:
- Navigate to the OAuth Application you created in the previous step. https://github.com/settings/developers
- Update the Authorization callback URL to
https://clubhouse-sync.now.sh/api/github/callback
- Navigate to the Organization Webhook you created in the previous step.
https://github.com/organizations/{org-name}/settings/hooks - Update the Payload URL to
https://clubhouse-sync.now.sh/api/github/webhook


