Commit graph

253 commits

Author SHA1 Message Date
421e85cb0b refactor: extract alerts into own actor 2024-08-03 12:59:40 +01:00
9a2fa2e8a5 feat: add support for desktop notifications
Closes: kemitix/git-next#119
2024-08-03 12:59:40 +01:00
dc3c55f570 docs: add example to readme for listen, shout & storage 2024-08-02 19:06:39 +01:00
637abb50cd fix: add example email config to server default template 2024-08-02 19:06:39 +01:00
6bc4b7b143 docs: add config details for sending emails 2024-08-02 18:47:05 +01:00
9fb70f98d6 test: update tests to check for email config parsing 2024-08-02 18:47:05 +01:00
474a9b5aaa chore: release
Signed-off-by: Paul Campbell <pcampbell@kemitix.net>
2024-08-02 08:58:19 +01:00
12a2981ab5 feat: send email notifications (sendmail/smtp)
Closes kemitix/git-next#114
2024-08-02 07:36:11 +01:00
538728c491 feat!: restructured server config into listen & shout sections
Groups 'http' and 'webhook' sections under 'listen'.

Renames 'notification' section as 'shout'.
2024-08-01 07:56:31 +01:00
8df7600053 feat: remove notification.type
This makes it easier to specify multiple types of notifications,
rather than a single type.
2024-07-31 06:56:04 +01:00
7b64e300b6 feat!: reduce the max commit dev can be ahead of main
From 50 to 25.

Aim to make this a configuration option from git-next-server.toml
2024-07-30 16:40:39 +01:00
f6bc2e1283 feat: terminate process if config file is invalid 2024-07-30 16:27:24 +01:00
1650e93920 feat: return better errors to user on server failure 2024-07-30 11:18:29 +01:00
9a9c73d929 feat: return better errors to the user on init 2024-07-30 11:18:29 +01:00
e58ba94d97 chore: remove deprecated crates 2024-07-29 08:59:32 +01:00
b7abe949e2 fix: make default server config example valid
Included some comments to help configure the file.

Closes kemitix/git-next#115
2024-07-29 08:16:16 +01:00
e56d6a3ebb fix: remove requirement for RUSTFLAGS to be set
Closes kemitix/git-next#116
2024-07-29 08:07:39 +01:00
691a733fc3 fix: webhook secret doesn't need to be base64 encoded
Closes kemitix/git-next#118
2024-07-29 07:51:09 +01:00
d2ea93f05e feat: avoid resetting next to main when dev is ahead of main
When dev is not based on next, next is reset to main, however, it should
reset to the next commit towards dev when when is ahead of main.

