Skip to content

Latest commit

History

245 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

oss.gg 🕹️

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:

  1. GitHub SSO Configuration (make the login with GitHub work)
  2. oss.gg Github App Setup (setup your own version of the oss.gg GitHub app)
  3. Run oss.gg server locally
  4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

1. GitHub Personal Access Token

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:

image

Generate one and fill it in the env variable:

GITHUB_APP_ACCESS_TOKEN

Let's setup your oss.gg GitHub App 👇

2. oss.gg Github App Setup

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:

image

Set it up as follows:

  • Callback URL: http://localhost:3000/api/auth/callback
  • Setup URL: http://localhost:3000/manage-repos (Check the Redirect on Update option)
  • Webhook set to Active and get a URL from https://smee.io/ by clicking on Start a new channel and then paste the URL in the Webhook URL field.
  • Disable SSL verification for now
  • Hit "Create GitHub App"
  • Copy the Client ID and keep it in the .env file (at the top of the page)
  • Generate a Client Secret and keep it in the .env file
  • Generate a Private Key and keep it in the .env file
  • Now Hit the Save Changes button

Fill 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_SECRETGITHUB_APP_IDGITHUB_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:

image

Setting up the GitHub App Permissions

To let the app manage the repo on your behalf it needs some permission:

Go to Permissions & events: image

Set it up as follows:

Issues: Read & write

image

Metadata: Read only

image

Pull requests: Read & write

image

And subscribe to the following events:

image

All set 💪

2. Run oss.gg server locally

  1. Clone the project
 git clone https://github.com/formbricks/oss.gg.git
cd oss.gg
  1. Install dependencies
 pnpm install
  1. Copy .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.

  1. Start the server
 pnpm dev
  1. 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

4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

Please follow this video: https://youtu.be/KkKwqcw-h-k

#Got stuck?

Please join our Discord and let us know so we can update this guide 🤓: oss.gg/discord

About

Gamify Open Source Contributions

Resources

Stars

82 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - formbricks/oss.gg: Gamify Open Source Contributions · GitHub
Skip to content

Latest commit

History

245 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

oss.gg 🕹️

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:

  1. GitHub SSO Configuration (make the login with GitHub work)
  2. oss.gg Github App Setup (setup your own version of the oss.gg GitHub app)
  3. Run oss.gg server locally
  4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

1. GitHub Personal Access Token

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:

image

Generate one and fill it in the env variable:

GITHUB_APP_ACCESS_TOKEN

Let's setup your oss.gg GitHub App 👇

2. oss.gg Github App Setup

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:

image

Set it up as follows:

  • Callback URL: http://localhost:3000/api/auth/callback
  • Setup URL: http://localhost:3000/manage-repos (Check the Redirect on Update option)
  • Webhook set to Active and get a URL from https://smee.io/ by clicking on Start a new channel and then paste the URL in the Webhook URL field.
  • Disable SSL verification for now
  • Hit "Create GitHub App"
  • Copy the Client ID and keep it in the .env file (at the top of the page)
  • Generate a Client Secret and keep it in the .env file
  • Generate a Private Key and keep it in the .env file
  • Now Hit the Save Changes button

Fill 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_SECRETGITHUB_APP_IDGITHUB_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:

image

Setting up the GitHub App Permissions

To let the app manage the repo on your behalf it needs some permission:

Go to Permissions & events: image

Set it up as follows:

Issues: Read & write

image

Metadata: Read only

image

Pull requests: Read & write

image

And subscribe to the following events:

image

All set 💪

2. Run oss.gg server locally

  1. Clone the project
 git clone https://github.com/formbricks/oss.gg.git
cd oss.gg
  1. Install dependencies
 pnpm install
  1. Copy .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.

  1. Start the server
 pnpm dev
  1. 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

4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

Please follow this video: https://youtu.be/KkKwqcw-h-k

#Got stuck?

Please join our Discord and let us know so we can update this guide 🤓: oss.gg/discord

About

Gamify Open Source Contributions

Resources

Stars

82 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - formbricks/oss.gg: Gamify Open Source Contributions · GitHub
Skip to content

