Commit Graph

49 Commits

Author SHA1 Message Date
Luca Bigliardi 4d0f1f26b0 Graceful disconnect upon context cancel
Make sure the underlying library context cancellation happens only
after the session has been shutdown.

Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-27 17:29:54 +01:00
Luca Bigliardi 882cecd6a6 simplify half connected test
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-27 17:27:35 +01:00
Luca Bigliardi 2990b5a309 fix ghost test
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-27 15:52:48 +01:00
Luca Bigliardi 0ec08d5ea1 stop storing context received from outside
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-27 12:35:38 +01:00
Luca Bigliardi e8f5109703 rename test server to avoid bundling with binary
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-27 02:21:41 +01:00
Luca Bigliardi 0b2fbef1f2 new channel management logic
this should handle bans and kicks a bit better

Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-27 00:49:16 +01:00
Luca Bigliardi c22e7a0c84 stop using multiple channels in basic conn/auth tests
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-27 00:15:35 +01:00
Luca Bigliardi 4e0b0497f4 move channel-specific tests to new management object
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-26 23:52:07 +01:00
Luca Bigliardi 9690575d68 refactor: move test server in separate file
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-26 23:08:07 +01:00
Luca Bigliardi 9cdffc1dba refactor: separate func for goirc config creation
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-26 23:03:21 +01:00
Luca Bigliardi 7c999191d7 split channel management in separate object
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-26 22:53:46 +01:00
Luca Bigliardi cba9deb152 refactor: separate func for handlers registration
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-26 12:40:44 +01:00
Luca Bigliardi cb65b4d28d Add factory-like interface to generate Delayers
Will be used to inject fake delayers in objects created during tests

Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-26 12:34:36 +01:00
Luca Bigliardi bc13e4be9c Move Delayer/Backoff stub in its own file
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-25 23:28:13 +01:00
Luca Bigliardi 94ccf2ebd7 rename: ctx, stopCtx
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-22 16:00:03 +01:00
Luca Bigliardi 9c53b88cd9 syntax refactor: use shorter object name in methods
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-21 19:48:19 +01:00
Luca Bigliardi 9f86b35aa5 Update go version list used in github workflows
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-03 16:42:20 +01:00
Luca Bigliardi a1b44d6ba9 Use goirc ConnectContext
Use newly added ConnectContext function.

Note: This is using a yet-to-be-released goirc module version obtained
with "go get -u github.com/fluffle/goirc@master"

Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-03 16:13:34 +01:00
Luca Bigliardi 4fd4adb893 Update modules info
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-03-03 16:08:33 +01:00
Luca Bigliardi 1eeb4dda9c Prevent race condition in TestConnectErrorRetry
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-02-24 20:45:52 +01:00
Luca Bigliardi 2471b866f1 Stop sending messages while disconnected
Make sure the session is up before consuming alert messages.
Also, split main run loop for readability.

Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-02-24 17:17:46 +01:00
Luca Bigliardi 82af7c1f69 Add Context support to Backoff
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-02-24 17:14:40 +01:00
Luca Bigliardi bde6681de9 Use Context and WaitGroup for routines coordination
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-02-24 15:49:33 +01:00
Luca Bigliardi b63d4e99a2 fix typo
Signed-off-by: Luca Bigliardi <shammash@google.com>
2021-02-20 11:17:54 +01:00
Luca Bigliardi 1ef886d2e7
Merge pull request #11 from filippog/alerts-channel
Make alert channel size configurable (and bigger)
2020-11-25 17:19:55 +01:00
Filippo Giunchedi f03c45406c Make alert channel size configurable (and bigger)
Signed-off-by: Filippo Giunchedi <filippo@wikimedia.org>
2020-11-25 16:06:12 +01:00
Luca Bigliardi 60b1c5eb64 Add Path/Query Escape functions
Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-11-10 11:01:49 +01:00
Luca Bigliardi c07a4e5288 deduplicate format test code
Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-11-10 10:41:20 +01:00
Luca Bigliardi aa63009ab4 Support environment variables in the config file
Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-11-05 16:44:56 +01:00
Luca Bigliardi 826f088241 Handle IRC server password
Introduce optional config parameter 'irc_host_password' to specify the
IRC server password.

Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-11-05 11:05:15 +01:00
Luca Bigliardi 91da0c3744 move to github actions
Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-11-05 10:16:56 +01:00
Luca Bigliardi d89858e51c
Merge pull request #10 from filippog/template-functions
Introduce template functions
2020-11-05 09:50:55 +01:00
Luca Bigliardi acb31ccd03 add strings functions test
Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-11-05 09:48:02 +01:00
Filippo Giunchedi 1eb6c5e397 format: add string functions 2020-10-28 17:54:30 +01:00
Filippo Giunchedi 767cb9fb8e Refactor message formatting functionality 2020-10-28 17:54:20 +01:00
Luca Bigliardi b62dde73d4 Add basic monitoring instrumentation
Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-03-05 11:58:39 +00:00
Luca Bigliardi d51a33f4e7 Update modules
Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-03-05 11:57:58 +00:00
Luca Bigliardi 96acecb3a5 Use safe host / channel default
Use nonexistent irc server and empty channel list as default config
options to avoid unwanted surprises when testing the bot.

