Skip to content

The code that runs Penny 🤖

Notifications You must be signed in to change notification settings

vapor/penny-bot

Repository files navigation

Penny Penny

Penny is a Swift bot that works for the Vapor community.

Team Chat Tests CI Deploy Lambdas CI Deploy Penny CI Swift 6.0+

Features

  • Give coins to the members when they're "thanked".
  • Automatically ping members based on the ping-words they have set up.
    • Implemented as /auto-pings slash command.
  • Respond to certain command-texts with predefined answers.
    • Implemented as /faqs slash command.
  • Automatically respond to commonly asked questions.
    • Implemented as /auto-faqs slash command.
  • Automate SemVer releases and report on Discord.
  • Report GitHub PRs and Issues on Discord.
  • Report Swift evolution proposals on Discord.
  • Report Swift releases on Discord.
  • Report StackOverflow questions on Discord.
  • Connect members' Discord & GitHub accounts for better integrations.
  • Thank members when they contribute to Vapor repositories.
  • Manage sponsor/backer status of GitHub users.

Automatic Releases

Penny detects usage of specific labels in PRs and tries to act accordingly and automatically tag a new release when an applicable PR is merged.

The related labels are:

  • semver-patch
  • semver-minor
  • semver-major
  • semver-noop
  • release
  • prerelease
  • no-release-needed

Some other notes:

  • semver-major and release are of limited use for automatic releases. Penny won't do a whole major release by itself since those are rare and they can be risky to do.
  • Use prerelease label in combination with another semver label like semver-patch to make sure Penny can correctly create a prerelease, when a prerelease is needed.
    • For example when you have a v5.0.0-alpha.1 release and want Penny to tag v5.0.0-alpha.2 next.
  • Try to use no-release-needed or semver-noop when no release is needed.