# irccat

**Category:** Standalone_Bot
**Original Author:** RJ (Unknown)

## Description
irccat is a reimplementation of the original ChatOps tool in Go. It allows sending events to IRC channels from scripts or other applications, supporting both TCP and HTTP protocols.

## Key Features
- Supports sending messages via TCP port.
- Handles IRC commands through environment variables.
- Configurable IRC connection settings including TLS and SASL authentication.
- Webhook support for GitHub and Grafana notifications.
- Customizable channel topics and nicknames.

## File Analysis
- **command_handler.py** — command handler script that processes incoming IRC commands.
- **webhook_test.py** — test script for sending webhooks to various endpoints.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — documentation for the project, including installation and usage instructions.
- **.gitignore** — files and directories to be ignored by Git.
- **.travis.yml** — configuration file for continuous integration using Travis CI.
- **Dockerfile** — Docker build script for creating a production-ready binary.
- **auth.go** — authentication logic for IRC channel access.
- **command.go** — command handling and execution logic.
- **irc.go** — IRC connection and event handling code.
- **main.go** — entry point of the application.
- **colours.go** — color formatting functions for IRC messages.
- **dispatcher.go** — message dispatching to IRC channels.
- **generic.go** — HTTP listener for generic POST requests.
- **github.go** — GitHub webhook handler.
- **grafana.go** — Grafana alert handler.
- **templates.go** — template rendering logic for webhooks.
- **tcplistener.go** — TCP listener for incoming messages.
- **string.go** — string manipulation functions.
- **string_test.go** — test cases for string manipulation functions.
- **irccat.json** — configuration file for the application.
- **issue_comment.json** — sample GitHub issue comment event payload.
- **issues.json** — sample GitHub issue opened event payload.
- **pull_request.json** — sample GitHub pull request closed event payload.
- **push.json** — sample GitHub push event payload.
- **release.json** — sample GitHub release published event payload.