Addresses https://github.com/google/alertmanager-irc-relay/issues/5

Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-03-05 09:12:02 +00:00
Luca Bigliardi c122337b53 Add config option to skip SSL certs checks
This addresses https://github.com/google/alertmanager-irc-relay/issues/3

Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-03-05 08:49:31 +00:00
Luca Bigliardi 286efdd365 Update modules
Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-03-05 08:47:44 +00:00
Luca Bigliardi 26ff8a17be
Merge pull request #2 from gouthamve/send_upstream
Minor cleanup
2020-02-01 00:17:44 +00:00
Ben Kochie 7926f9d7c3
Add Go modules vendoring.
Signed-off-by: Ben Kochie <superq@gmail.com>
2020-01-30 17:43:17 +01:00
Goutham Veeramachaneni 219d3672b7
Clean up so that lint would pass
Signed-off-by: Goutham Veeramachaneni <gouthamve@gmail.com>
2020-01-30 17:38:45 +01:00
Luca Bigliardi ae6594c606 Add config option to deliver alerts with PRIVMSG
Add `use_privmsg` config option to deliver alerts with PRIVMSG instead
of the default NOTICE.

This addresses a use case described in
https://github.com/google/alertmanager-irc-relay/pull/1 .

Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-01-25 18:03:13 +00:00
Luca Bigliardi 4e1aeaf931 s/notice/msg/
Use a more generic name as there is soon going to be support for PRIVMSG
(see https://github.com/google/alertmanager-irc-relay/pull/1 for
background).

This introduces a backward-incompatible change in the config file for
these two parameters:
- notice_template -> msg_template
- notice_once_per_alert_group -> msg_once_per_alert_group

I am not introducing the new parameters with a deprecation plan since
both parameters are relatively secondary to the core functioning of the
bot (and this is a free time project after all).

Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-01-25 16:42:59 +00:00
Luca Bigliardi 581677b635 Update tests to handle new fingerprint field
Signed-off-by: Luca Bigliardi <shammash@google.com>
2020-01-25 16:16:10 +00:00
Luca Bigliardi aebe137d2e Add basic CircleCI config
Signed-off-by: Luca Bigliardi <shammash@google.com>
2018-06-07 15:07:38 +01:00
Luca Bigliardi 60632b16e6 Initial code check-in
Signed-off-by: Luca Bigliardi <shammash@google.com>
2018-05-21 15:49:47 +01:00
Luca Bigliardi 522822e703 Initial commit
Signed-off-by: Luca Bigliardi <shammash@google.com>
2018-05-21 15:11:55 +01:00