AWS Amplify Discord Bot: "hey-amplify"
This repository contains the source code for the AWS Amplify Discord Server's bot!
Features
- auto-threads "help" channels; if a channel follows the
<category>-help
naming convention messages will automatically get converted into threads- thread data is tracked by title, original poster ID, and whether the thread is solved (
GET /api/questions
)
- thread data is tracked by title, original poster ID, and whether the thread is solved (
- dashboard component to visualize questions and channel "health"
- support for GitHub to Discord webhooks (used for posting release notes)
- command:
/admin mirror <repository>
accepts a REPOSITORY and posts the thread to GitHub Discussions - command:
/contribute
- accepts an Amplify project argument and returns the GitHub contribution URL - command:
/github
- accepts an Amplify project argument and returns the GitHub repository URL - command:
/giverole
- accepts a ROLE and USER argument to grant a role (NOTE: this command is disabled by default for@everyone
) - command:
/login
sends an ephemeral link to login to GitHub and link accounts - command:
/thread
- command suite for thread owners/thread rename <title>
- allows thread owners to rename their threads/thread archive
- allows thread owners to optionally archive their thread/thread solved
- allows thread owners to mark their question (thread) as "solved", which changes prepended?
with ✅/thread reopen
- allows thread owners to "reopen" their question (thread), which changes prepended ✅ with?
- supports multiple guilds
Getting Started
Pre-requisites:
- Node.js v18.x
- pnpm v7.13.1
Quick Start
gh repo fork aws-amplify/discord-bot
pnpm setup-dev
- Using
.env.sample
as a template, create a.env
file and add necessary Discord environment values - Run the application with
pnpm dev
- As the server owner navigate to
http://localhost:3000/
, log in, and visit/admin
to configure the instance
Setting up a Discord Bot
-
(optional) create a new Discord server or create from the AWS Amplify Discord server template
-
Make note of the App ID to add the bot to your Discord server using the following URL
https://discord.com/api/oauth2/authorize?client_id=<app-id>&permissions=335812774976&scope=bot%20applications.commands
-
Enable OAuth and add
http://localhost:3000/api/auth/callback/discord
as a redirect -
Make note of the OAuth secrets and populate
.env
Required Bot Permissions
The URL noted in step 2 above has the permissions integer of 335812774976
which includes the following bot permissions:
Contributing
Learn how to get started with our contribution guide