Closes kemitix/git-next#111
2024-07-28 20:32:08 +01:00
991d0d1a08 docs: add missing notification config details 2024-07-28 18:29:20 +01:00
a56c6df3f1 feat: support macOS
Closes kemitix/git-next#108
2024-07-28 16:26:39 +01:00
11de4efae6 docs: add missing readme for git-next-core
Closes kemitix/git-next#112
2024-07-28 13:54:25 +01:00
57458173d0 refactor: merge forge crate into cli crate 2024-07-28 13:35:26 +01:00
c1981d862c refactor: merge repo-actor crate into cli crate 2024-07-28 12:18:15 +01:00
12ecc308d5 refactor: merge webhook-actor crate into cli crate 2024-07-27 19:06:20 +01:00
366930bcfc refactor: merge file-watcher-crate into cli crate 2024-07-27 19:06:20 +01:00
9ca532a2b4 refactor: merge file-watcher-crate into cli crate 2024-07-27 18:51:05 +01:00
a679abeafc refactor: merge server-actor crate into cli crate 2024-07-27 08:27:04 +01:00
1427284c2a refactor: merge server crate into cli crate 2024-07-27 08:11:52 +01:00
5a595ec9ee chore: remove deprecated crates
These crates have been merged into git-next-core, and tombstones
published to crates.io.
2024-07-27 08:00:06 +01:00
3ae113212a fix: don't log content of internal messages 2024-07-27 07:03:52 +01:00
2ec5ae1d51 tests: restore unlinked test file 2024-07-26 19:18:12 +01:00
fa5fa809d9 refactor: merge git create into core crate 2024-07-26 07:59:37 +01:00
b8f4adeb50 fix: remove unused dependecy from file-watcher-actor 2024-07-25 22:46:19 +01:00
768ec6ae02 docs: update package graph 2024-07-25 22:44:11 +01:00
ab728c7364 refactor: merge config crate into core crate 2024-07-25 21:08:16 +01:00
48c968db2d refactor: merge actor-macros into core
Starting to flatten the crates.
2024-07-25 07:37:29 +01:00
758ca5c2dc docs: update message graph for repo-actor 2024-07-24 08:35:29 +01:00
9e12f5eb5d feat: post webhook notifications to user
Closes kemitix/git-next#91
2024-07-23 20:40:01 +01:00
288c20c24b feat: dispatch NotifyUser messages to server for user (2/2) 2024-07-23 20:39:02 +01:00
4978400ece refactor: use Option<&T> over &Option<T> 2024-07-23 20:38:58 +01:00
bcf57bc728 feat: dispatch NotifyUser messages to server for user (1/2) 2024-07-23 20:38:54 +01:00
e9877ca9fa feat: support sending messages to the user 2024-07-23 20:38:51 +01:00
c86d890c2c feat: enable configuration of a webhook for receiving notifications 2024-07-23 20:38:29 +01:00
1690e1bff6 docs: document Notifications to user 2024-07-23 20:37:08 +01:00
8f95ae0058 refactor: extract messages and handlers modules from webhook-actor 2024-07-19 07:48:55 +01:00
ba67b1ebcb refactor: flag internally that dev not based on main will require used intervention
Preparation for when we will be sending user notifications
2024-07-16 20:00:29 +01:00
92ebd45307 refactor: Reduce cognitive complexity of 'validate_position'
Closes kemitix/git-next#83
2024-07-16 19:59:11 +01:00
c104dfedc1 refactor: Reduce cognitive complexity of WebhookNotification handler. 2/2
Closes kemitix/git-next#49
2024-07-16 18:33:45 +01:00
06292c2711 refactor: Reduce cognitive complexity of WebhookNotification handler. 1/2
Closes kemitix/git-next#49
2024-07-16 18:14:32 +01:00
33907a1d32 feat: reload server config when file is touched
Closes kemitix/git-next#84
2024-07-16 07:14:57 +01:00
f44865fa92 docs: add UnRegisterWebhook from RepoActor 2024-07-15 07:53:14 +01:00
b715755b91 feat: unregister webhooks form forge during shutdown
Closes kemitix/git-next#46
2024-07-15 07:39:06 +01:00
6c92f64f8b docs: add readmes to each crate to direct users to main crate
Closes kemitix/git-next#106
2024-07-14 20:58:58 +01:00
6981a7b5e3 docs: move main README into cli crate 2024-07-14 20:54:17 +01:00
69211a87a3 build: add more metadata for crates.io 2024-07-14 20:47:19 +01:00
e2b545ae39 fix: move default.toml inside crate that uses it 2024-07-14 20:22:32 +01:00
639e561be6 fix: move server-default.toml inside crate that uses it 2024-07-14 20:22:32 +01:00
adf56c1b38 revert: fix: explicitly specify version in each crate
This reverts commit cd93d047cb.
2024-07-14 16:39:17 +01:00
cd93d047cb fix: explicitly specify version in each crate
crates.io doesn't appear to like taking the version from the workspace
crate
2024-07-14 14:24:41 +01:00
c289617ba9 fix: typo and missing repository entry in Cargo.toml files 2024-07-14 13:32:07 +01:00
e410cfc4f1 chore: add license and descriptions for each crate 2024-07-14 10:40:34 +01:00
10e63894c2 docs: server-actor: add readme showing message paths 2024-07-13 08:16:24 +01:00
57a614bad3 fix: don't modify config of external repos
The git config files of external repos are read-only.

This is the only place where we make reference to a remote named
'origin', so this also closes kemitix/git-next#85.

Closes kemitix/git-next#85
2024-07-12 18:52:57 +01:00
5f36282667 feat: recheck failed status
Should a status check for a transient reason and is re-run, this will
allow that to be detected without the need to restart the git-next
server or force a spurious rebase.

Closes kemitix/git-next#88
2024-07-12 08:05:41 +01:00
fd762e2bd2 feat: perform controlled shutdown on ctrl-c
Closes kemitix/git-next#94

Controlled shutdown includes attempting to unregister webhooks.
2024-07-11 19:19:04 +01:00
681b2c4c10 refactor: split messages and handlers for server-actor 2024-07-11 19:19:01 +01:00
7578ab3144 feat: log as an error when webhook url ends with a slash
Closes kemitix/git-next#87
2024-07-11 19:18:58 +01:00
7212154037 refactor: split ReceiveServerConfig handler
First handler, with original name, validates the server config.

