Commit graph

270 commits

Author SHA1 Message Date
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
58e991b2b7 test(git): make repository more testable
Adds a layer around Repository to allow the use of a mock.

Mock has still to be implemented.
2024-05-18 20:37:03 +01:00
6757723b77 feat(server/webhook): log errors in webhook requests 2024-05-18 20:26:44 +01:00
c3a5e50ad5 test(git): add more tests 2024-05-18 07:37:04 +01:00
896e1cba42 test(config): add more tests 2024-05-17 20:26:33 +01:00
446300e786 refactor(git): rename reset as push 2024-05-16 14:45:25 +01:00
d87af324d6 refactor(server): more derive_more replacing boilerplate 2024-05-16 06:46:03 +01:00
f8375ed1fc refactor(server/config): rename RepoConfigValidationError as Error
It is never referenced directly outside of this module.
2024-05-15 20:46:29 +01:00
eb7d14bc33 refactor(git): more derive_more replacing boilerplate 2024-05-15 20:40:25 +01:00
d70baa4350 refactor(config): more derive_more replacing boilerplate 2024-05-15 07:55:05 +01:00
c374076323 refactor(git): more use of derive_more 2024-05-14 16:28:21 +01:00
ac3e1be261 test: add some tests 2024-05-14 07:59:31 +01:00
a7e7d12928 test(cli): add tests 2024-05-14 07:58:28 +01:00
a4694d48f6 refactor(config): replace boilerplate with derive_more 2024-05-13 21:03:33 +01:00
1e38330914 feat(git): add git_dir value to error when reset fails 2024-05-13 19:09:11 +01:00
4d352f005d refactor(server,config,git): extract modules config and git from server 2024-05-12 10:49:33 +01:00
740419ffb8 refactor: specify server dependency in workspace 2024-05-11 19:29:38 +01:00
87c762c59a chore: clean up dependencies for split crates 2024-05-11 19:14:06 +01:00
a8eedfcac5 fix: clippy fixes for tests 2024-05-11 18:58:47 +01:00
3a112ddd8b refactor: extract server crate 2024-05-11 18:57:18 +01:00
834dff4370 chore: convert project into a cargo workspace 2024-05-11 16:33:18 +01:00