Latest commit

History

245 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

oss.gg 🕹️

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:

  1. GitHub SSO Configuration (make the login with GitHub work)
  2. oss.gg Github App Setup (setup your own version of the oss.gg GitHub app)
  3. Run oss.gg server locally
  4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

1. GitHub Personal Access Token

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:

image

Generate one and fill it in the env variable:

GITHUB_APP_ACCESS_TOKEN

Let's setup your oss.gg GitHub App 👇

2. oss.gg Github App Setup

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:

image

Set it up as follows:

  • Callback URL: http://localhost:3000/api/auth/callback
  • Setup URL: http://localhost:3000/manage-repos (Check the Redirect on Update option)
  • Webhook set to Active and get a URL from https://smee.io/ by clicking on Start a new channel and then paste the URL in the Webhook URL field.
  • Disable SSL verification for now
  • Hit "Create GitHub App"
  • Copy the Client ID and keep it in the .env file (at the top of the page)
  • Generate a Client Secret and keep it in the .env file
  • Generate a Private Key and keep it in the .env file
  • Now Hit the Save Changes button

Fill 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_SECRETGITHUB_APP_IDGITHUB_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:

image

Setting up the GitHub App Permissions

To let the app manage the repo on your behalf it needs some permission:

Go to Permissions & events: image

Set it up as follows:

Issues: Read & write

image

Metadata: Read only

image

Pull requests: Read & write

image

And subscribe to the following events:

image

All set 💪

2. Run oss.gg server locally

  1. Clone the project
 git clone https://github.com/formbricks/oss.gg.git
cd oss.gg
  1. Install dependencies
 pnpm install
  1. Copy .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.

  1. Start the server
 pnpm dev
  1. 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

4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

Please follow this video: https://youtu.be/KkKwqcw-h-k

#Got stuck?

Please join our Discord and let us know so we can update this guide 🤓: oss.gg/discord

About

Gamify Open Source Contributions

Resources

Stars

82 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - formbricks/oss.gg: Gamify Open Source Contributions · GitHub
Skip to content

Latest commit

History

245 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

oss.gg 🕹️

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:

  1. GitHub SSO Configuration (make the login with GitHub work)
  2. oss.gg Github App Setup (setup your own version of the oss.gg GitHub app)
  3. Run oss.gg server locally
  4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

1. GitHub Personal Access Token

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:

image

Generate one and fill it in the env variable:

GITHUB_APP_ACCESS_TOKEN

Let's setup your oss.gg GitHub App 👇

2. oss.gg Github App Setup

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:

image

Set it up as follows:

  • Callback URL: http://localhost:3000/api/auth/callback
  • Setup URL: http://localhost:3000/manage-repos (Check the Redirect on Update option)
  • Webhook set to Active and get a URL from https://smee.io/ by clicking on Start a new channel and then paste the URL in the Webhook URL field.
  • Disable SSL verification for now
  • Hit "Create GitHub App"
  • Copy the Client ID and keep it in the .env file (at the top of the page)
  • Generate a Client Secret and keep it in the .env file
  • Generate a Private Key and keep it in the .env file
  • Now Hit the Save Changes button

Fill 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_SECRETGITHUB_APP_IDGITHUB_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:

image

Setting up the GitHub App Permissions

To let the app manage the repo on your behalf it needs some permission:

Go to Permissions & events: image

Set it up as follows:

Issues: Read & write

image

Metadata: Read only

image

Pull requests: Read & write

image

And subscribe to the following events:

image

All set 💪

2. Run oss.gg server locally

  1. Clone the project
 git clone https://github.com/formbricks/oss.gg.git
cd oss.gg
  1. Install dependencies
 pnpm install
  1. Copy .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.

  1. Start the server
 pnpm dev
  1. 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

4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

Please follow this video: https://youtu.be/KkKwqcw-h-k

#Got stuck?

Please join our Discord and let us know so we can update this guide 🤓: oss.gg/discord

About

Gamify Open Source Contributions

Resources

Stars

82 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - formbricks/oss.gg: Gamify Open Source Contributions · GitHub
Skip to content

