Skip to content

Latest commit

 

History

History
81 lines (55 loc) · 2.17 KB

File metadata and controls

81 lines (55 loc) · 2.17 KB

Essentials

Essential packages to build, release, and run great software.

lerna Contributor Covenant

Example

// Create a Webex bot with Botkit.

const { Botkit } = require("botkit");
const { WebexAdapter } = require("botbuilder-adapter-webex");

const adapter = new WebexAdapter({
  access_token: "<BOT_ACCESS_TOKEN>",
  public_address: "<BOT_URL>",
  secret: "<BOT_SECRET>",
});

const controller = new Botkit({
  adapter,
  webhook_uri: "/api/messages",
});

// Use the product analytics middleware. 👇

const { Analytics } = require("@cisco/bot-middleware");

const analyticsMiddleware = new Analytics("<ANALYTICS_API_KEY>");
controller.middleware.receive.use(analyticsMiddleware.trackUserMessage);
controller.middleware.send.use(analyticsMiddleware.trackBotMessage);

Now basic properties from all messages are automatically ✨ sent to analytics, including:

  • message ID
  • message time
  • sender's domain, e.g., cisco.com
  • if the conversation is one-on-one or in a group
  • more!

Installation

Clone this repository.

Install its dependencies with uv.

cd essentials
uv sync --all-packages

Git Hooks

Install the pre-commit hooks to run linters and security checks automatically.

uv run pre-commit install --hook-type pre-push
uv run pre-commit install

This sets up two hooks:

  • pre-commit — trailing whitespace, EOF fixer, YAML/JSON/TOML checks, merge conflict detection, debug statements.
  • pre-push — Ruff (lint + format), Pylint + perflint, Bandit (security), TruffleHog (secrets).

TruffleHog must be installed separately:

brew install trufflehog

License

Apache 2.0