npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

balena-procbots

v3.21.22

Published

Process robots for automating CI pipelines

Readme

procbots

Process bots used for automating the development and deployment CI pipeline.

This README aims to get the reader up to speed with both running and developing ProcBots.

Installation

Run npm install in the root balena-procbots repository.

ProcBots uses a dynamic loader to execute its Client Bots. The PROCBOT_BOTS_TO_LOAD environment variable needs to be set to a valid ProcBot instance (the name of which corresponds to the bot names in lib/bots, eg. versionbot).

Other environment variables are required depending on the ProcBot being executed. Please see the section at the bottom of this README which has links to each individual bots own documentation.

balena-on-balena Deployment

Create new app, add appropriate git remote for balena.io.

gulp build
git push balena master

Appropriate environment variables are required before execution. See below.

Kubernetes Deployment

Deploying to a local K8 cluster (or to an already existing environment) requires a bit of implicit knowledge. A framework for doing this within balena exists. Please speak to DevOps.

Running Locally

PROCBOT_BOTS_TO_LOAD=<name> npm start

If the Client Bot listens to an external service (eg. Github, Front, Discourse, etc), then those services should have their webhook endpoints set to your local machine. This can be achieved via a proxy, such as ngrok. For example, the Github ServiceListener for VersionBot listens on port 4567. Running:

ngrok http 4567

Will produce an HTTPS url (eg. https://12345.ngrok.io) that can then be used as the Github App webhook URL.

Development

Developing ProcBots requires some core knowledge of the concepts behind them, see the Architecture document linked to at the bottom of this README for more information.

Security

Most Client Bots will require secure keys or tokens to operate. These should be passed as environment variables. This allows ProcBots to:

  • Stay open, without the need for any obfuscation or private submodules
  • Allow the security to become a deployment environment function

As the latter changes radically between deployment solutions, this allows the ProcBot framework itself to stay agnostic.

Building

Building tasks are implemented in gulp, and these tasks are defined in the gulpfile.js file.

gulp build will:

  • lint the codebase
  • Transpile the TypeScript source (in lib) into JavaScript (in build), copying any required definitions
  • Produce documentation (output to the docs directory as HTML)

Development itself is agnostic, but currently this repository includes a .vscode directory that has configuration for this editor. This has tasks setup, so buliding from within VSCode will automatically run the gulp tasks and then launch the ProcBots framework.

Testing

Testing is done using the mocha framework. Tests are containg withing the tests directory, which mimics the structure of the lib directory. Test files should end with .spec.ts.

To run the tests use npm test.

Contributions

Whilst this is a balena.io project, we welcome any contributions to the ProcBots project, including issue reports, ideas for features, new Client Bots, etc.

Architecture

The full architecture documentation.

VersionBot

SyncBot

KeyframeBot

NotifyBot