Latest commit

History

245 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

oss.gg 🕹️

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:

  1. GitHub SSO Configuration (make the login with GitHub work)
  2. oss.gg Github App Setup (setup your own version of the oss.gg GitHub app)
  3. Run oss.gg server locally
  4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

1. GitHub Personal Access Token

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:

image

Generate one and fill it in the env variable:

GITHUB_APP_ACCESS_TOKEN

Let's setup your oss.gg GitHub App 👇

2. oss.gg Github App Setup

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:

image

Set it up as follows:

  • Callback URL: http://localhost:3000/api/auth/callback
  • Setup URL: http://localhost:3000/manage-repos (Check the Redirect on Update option)
  • Webhook set to Active and get a URL from https://smee.io/ by clicking on Start a new channel and then paste the URL in the Webhook URL field.
  • Disable SSL verification for now
  • Hit "Create GitHub App"
  • Copy the Client ID and keep it in the .env file (at the top of the page)
  • Generate a Client Secret and keep it in the .env file
  • Generate a Private Key and keep it in the .env file
  • Now Hit the Save Changes button

Fill 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_SECRETGITHUB_APP_IDGITHUB_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:

image

Setting up the GitHub App Permissions

To let the app manage the repo on your behalf it needs some permission:

Go to Permissions & events: image

Set it up as follows:

Issues: Read & write

image

Metadata: Read only

image

Pull requests: Read & write

image

And subscribe to the following events:

image

All set 💪

2. Run oss.gg server locally

  1. Clone the project
 git clone https://github.com/formbricks/oss.gg.git
cd oss.gg
  1. Install dependencies
 pnpm install
  1. Copy .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.

  1. Start the server
 pnpm dev
  1. 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

4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

Please follow this video: https://youtu.be/KkKwqcw-h-k

#Got stuck?

Please join our Discord and let us know so we can update this guide 🤓: oss.gg/discord

About

Gamify Open Source Contributions

Resources

Stars

82 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - formbricks/oss.gg: Gamify Open Source Contributions · GitHub
Skip to content

Latest commit

History

245 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

oss.gg 🕹️

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:

  1. GitHub SSO Configuration (make the login with GitHub work)
  2. oss.gg Github App Setup (setup your own version of the oss.gg GitHub app)
  3. Run oss.gg server locally
  4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

1. GitHub Personal Access Token

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:

image

Generate one and fill it in the env variable:

GITHUB_APP_ACCESS_TOKEN

Let's setup your oss.gg GitHub App 👇

2. oss.gg Github App Setup

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:

image

Set it up as follows:

  • Callback URL: http://localhost:3000/api/auth/callback
  • Setup URL: http://localhost:3000/manage-repos (Check the Redirect on Update option)
  • Webhook set to Active and get a URL from https://smee.io/ by clicking on Start a new channel and then paste the URL in the Webhook URL field.
  • Disable SSL verification for now
  • Hit "Create GitHub App"
  • Copy the Client ID and keep it in the .env file (at the top of the page)
  • Generate a Client Secret and keep it in the .env file
  • Generate a Private Key and keep it in the .env file
  • Now Hit the Save Changes button

Fill 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_SECRETGITHUB_APP_IDGITHUB_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:

image

Setting up the GitHub App Permissions

To let the app manage the repo on your behalf it needs some permission:

Go to Permissions & events: image

Set it up as follows:

Issues: Read & write

image

Metadata: Read only

image

Pull requests: Read & write

image

And subscribe to the following events:

image

All set 💪

2. Run oss.gg server locally

  1. Clone the project
 git clone https://github.com/formbricks/oss.gg.git
cd oss.gg
  1. Install dependencies
 pnpm install
  1. Copy .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.

  1. Start the server
 pnpm dev
  1. 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

4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

Please follow this video: https://youtu.be/KkKwqcw-h-k

#Got stuck?

Please join our Discord and let us know so we can update this guide 🤓: oss.gg/discord

About

Gamify Open Source Contributions

Resources

Stars

82 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - formbricks/oss.gg: Gamify Open Source Contributions · GitHub
Skip to content

