Commit graph

62 commits

Author SHA1 Message Date
ec2ebe70cf feat(server): Don't load config from repo if repo config is in server config
Closes kemitix/git-next#77
2024-05-08 07:14:14 +01:00
b1638a65fc feat(server): give Server an incremental generation counter 2024-05-07 18:59:51 +01:00
da5bc69508 feat(server): avoid duplicate messages being passed for repo actor 2024-05-05 08:30:01 +01:00
2c5f497be2 feat(server): remove redundant call to register webhook 2024-05-05 07:39:39 +01:00
7516ec1dc1 chore(logging): clean up and reformat logging 2024-05-04 19:41:53 +01:00
5ba5a126c3 fix(gitforge): use local repo or clone to allow git push
The `git push` command requires a git directory (bare at a minimum)
before it can work.
The git dir must also be up-to-date with the relevant references from
the remote, so
we do a `git fetch` before a `git push`.

Closes kemitix/git-next#51
2024-05-03 19:08:58 +01:00
17f5f62e61 feat: Clone repo when starting repo 2024-04-23 07:41:39 +01:00
8b56a185d3 refactor: rename name to repo_alias for consistency 2024-04-23 06:50:52 +01:00
32d54cfc1c refactor: rename config variables,etc as repo_config 2024-04-21 19:36:37 +01:00
18143c17fd refactor: use 'repo_path' use consistently 2024-04-20 21:03:17 +01:00
50a969ede6 refactor: move server config loading out of forgejo module
Delete empty modules left over
2024-04-18 20:40:28 +01:00
0d57ee7bc0 refactor(gitforge): migrate some types from forge 2024-04-18 19:18:27 +01:00
adb44d18c9 feat(server/gitforge): replace git abstraction 2024-04-18 08:22:55 +01:00
ec9571a182 feat(repo/webhook): Replace webhook if it already exists
Closes kemitix/git-next#45
2024-04-15 22:47:54 +01:00
64a6b84ee4 feat(server/webhook): only accept authorised messages
Closes kemitix/git-next#47
2024-04-14 19:14:44 +01:00
b398ac3fd3 feat(repo/status): reschedule ValidateRepo when checks are Pending
Closes kemitix/git-next#48
2024-04-14 19:14:44 +01:00
24cb485410 feat(repo/webhook): Handle messages received via webhook for ForgeJo
Closes kemitix/git-next#43
2024-04-14 19:14:38 +01:00
dd91aa4f69 feat(server/webhook): implement register webhook
Closes kemitix/git-next#15
2024-04-14 14:37:55 +01:00
e7060800eb feat(server/webhook): implement unregister webhook
Closes kemitix/git-next#17
2024-04-13 21:01:35 +01:00
df2d9d684c feat(server/webhook): add webhook server
Closes kemitix/git-next#18
2024-04-13 20:23:24 +01:00
4c4ac4df25 fix(repo/branch): revalidate positions in more conditions
- when next has no commits
- when couldn't reset next to a commit (e.g. commit was WIP)
2024-04-13 16:23:02 +01:00
0622e6092b feat(repo/branch): update next branch when not based on main
Closes kemitix/git-next#41
2024-04-13 15:26:45 +01:00
2055421067 refactor(repo/branch): extract get_commit_histories 2024-04-13 15:22:23 +01:00
0105631e3a feat(config): Allow repo config to be specified in server config
Closes kemitix/git-next#28
2024-04-13 14:09:57 +01:00
e272ca296b fix(actor/repo): always reschedule to validate repos
If validate repos saw anything unexpected it would stop and not schedule a re-validation.
2024-04-13 07:05:40 +01:00
3bbe9abbd9 test: Create stub mock forge
Still need to figure out what tests this will need to support, and how
to configure it's behaviour. I've not ruled out creating a forge object
that is passed in rather than the functions we have now.

Closes kemitix/git-next#37
2024-04-12 22:43:19 +01:00
1ffa8366e0 feat: isolate ForgeJo behind default feature 'forgejo' 2024-04-12 20:53:55 +01:00
223dd426c6 chore: don't log success 2024-04-12 19:43:21 +01:00
5fcf16ea75 feat: Abstract Git command execution into injectable enum
Closes kemitix/git-next#36
2024-04-12 19:39:24 +01:00
8c4ad4b534 chore: clean up some logging 2024-04-12 17:41:09 +01:00
4e6a306a72 feat: Don't advance next branch if the target commit message is invalid
Closes kemitix/git-next#33
2024-04-12 17:31:55 +01:00
cedaf16acf feat: wrap API Token in a secrect::Secret and avoid logging
Closes kemitix/git-next#30
2024-04-12 15:27:03 +01:00
3735afb2f8 fix: don't reload config when updating next branch
The StartRepo handler loads the config before then sending the
ValidateRepo message. However, we already have the config, so reloading
it isn't needed.

Added todo markers on sleep and dispatching of ValidateRepo where it is
used as a stop-gap until we have working webhook integration.

Add todo markers for checking valid commit messages before advancing
next branch.
2024-04-12 10:14:32 +01:00
8ed942a501 fix: remove extra StartRepo message
Closes kemitix/git-next#32
2024-04-12 08:41:24 +01:00
c9d52a5b7f feat: when no action to take, wait 10 seconds then restart
As a stop-gap until we have a working webhook server, this will poll the
repo for updates to it's status.

Closes kemitix/git-next#22
2024-04-11 18:30:52 +01:00
bb4d171174 fix: restore lost sleep 2024-04-11 18:19:47 +01:00
f7dc27f67e feat: git command output is suppressed
Closes kemitix/git-next#27
2024-04-11 18:19:47 +01:00
ec258bca97 refactor: rename ResetForce::Normal as None 2024-04-11 18:09:57 +01:00
e0b15712c2 refactor: reuse branch::reset to advance next towards dev 2024-04-11 18:05:26 +01:00
6bad8a27f7 refactor: reuse branch::reset to advance main branch to next 2024-04-11 18:02:07 +01:00
ab58981f87 refactor: reuse branch::reset to advance main branch to next 2024-04-11 17:45:11 +01:00
115b353389 feat: Force push next branch to main when it isn't a dev ancestor
Closes kemitix/git-next#21
2024-04-11 15:48:18 +01:00
d2d49f353c refactor: pass RepoDetails by reference 2024-04-11 15:47:28 +01:00
ed1ab6faa5 feat: add branch::reset function 2024-04-11 14:24:18 +01:00
1c9f7cb4ea fix: clean up instrumentation 2024-04-11 07:46:30 +01:00
7dab1da44b fix(server): reduce complexity of StartMonitoring handler
Closes kemitix/git-next#25
2024-04-11 07:15:19 +01:00
9469d27476 fix(server): Pause before checking CI status when just updated branch
If we check the status of the commit as soon as we push we get a Pass before the CI tests have even started. Wait briefly (10 seconds) to allow the CI to start and set the status to pending.

Closes kemitix/git-next#24
2024-04-10 22:40:33 +01:00
50a56aadee fix(server): Doesn't properly detect when dev or next are ahead
Closes kemitix/git-next#23
2024-04-10 20:51:40 +01:00
3a761b5b21 feat(server): Implement advancing main branch to the next commit
Closes kemitix/git-next#19
2024-04-10 17:36:08 +01:00
98a94ea855 Implement advancing next branch to next commit on dev branch
Uses gix to invoke git commands as there is not API to directly update
the position of a branch.

Closes kemitix/git-next#14
2024-04-10 15:54:50 +01:00