{"id":28625496,"url":"https://github.com/inngest/olotl","last_synced_at":"2025-06-12T08:10:48.538Z","repository":{"id":60014681,"uuid":"532130666","full_name":"inngest/olotl","owner":"inngest","description":"Add temporary pull request threads to Discord for faster merging ","archived":false,"fork":false,"pushed_at":"2024-09-01T08:24:47.000Z","size":842,"stargazers_count":7,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-06T02:45:03.406Z","etag":null,"topics":["discord","github"],"latest_commit_sha":null,"homepage":"olotl-4ghr.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inngest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-09-03T02:07:29.000Z","updated_at":"2024-09-18T13:33:04.000Z","dependencies_parsed_at":"2023-10-05T03:09:49.950Z","dependency_job_id":"7f54e2a8-6aa6-4b2a-9452-11bafa6688a2","html_url":"https://github.com/inngest/olotl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/inngest/olotl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inngest%2Folotl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inngest%2Folotl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inngest%2Folotl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inngest%2Folotl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inngest","download_url":"https://codeload.github.com/inngest/olotl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inngest%2Folotl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259427072,"owners_count":22855564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["discord","github"],"created_at":"2025-06-12T08:10:47.809Z","updated_at":"2025-06-12T08:10:48.517Z","avatar_url":"https://github.com/inngest.png","language":"TypeScript","readme":"# Discord PR management: olotl\n\nThis is an open-source set of functions built using NextJS and the **[Inngest SDK](https://github.com/inngest/inngest-js)**\nwhich deploy to [Inngest](https://inngest.com/), allowing you to coordinate pull requests within single-use ephemeral channels in Discord.\n\nThink of this as a free, open-source version of [Axolo](https://axolo.co/) for discord.\n\nThis lets you:\n\n- Create new temporary threads for each PR\n- Be notified when PRs are reviewed, updated, or switched from draft within Discord\n- Communicate and chat easily on code changes\n- Merge and ship features faster via increased collaboration.\n\n\u003cbr /\u003e\n\n## Deploying\n\nTo deploy:\n\n1. Clone this repo\n2. Deploy to your provider of choice\n3. [Register your functions with Inngest](https://www.inngest.com/docs/deploy#registering-live-functions-with-inngest)\n\nThe functions will be deployed, ready to run from any GitHub event as soon as the events\nare triggered.\n\n\u003cbr /\u003e\n\n**Configuring Github webhooks**\n\n1. Create a new [Github webhook within Inngest](https://app.inngest.com/sources/new)\n2. Copy the generated URL as a webhook into your target repos.\n\nThat's it!  Events from Github will start flowing through to Inngest, automatically triggering\nany functions that respond to those events.  Now in order for our functions to succeed, we need\nto give them auth access to Discord.\n\n\u003cbr /\u003e\n\n**Configuring your Discord channels**\n\nYou'll need to make your own Discord bot to grant your functions access to your server.\n\n1. Pop on over to [Discord Developers](https://discord.com/developers/applications) and make an app with a bot.\n2. Connect your server via the URL generator with access to:\n  - Manage channels\n  - Send messages\n  - Create public threads\n  - Send mesasges in threads\n  - Manage messages\n  - Manage threads\n  - Mention everyone\n3. Copy the bot token and add it as a secret to Inngest, with the name of `DISCORD_TOKEN`.  Be sure to prefix the bot token with Bot: `Bot your-token`.\n4. Copy your guild ID (server ID) as a secret to Inngest, with the name of `DISCORD_GUILD_ID`. \n5. Copy the channel ID which will house the threads to Inngest, with the name of `DISCORD_CHANNEL_ID`.\n\nSee .env for an example of the secrets to save.\n\n\n## How it works\n\nThis repo uses [Inngest](https://www.inngest.com) to receive events from GitHub via webhooks.\n\nThe functions in this repo are event-driven:  they declaratively specify the events that\ntrigger them within their `inngest.json` files.\n\nEach time Inngest receives an event, it checks which functions should run and automatically\nexecutes the serverless function.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finngest%2Folotl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finngest%2Folotl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finngest%2Folotl/lists"}