Skip to main content
Version: 1.4

Quick start

Botkube provides a quick start repository to start developing Botkube source and executor plugins in Go. It has all batteries included; example plugins:

  • The echo executor that sends back the command that was specified,
  • The ticker source that emits an event each time the configured time duration elapses,
  • The forwarder source that echos the message sent as an incoming webhook request.

and two example release jobs:

Use template

  1. Navigate to botkube-plugins-template.

  2. Click "Use this template", next "Create a new repository"

    Create Repo

    This creates your own plugin repository with a single commit.

  3. After a few seconds, the .github/workflows/setup.yml job will create a new commit. This job removes Kubeshop related files, such as:

    • CONTRIBUTING.md
    • CODE_OF_CONDUCT.md
    • LICENSE
    • SECURITY.md
    • .github/CODEOWNERS

    Additionally, it updates links in README.md to point to your own repository instead of Kubeshop's one. In case of job failure, you need to make and commit those changes manually.

    This job runs only once, later you can remove it or disable it.

  4. Decide which release job you prefer, the GitHub releases, or GitHub pages. Once decided, remove one the above workflow in your new repository:

    • GitHub releases, defined at .github/workflows/release.yml in your GitHub repository.
    • GitHub Pages, defined at .github/workflows/pages-release.yml in your GitHub repository.

    If you pick the GitHub Pages, a further configuration is needed:

    1. In project settings, enable publishing GitHub Pages via GitHub Action.
    2. Adjust the github-pages deployment environment. You can either:
      • remove the deployment environment if you don't need any protection rules
      • add an environment protection rule so that you can deploy pages on each new tag. If you use tagging like vX.Y.Z, you can add the v* rule. As an alternative, can select All branches from the dropdown.
  5. Add LICENSE file and update the README.md file to describe the plugins that you created.