The new second handler, ReceiveValidServerConfig, can then (re)start the
server without needing to validate the settings.
2024-07-11 19:18:55 +01:00
4276964f4d refactor: split server storage creation out from startup
Closes kemitix/git-next#75
2024-07-11 19:18:50 +01:00
9c20e780d0 feat: update auth of interal repos when changed in config
Closes kemitix/git-next#100
2024-07-10 09:05:36 +01:00
df352443b7 feat: GitDir tracks when repo is cloned by git-next 2024-07-06 15:08:13 +01:00
4e60be61f7 refactor: extract git::repository::factory module 2024-07-05 20:31:16 +01:00
5ab075c181 refactor: split git::repository::tests module 2024-07-05 20:12:17 +01:00
d9feaeaa7b chore: remove unused FakeOpenRepository 2024-07-05 20:12:17 +01:00
2e374d317a refactor: split git::repository::open::tests module 2024-07-05 20:12:17 +01:00
694135a10b fix: default log level is info
When RUST_LOG isn't set, the default log level is INFO rather than
ERROR.

Closes kemitix/git-next#104
2024-07-05 07:23:40 +01:00
c2953adba5 chore: remove unused token from github tests 2024-07-05 07:04:27 +01:00
7b19f3b66f chore: directly re-export function and type 2024-07-05 06:59:54 +01:00
12849d5a69 refactor: server no longer depends directly on git crate 2024-07-03 07:42:11 +01:00
3dec12de20 refactor: cli don't depend directly on git crate 2024-07-03 07:35:01 +01:00
83ce95776e fix: messages should always get delivered
Remove the async wrapper for sending messages as they were never being
delivered.
2024-07-02 18:51:40 +01:00
dfc0c1dc80 refactor: only start actor system when server starts 2024-07-01 06:54:07 +01:00
77d35e8a09 feat: load log levels from env RUST_LOG 2024-06-30 20:12:47 +01:00
c85eee85e9 refactor: file-watcher doesn't debug log on each loop 2024-06-30 20:12:35 +01:00
40c61fa9ff test: add more debug tracing 2024-06-30 19:42:09 +01:00
73ab149aba fix: github commit should use common headers 2024-06-30 19:30:22 +01:00
ae7933c79e fix: don't retry validation when non-retryable error
Closes kemitix/git-next#90
2024-06-30 18:48:49 +01:00
c9efbb9936 fix: ReceiveRepoConfig tries to send two messages
Similar to CloneRepo the handler tries to send two messages one after
the other. Leave it to WebhookRegistered handler to kick off the
ValidateRepo. Also update the README with the correct message sequence.
2024-06-30 16:59:24 +01:00
68005d757d fix: start validating repo after registering webhook
Clone Repo wasn't sending the second message, so workaround: have it be
sent after registering the webhook.
2024-06-30 16:54:26 +01:00
55d8ccb0bd feat: ignore github ping webhook messages
Closes kemitix/git-next#101
2024-06-30 15:20:00 +01:00
8fceafc3e1 refactor: repo-actor: replace Mutex with RwLock 2024-06-30 13:17:33 +01:00
73b416e3a0 refactor: git: replace Mutex with RwLock in Repository 2024-06-30 13:14:50 +01:00
52df2114e5 refactor: tests: repo-actor: use methods on RepoActorLog 2024-06-30 13:12:12 +01:00
3e137c6480 refactor: repo-actor: RepoActorLog: replace Mutex with RwLock 2024-06-30 12:40:17 +01:00
db90280641 fix: github: restarting server creates duplicate webhook for repo
The Github routine for registering a new webhook, wasn't removing any
existing matching webhooks. There is a test for this, but it doesn't
assert that the delete requests are made. (This is a limitation of
kxio).

Closes kemitix/git-next#102
2024-06-30 12:23:42 +01:00
975c9e315c fix: where repo config is in server should register webhook 2024-06-30 08:09:10 +01:00
0796df00d4 docs: fix typo 2024-06-30 08:00:51 +01:00
c571e9ee8d refactor: CloneRepo use actor::do_send to send LoadConfigFromRepo 2024-06-30 07:55:55 +01:00
32fb92fb8d refactor: remove dead code 2024-06-29 19:24:18 +01:00