are a fantastic to help manage projects. Whether your repository is public or private, issues provide a great way to track tasks, enhancements, and of course, bugs. But, as we all know, , is So it would be great if we could bring some of the functionality of GitHub issues into Slack, where many people are spending a lot of their time anyway. GitHub issues tool software Slack Where Work Happens. This guide will walk you through setting up an API on that receives messages from GitHub, when issues are created or closed. Those messages then get sent to Slack, where people in the channel can stay up to date on what’s happening, or assign a maintainer to the issue. Standard Library If you’re not familiar with , we’re a serverless platform that enables everyone to build, ship, and integrate scalable APIs in a matter of seconds. With the help of our online development environment, you build and deploy right from your browser. Standard Library Code on Standard Library, Step 1: Create a Slack App Navigate to your , and click “ ” in the top-right corner of the screen. You should be redirected to a page labeled “ ” shortly. On the left side of the screen, you’ll see “ ” under the “ ” category. Slack app dashboard Create New App Basic Information Incoming Webhooks Features Incoming webhooks are the easiest way to post messages into Slack, on a per channel basis. They give you a unique URL that can post messages on behalf of your bot into a specific channel. Outside of creating them, there is no authentication needed to post messages, so make sure you keep it a secret. Enable incoming webhooks by clicking the toggle on the next screen. Scroll down to the section titled “ ” and click “ ”. Choose a channel and click “ ”. Webhook URLs for Your Workspace Add New Webhook to Workspace Authorize Note the “ ”, because it will be needed in just a moment. Webhook URL Step 2: Deploy the Issue Bot API With Slack all squared away, open up . If you click that link, a template for the issue-bot API will automatically open. If not, navigate to the “ ” tab and search for “ ”. Open to the file, and you’ll find three variables. Enter the Slack webhook URL from Step 1 into under the section. Code on Standard Library Community API Sources steve/issue-bot env.json SLACK_WEBHOOK_URL dev Now hit to deploy your API. You’ll be greeted with a “ ”, because your endpoint requires three parameters. The three parameters, , and, , will be provided by GitHub (for more on those, check out ). Speaking of GitHub, you’ll want to take note of the “ ” for your API, which you’ll give to GitHub. cmd/ctrl + R Parameter Error functions/__main__.js action issue repository these docs API Endpoint URL Step 3: Configure the GitHub Webhook Head over to the GitHub repo that you want to forward issues from, and click the “ ” tab on the far right of the screen. Once there, click the “ ” section on the left side of the screen. Settings Webhooks After clicking “ ” in the top right, you’ll be prompted to fill out a form. For the first part, enter the “ ” from Step 2 as the “ ”, and select “ ” as the content type. Add webhook API Endpoint URL Payload URL application/json After scrolling down a bit, you can choose which events to forward to your webhook. Opt to select individual events, and make sure to check “ ”. Issues Double check that the webhook is marked as “ and click “ ”. Now to test it out: head over to your GitHub repo and open an issue! Active” Add webhook The user, repository, and issue elements are all links that will open their respective pages in the browser. As it stands, your API is also configured to forward when an issue is closed. Go back to GitHub and close the issue you just opened. Step 4: Assigning Issues So now your team is up to date with the happenings of one of your repos. The next logical step would be assigning a maintainer to that issue, from Slack. In order to enable interactive messages in Slack, you need to go back to the app dashboard and navigate to the section titled “ ”, under the “ ” category. Once enabled you need to configure the “ ”. This will be the same as the “ ” from Step 2, but with added to the end. This will be the API endpoint that gets hit when a user assigns a maintainer. Interactive Components Features Request URL API Endpoint URL /assign/ The final step in Slack is to enable dynamic content. This will let the bot pre-populate a drop-down with a list of people eligible to be assigned to an issue. Scroll to the bottom of the “ ” page, to a section titled “ ”. As the “ ” enter the “ ” from Step 2, with added to the end. Interactive Components Message Menus Options Load URL API Endpoint URL /assign/list/ With interactive components set up, there is still some work to do on GitHub’s end. Assigning an issue to someone will require making an authenticated API call to GitHub, so you need to create an access token. Navigate to your and click on “ ” in the bottom left corner. From there, you want to click the last option on the left side, “ ”. profiles settings page Developer settings Personal access tokens On the next page, click “ . You’ll need to name the token, and give it a scope. The token needs repo access to assign issues, so select that. Generate new token” Once created, copy the token and go back to . Copy the token, as well as the username associated with the token, into the file under and . Code on Standard Library env.json GITHUB_TOKEN GITHUB_USERNAME Hit to redeploy your API. To test the new functionality create another issue, or better yet, go to your webhooks page for the repo and scroll down to “ ”. There you’ll see all the events that GitHub has sent out. Find the one generated when you opened your first issue and click “ cmd/ctrl + R Recent Deliveries Redeliver”. In just a moment you’ll see a new message in Slack, similar to the first but with a new drop-down. The drop-down will be populated with the GitHub usernames of the possible assignees (i.e. accounts with push access). Pick one, and after a moment the message will update to reflect the change. And of course, your GitHub issues page will show the new assignee. That’s All! I hope this tutorial has been helpful in showing you how easy it is to get started with . For other ideas on how to automate your workflow, combine various integrations, and more, you can check out more guides written by the team . If you have a neat idea you’d like to share, reach out to me directly by e-mail: , or follow the team and on Twitter. Standard Library here steve@stdlib.com Standard Library me Steve Meyer is a recent graduate of Oberlin College and Software Engineer at Standard Library. When he’s not programming, you can find him baking bread, or playing Red Dead Redemption II.