https://github.com/scriptkitties/perl6-irc-client-plugin-github
A plugin for Github functionality in IRC::Client projects
https://github.com/scriptkitties/perl6-irc-client-plugin-github
github-webhooks irc irc-bot perl6
Last synced: 6 months ago
JSON representation
A plugin for Github functionality in IRC::Client projects
- Host: GitHub
- URL: https://github.com/scriptkitties/perl6-irc-client-plugin-github
- Owner: scriptkitties
- Created: 2017-09-11T20:23:33.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-05T17:50:47.000Z (about 8 years ago)
- Last Synced: 2025-01-12T20:46:13.621Z (11 months ago)
- Topics: github-webhooks, irc, irc-bot, perl6
- Language: Perl 6
- Size: 28.3 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: readme.adoc
Awesome Lists containing this project
README
= IRC::Client::Plugin::Github
:toc: preamble
A plugin for Github functionality in IRC::Client projects.
== Features
This module is currently only handling Github notifications through the webhook
system.
=== Notifications through Github webhooks
Using https://github.com/Bailador/Bailador[Bailador] as webserver, the plugin
can act upon Github webhook calls. This means immediate notifications whenever
something happens on a configured repository.
== Usage
Install the module through https://github.com/ugexe/zef[zef]:
----
zef install IRC::Client::Plugin::Github
----
Sample setup for an `IRC::Client` project using `IRC::Client::Plugin::Github`:
[source,perl6]
----
use Config;
use IRC::Client;
use IRC::Client::Plugin::Github;
sub MAIN
{
my Config $config = Config.new;
.run with IRC::Client.new(
:nick,
:plugins(
IRC::Client::Plugin::Github.new(config => $config)
)
);
}
----
=== Configuration
Configuration is done using https://github.com/scriptkitties/p6-Config[Config].
My preferred way of configuration is with `toml` files, so that's what I'll use
here to layout the configuration options. If you want to use another style,
adapt as necesary and make sure there's a parser available and installed to use
with `Config`.
[source,toml]
----
# Set this to true to get more output on reasons why things might not be
# working for you.
debug = false
# General configuration of the plugin
[github.webhook]
# Which IP to bind Bailador to.
host = "0.0.0.0"
# Which port to bind Bailador to.
port = 8000
# Set the message-style to "notice" to send notices instead of PRIVMSGs
message-style = "privmsg"
# The default channels to send to. If no channels are configured on the
# repository's configuration key, this array will be used instead.
channels = ["#scriptkitties"]
# If set to true, it will notify for every repository that POSTs a payload to
# the Bailador instance. Note this could be abused to spam through the bot.
# When false, every repository should be properly defined if you want to see
# any notifications from it.
allow-unknown = false
# Every repository must be configured with a heading similar like this,
# "github.webhook.repos.", where the repo name is the `full-name`
# attribute on the `repository` key from the webhook payload. Every "/" in the
# `full-name` must be converted to a "-", in order to play nice with toml.
[github.webhook.repos.scripkitties-perl6-IRC-Client-Plugin-Github]
# An array of channels to post notifications in. Overrides the
# `default-channels` from `github.webhook` if set.
channels = ["#scriptkitties"]
----
== License
This sourcecode is distributed under the GPLv3 license.