Holopin GitHub bot
A Holopin integration for GitHub, allowing Holopin organizations to easily reward your community members directly in Issue, PR and Discussion conversations.
Example use cases:
- Rewarding contributors
- Recognizing community helpers
- Welcoming new members
- Encouraging good practices, eg. rewarding those who provide comprehensive bug reports, error stack traces, fully scoped out feature suggestions
Getting started
Prerequisites
Repo maintainer(s) need to members of the Holopin organization whose stickers they are issuing.
Issuers should also have their personal Holopin accounts linked with GitHub. You can manage your Third party connections in your Account settings (opens in a new tab):
Installation
- Install (opens in a new tab) the Holopin App on your repository (choose "select repositories" in the options)
- Create a
.github/holopin.yml
config file in the repository
Configuration
Create a .github/holopin.yml
file that looks a little like:
organization: # org name on holopin
defaultSticker: # sticker ID
stickers:
- id: # sticker id
alias: # shorthand-string
- id:
alias:
# more stickers
Usage
Method 1: Tagging the bot in conversation
Issuing badges
Once you have the app configured on your repository, you can issue badges to a contributor by tagging @holopin-bot
and the recipient's GitHub @username
in an Issue or a PR thread.
Note: To issue a holobyte or a badge, you must be an administrator or the owner of the Holopin organization.
Issue the default badge:
Thank you for your help (...)! @holopin-bot @username
Or by alias:
Thank you for your help (...)! @holopin-bot @username
sticker-alias
Issuing Holobytes
Holobytes are issued and claimed using the same methods as badges, but they are more powerful and require a bit more configuration.
organization: holopin
defaultSticker: cl7td8iq6014809k0mf12i1e6
stickers:
- id: cl7td8iq6014809k0mf12i1e6
alias: deserves-badge
# more stickers
holobytes:
- evolvingStickerId: #evolving sticker ID; optional
alias: # some alias
icon: # some icon; if unspecified or invalid defaults to something
from: # optional; defaults to false, if true, assigns a fromAlias as their github username and fromUrl as github.com/username
in: # optional; defaults to false, if true, assigns url as the issue/pr url, and urlAlias as <githuborg>/<repo> or <githubusername>/<repo>
# below is an example of a list item without an evolvingStickerId
- alias: # some alias
icon: # some icon; if unspecified or invalid defaults to something
from: # optional; defaults to false, if true, assigns a fromAlias as their github username and fromUrl as github.com/username
in: # optional; defaults to false, if true, assigns url as the issue/pr url, and urlAlias as <githuborg>/<repo> or <githubusername>/<repo>
Evolving Stickers
Evolving Stickers are a type of badge that progress along with the user. They work by evolutions, each requiring a set amount of holobytes. But that's not related to us, we're focused on the issuing bits.
To count a holobyte towards a user's progress in an evolving sticker, you simply need to add its ID to the evolvingStickerId
field on a holobyte in the holobytes
list.
Claiming
Holopin bot will respond directly in the issue with a unique claim URL reserved for that specific GitHub user:
Congratulations @username, you just earned a badge! Here it is: holopin.io/claim/dfgyhjk This badge can only be claimed by you, so make sure that your GitHub account is linked to your Holopin account. You can manage those preferences here: holopin.io/account. Or if you're new to Holopin, you can simply sign up with GitHub, which will do the trick!
Method 2: Issue labels
Works exactly the same as Method 1, but instead of tagging, the holopin-bot
is called out upon labelling the issue with the label that corresponds to a sticker alias specified in your holopin.yaml
. The recipient will be the user who created the issue.
Support
If you have any questions, feel free to ask us over at support@holopin.io
Note: Holobyte support is currently in testing, and it may not work as expected!