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
717cc8b0bc
refactor: update macro signatures and add documentation support
2024-06-29 18:26:19 +01:00
0fd33739c1
refactor: server: collapse tests to base of crate
2024-06-29 11:16:46 +01:00
113192042b
refactos: extract server-actor crate
2024-06-29 11:14:09 +01:00
52d442f2b0
refactor: extract file-watcher-actor crate
2024-06-29 10:57:18 +01:00
2008afa4dd
refactor: extract actor-macros crate
2024-06-29 10:49:12 +01:00
eba00a112f
refactor: extract webhook actor
2024-06-29 08:25:16 +01:00
6d9eb0ab86
refactor: remove dead code
2024-06-29 07:01:31 +01:00
f460cd4b49
refactor: remove unused Forge Deref implementation
2024-06-29 07:01:31 +01:00
e585b07f6b
tests: repo-actor: add more tests
2024-06-29 07:01:26 +01:00
ffab1986a7
refactor: repo-actor: rewrite tests using mockall
2024-06-27 18:58:47 +01:00
601e400300
refactor: forgejo: explain todo warnings
2024-06-20 19:09:50 +01:00
2cdaf39c0f
refactor: git: use newtype
2024-06-20 19:06:24 +01:00
b9940cd205
tests: use println rather then eprintln in tests
...
This should reduce the noise in output when a test is running and passing.
2024-06-20 18:54:01 +01:00
8ce4528c88
chore: remove unused Fake repo facade
2024-06-20 18:28:05 +01:00
94ad2c441c
refactor: create a RepositoryFactory trait
2024-06-20 18:28:01 +01:00
ea20afee12
refactor: config: use newtype
2024-06-19 08:16:54 +01:00
5e9f9eb80f
refactor: start to use newtype macro
2024-06-19 06:45:45 +01:00
2e71e40378
refactor: add newtype macro
2024-06-16 08:00:00 +01:00
be78597331
tests: make TestRepository from git crate available to other crates
2024-06-14 09:05:11 +01:00
2acc43d3d6
chore: remove dead code
2024-06-14 08:19:55 +01:00
9b970835c8
refactor: clean up eprintln use
2024-06-13 20:00:04 +01:00
588666ffe1
tests: add more tests to git crate
2024-06-13 19:50:19 +01:00
926851db19
refactor: rewrite git crate's mock repository
2024-06-09 10:02:57 +01:00
dcd94736a9
refactor: git::push::reset takes all params as refs
2024-06-09 09:49:54 +01:00
c6a1d2c21b
refactor: merge git::branch module into git::push
2024-06-09 09:49:54 +01:00
65e9ddf5db
fix: remove unused GitDir::into_string() function
2024-06-09 09:49:54 +01:00
b5c0f5bd36
refactor: use given::a_name in config tests
2024-06-08 20:16:15 +01:00
aa817a8e95
refactor: tests: expand test given modules
2024-06-07 20:03:14 +01:00
271f4ec1dc
tests: tidy up config, forgejo and git tests
...
Coverage for config, forge, forgejo and github is now 100%.
2024-06-06 17:45:33 +01:00
309e523cfe
test: add more tests to forge-github crate
2024-06-06 07:57:44 +01:00
7b280a2a0a
fix: github: as soon as any check fails, ignore any pending
2024-06-04 08:25:22 +01:00
46e2871e17
fix: github: use correct url to check CI status
...
There was a stray $ in the string interpolation (blame working on
Typescript for other projects) and the wrong query path.
2024-06-04 08:23:06 +01:00
e29c274aaf
refactor: server: use thiserror
2024-06-03 20:34:01 +01:00
621e599b31
refactor: git: use thiserror and cleanup errors
2024-06-03 20:31:39 +01:00
0b8e41a8ec
refactor: config: use thiserror and move tests about
2024-06-03 07:38:59 +01:00
235aee8b11
chore: remove unused dependencies
...
Identified using: cargo +nightly udeps --all-targets
2024-06-02 20:30:35 +01:00
c189aa3ad3
test: add more tests to forge-forgejo crate
2024-06-02 18:55:02 +01:00
98839c8a00
test: add more tests to forge crate
2024-06-01 12:03:30 +01:00
1010eaec64
tests: add more tests to config crate
2024-06-01 11:44:36 +01:00
1eb4ed6d23
fix: add missing list webhooks implementation
2024-05-31 08:09:00 +01:00
46b6d8680c
feat: Add support for GitHub
...
This doesn't include GitHub Enterprise
Closes kemitix/git-next#86
2024-05-31 07:23:48 +01:00
206e64cd5b
feat: Webhook query paths include forge alias
...
This allows for more than one forge to be configured and for the webhook
to correctly route incoming messages.
2024-05-29 19:35:50 +01:00
9f04b1ae6c
fix: remove old implementation of forgejo get all branches
2024-05-28 06:45:49 +01:00
012668dd0a
refactor: move git::remote_branches to git crate
2024-05-28 06:37:08 +01:00
f259179274
refactor: move git::read_file implementation to git crate
2024-05-26 18:22:15 +01:00
d0638fdbc4
refactor: move repo_clone implementation to git crate
2024-05-26 13:30:46 +01:00
f10dc25aeb
refactor: merge git::validate module into git::validation
2024-05-26 09:20:08 +01:00
dd5532d3a3
refactor: move validate_positions into git crate
2024-05-26 09:20:05 +01:00
8a35911d00
refactor: get commit from from local repo (part 2/3)
...
Remove the legacy implementation
2024-05-26 08:07:12 +01:00
3642b2cdd1
fix: new commit_log matches original from API request
...
The original was including a lot of extra commits, those are now trimmed
to match the expected.
2024-05-25 20:36:24 +01:00
7a0247ea03
refactor: get commit log from local repo (step 1)
...
Avoid using a forge-specific API to get a commit log when the
information is already available locally in the cloned repo through a
generic git command.
The commit adds the new method of getting the commit log and compares it
with the original methods, logging if they match or not.
The updated results are returned only if they match.
2024-05-25 08:10:02 +01:00
7818b25a5c
refactor: move forgejo branch test to forgejo crate
2024-05-24 07:07:01 +01:00
0202be19fe
refactor: remove unused git branch error
2024-05-23 20:52:16 +01:00
4cd797ac0a
build: forge only include forgejo crate when feature enabled
2024-05-23 19:41:50 +01:00
5253e136cc
refactor: extract forge-forgejo crate
2024-05-23 19:36:05 +01:00
9e37c073c2
refactor(repo_actor): consitent use of config crate
2024-05-23 17:56:47 +01:00
17b1629cdf
refactor(repo_actor): merge config and load modules
2024-05-23 17:53:36 +01:00
64cbe36dac
refactor: move ForgeLike to git
2024-05-23 16:50:36 +01:00
639223fcaa
refactor: improve consistency of use of git types
2024-05-23 16:19:28 +01:00
f2af849d0b
refactor(forge): rename gitforge crate as forge
2024-05-23 16:04:38 +01:00
ebbb655bfc
feat(server): config file watcher will respond to touch
...
You can now trigger a server reload by `touch`ing the
`git-next-server.toml` file.
2024-05-23 09:01:57 +01:00
d76be1197a
test: don't record coverage for mock forge
2024-05-23 08:53:16 +01:00
4053563b30
refactor: move MessageToken to repo-actor crate
2024-05-23 08:52:42 +01:00
564e14a370
refactor(gitforge): disolve gitforge:errors module
2024-05-23 08:01:16 +01:00
db9b4220ee
refactor: extract repo-actor and gitforge crates
2024-05-22 19:57:48 +01:00
ac25c9985e
chore: remove feature declarations
...
git crate doesn't have and feature dependent code
2024-05-21 19:58:18 +01:00
df8ebc6af7
refactor(server): collapse type module into gitforge module
2024-05-21 19:47:01 +01:00
341dc97a51
refactor(git): add mock repository and tests
...
Repository is now behind an enum to allow selection of a mock Repsitory
for use in tests.
2024-05-21 19:47:01 +01:00
e5744e85ad
fix(server): invalid webhook authorisations
...
Parameters had been passed in wrong order. Added strong types to prevent
a repeat.
2024-05-21 09:01:44 +01:00
c6c8dcedc5
feat(server): display expected auth in logs in invalid request
2024-05-20 07:46:23 +01:00
4977619c70
fix(server): don't use gix in server
2024-05-20 07:46:23 +01:00
c3c4c41c73
refactor(git): only expose OpenRepository from repository::open
2024-05-20 07:46:21 +01:00
70100f6dc5
refactor(git): reporitory errors don't leak implementation
2024-05-20 07:43:03 +01:00
155497c97f
refactor(git): split mock, real and open into their files
2024-05-20 07:42:52 +01:00
f4b8401bb1
test(git): add more tests
2024-05-19 14:54:17 +01:00
f398fb3b6a
feat(server/webhook): warn when message is dropped
2024-05-18 22:36:54 +01:00
9d0f2d1ba1
feat(server): don't log validation ok
2024-05-18 22:29:57 +01:00
ee83def127
feat(server): don't log individual internal messages
2024-05-18 22:26:44 +01:00
76472fa74a
chore: remove unused dependency tempfile
2024-05-18 22:23:18 +01:00
6c06d63c57
chore: remove dependency pretty_assertions
2024-05-18 22:21:10 +01:00
d6ca6ea3b2
chore: remove dependency test-log
2024-05-18 22:20:07 +01:00
f1a6d5089b
chore: remove unused dependency anyhow
2024-05-18 22:18:36 +01:00
f56ac321f4
chore: remove dependency on terrors
2024-05-18 22:16:17 +01:00