← Back to challenges

GitHub Issue to Discord

3 intermediate
GitHub Discord Webhooks API

Create a workflow that monitors GitHub issues and forwards them to Discord with rich formatting. Practice webhook handling, data transformation, and API integration.

Your Challenge

Core Functionality

Your workflow must:

  • Set up a Webhook Trigger node to receive GitHub issue events
  • Extract issue details: title, description, labels, author, issue number
  • Create a Discord embed message with proper formatting
  • Send the embed to a specified Discord channel using a webhook
  • Include a clickable link back to the original GitHub issue
  • Display issue labels with appropriate visual formatting

Error Handling

Your workflow should:

  • Validate incoming webhook payload structure
  • Handle missing or optional fields gracefully (e.g., issues without labels)
  • Catch and log Discord API errors (rate limits, invalid webhook)
  • Return appropriate HTTP status codes to GitHub (200 for success, 500 for errors)

Edge Cases

Your workflow should handle:

  • Handle issue descriptions longer than Discord's character limits (truncate appropriately)
  • Process issues with no description
  • Deal with special characters and markdown in issue text
  • Handle issues with many labels (prevent Discord embed overflow)

Bonus Challenges (Optional)

Take it further by:

  • Filter issues by specific labels before forwarding (e.g., only "bug" or "help wanted")
  • Add different embed colors based on issue priority or label
  • Include issue assignee information if available
  • Support multiple GitHub repositories routing to different Discord channels
  • Add reaction buttons or Discord interactions for issue triage

Tips & Hints

  • GitHub webhooks send JSON payloads - you'll need to parse them
  • Discord embeds support rich formatting with colors and fields
  • Consider filtering issues by label or repository
  • Use the Set node to restructure data before sending to Discord
  • Test with GitHub's webhook delivery history to replay events