Thanks for your interest in contributing to oss.gg
In this manual we'll walk you through the steps you need to take to get oss.gg and your own GitHub app up and running. It consists of four parts:
In the development environemnt we're using Personal Access Tokens to query the GitHub API. This is neccessary because the rate limit of GitHub can be quite strict so we need to decentralize the request amount:
Generate one and fill it in the env variable:
GITHUB_APP_ACCESS_TOKEN
Let's setup your oss.gg GitHub App 👇
You need to create your own GitHub app to test the oss.gg functionality you're developing and to make the GitHub SSO work locally:
Stay in your GitHub Account Settings -> Developer Settings -> GitHub Apps and Create a New App:
Set it up as follows:
http://localhost:3000/api/auth/callback
http://localhost:3000/manage-repos
(Check the Redirect on Update option)https://smee.io/
by clicking on Start a new channel and then paste the URL in the Webhook URL field..env
file (at the top of the page).env
file.env
fileFill in these env varibales with the data you get on the app detail page:
GITHUB_APP_CLIENT_ID=
GITHUB_APP_CLIENT_SECRET=
GITHUB_APP_WEBHOOK_SECRET
GITHUB_APP_ID
GITHUB_APP_SLUG
Lastly, you need to fill in the GITHUB_APP_PRIVATE_KEY
variable.
This key comes in a .pem file. Open it and copy the code enclosed in double quotes, like so:
To let the app manage the repo on your behalf it needs some permission:
Go to Permissions & events:
Set it up as follows:
Issues: Read & write
Metadata: Read only
Pull requests: Read & write
And subscribe to the following events:
All set 💪
git clone https://github.com/formbricks/oss.gg.git
cd oss.gg
pnpm install
.env.example
to .env
and fill in the required environment variables cp .env.example .env
There is a bunch of differnet env variables which aren't always neccessary. I've prefilled the ones most contributors likely don't need in the env-example.
The NEXTAUTH_SECRET
you can generate with the command written in the command below it.
pnpm dev
Run the Webhook Proxy. To be able to do that please run this first:
npm install -g smee-client
and then replace the SME path in the command below before you run it:
smee --url https://smee.io/<your-smee-path> --path /api/github-webhook --port 3000
Please follow this video: https://youtu.be/KkKwqcw-h-k
Please join our Discord and let us know so we can update this guide 🤓: oss.gg/discord