Latest commit

History

245 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

oss.gg 🕹️

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:

  1. GitHub SSO Configuration (make the login with GitHub work)
  2. oss.gg Github App Setup (setup your own version of the oss.gg GitHub app)
  3. Run oss.gg server locally
  4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

1. GitHub Personal Access Token

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:

image

Generate one and fill it in the env variable:

GITHUB_APP_ACCESS_TOKEN

Let's setup your oss.gg GitHub App 👇

2. oss.gg Github App Setup

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:

image

Set it up as follows:

  • Callback URL: http://localhost:3000/api/auth/callback
  • Setup URL: http://localhost:3000/manage-repos (Check the Redirect on Update option)
  • Webhook set to Active and get a URL from https://smee.io/ by clicking on Start a new channel and then paste the URL in the Webhook URL field.
  • Disable SSL verification for now
  • Hit "Create GitHub App"
  • Copy the Client ID and keep it in the .env file (at the top of the page)
  • Generate a Client Secret and keep it in the .env file
  • Generate a Private Key and keep it in the .env file
  • Now Hit the Save Changes button

Fill 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_SECRETGITHUB_APP_IDGITHUB_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:

image

Setting up the GitHub App Permissions

To let the app manage the repo on your behalf it needs some permission:

Go to Permissions & events: image

Set it up as follows:

Issues: Read & write

image

Metadata: Read only

image

Pull requests: Read & write

image

And subscribe to the following events:

image

All set 💪

2. Run oss.gg server locally

  1. Clone the project
 git clone https://github.com/formbricks/oss.gg.git
cd oss.gg
  1. Install dependencies
 pnpm install
  1. Copy .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.

  1. Start the server
 pnpm dev
  1. 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

4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

Please follow this video: https://youtu.be/KkKwqcw-h-k

#Got stuck?

Please join our Discord and let us know so we can update this guide 🤓: oss.gg/discord

About

Gamify Open Source Contributions

Resources

Stars

82 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - formbricks/oss.gg: Gamify Open Source Contributions · GitHub
Skip to content

Latest commit

History

245 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

oss.gg 🕹️

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:

  1. GitHub SSO Configuration (make the login with GitHub work)
  2. oss.gg Github App Setup (setup your own version of the oss.gg GitHub app)
  3. Run oss.gg server locally
  4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

1. GitHub Personal Access Token

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:

image

Generate one and fill it in the env variable:

GITHUB_APP_ACCESS_TOKEN

Let's setup your oss.gg GitHub App 👇

2. oss.gg Github App Setup

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:

image

Set it up as follows:

  • Callback URL: http://localhost:3000/api/auth/callback
  • Setup URL: http://localhost:3000/manage-repos (Check the Redirect on Update option)
  • Webhook set to Active and get a URL from https://smee.io/ by clicking on Start a new channel and then paste the URL in the Webhook URL field.
  • Disable SSL verification for now
  • Hit "Create GitHub App"
  • Copy the Client ID and keep it in the .env file (at the top of the page)
  • Generate a Client Secret and keep it in the .env file
  • Generate a Private Key and keep it in the .env file
  • Now Hit the Save Changes button

Fill 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_SECRETGITHUB_APP_IDGITHUB_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:

image

Setting up the GitHub App Permissions

To let the app manage the repo on your behalf it needs some permission:

Go to Permissions & events: image

Set it up as follows:

Issues: Read & write

image

Metadata: Read only

image

Pull requests: Read & write

image

And subscribe to the following events:

image

All set 💪

2. Run oss.gg server locally

  1. Clone the project
 git clone https://github.com/formbricks/oss.gg.git
cd oss.gg
  1. Install dependencies
 pnpm install
  1. Copy .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.

  1. Start the server
 pnpm dev
  1. 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

4. Start the local instance of oss.gg with your GitHub test app and install oss.gg on test repository

Please follow this video: https://youtu.be/KkKwqcw-h-k

#Got stuck?

Please join our Discord and let us know so we can update this guide 🤓: oss.gg/discord

About

Gamify Open Source Contributions

Resources

Stars

82 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages