Skip to content

vapor/penny-bot

Folders and files

NameName
Last commit message
Last commit date
Feb 18, 2025
Jan 21, 2025
Feb 18, 2025
Feb 18, 2025
Dec 30, 2024
Jul 30, 2023
Feb 18, 2025
Mar 19, 2025
Dec 14, 2024
Dec 10, 2024
Dec 14, 2024
Dec 14, 2024
Dec 14, 2024
Jan 6, 2025
Mar 27, 2025
Jan 30, 2025
Feb 10, 2025

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.