Integrations
GitHub Bot

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):

third party connections

Installation

  1. Install (opens in a new tab) the Holopin App on your repository (choose "select repositories" in the options)
  2. 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

holopin bot 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!

Last updated on March 16, 2023