Commit graph

115 commits

Author SHA1 Message Date
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
31ef0c19fb feat(config): use specified gitdir when supplied
The user can specify a gitdir for a repo in the `git-next-server.toml` file.
When they do, then we should use that directory.

Closes kemitix/git-next#71
2024-04-29 06:52:50 +01:00
bb67b7c66d feat(gitforge): clone repo in-process
Use the `gix` crate directly to create the clone rather then spawning a
`git` processess.

Closes kemitix/git-next#54
Closes kemitix/git-next#70
2024-04-28 18:01:11 +01:00
e357da4346 chore(deps): update kxio to v1.1.0 2024-04-28 16:53:02 +01:00
ff6e61b0ee feat: validate repo if it already exists
Closes kemitix/git-next#60
2024-04-25 19:41:41 +01:00
7b46045737 feat: impl Deref for GitDir 2024-04-25 16:01:24 +01:00
555aada7e9 fix(#61): Format path to clone into correctly
Closes kemitix/git-next#61

`GitDir` was being inserted into the command string as
"GitDir(\"data/default/foo\")".
2024-04-23 18:58:07 +01:00
3dfbd44b37 refactor: rename forge as forge_config 2024-04-23 16:14:13 +01:00
17f5f62e61 feat: Clone repo when starting repo 2024-04-23 07:41:39 +01:00
fc1c79620c refactor: rename name to forge_name for consistency 2024-04-23 06:53:34 +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
ee8b1e9fce fix(config): deserialise gitdir as PathBuf, but expose it as GitDir 2024-04-21 19:33:42 +01:00
b71aece8c9 feat: add gitdir to RepoDetails type 2024-04-21 18:50:30 +01:00
a024c3de5e feat: use GitDir in place of raw PathBuf 2024-04-21 18:47:07 +01:00
56e253b545 feat(config): add GitDir type 2024-04-21 18:38:47 +01:00
e10561f853 refactor(server/config): move tests into their own file 2024-04-21 18:24:14 +01:00
18143c17fd refactor: use 'repo_path' use consistently 2024-04-20 21:03:17 +01:00
1170510c44 refactor: use 'server_repo_config' consistently 2024-04-20 21:03:12 +01:00
91870055b0 feat(gitforge): Add ability to clone a repo
Closes kemitix/git-next#56
2024-04-19 19:31:25 +01:00
16dc823f58 feat(config): User must specify a directory to store data
Closes kemitix/git-next#55
2024-04-19 18:49:03 +01:00
704853017b feat(config): User can specify git directory to use for a repo
Closes kemitix/git-next#53

Does not include using this information.
2024-04-19 18:38:21 +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
0bfa1df875 refactor: delete dead code 2024-04-18 19:19:10 +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
069b313fc3 feat(config)!: Add webhook URL field to server config 2024-04-13 14:09:57 +01:00
b21b80881e chore(config): Rename type RepoName as RepoAlias
Closes kemitix/git-next#39
2024-04-13 14:09:57 +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
229d47f7c7 docs(server/config): add docs to types 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
af221f8a2f fix(forge/mock): visibility on methods 2024-04-13 06:56:11 +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
9df732ce97 chore: reduce logging to debug 2024-04-12 19:46:52 +01:00
223dd426c6 chore: don't log success 2024-04-12 19:43:21 +01:00
ee9cc53540 fix: don't log url containing API token 2024-04-12 19:41:47 +01:00
5fcf16ea75 feat: Abstract Git command execution into injectable enum
Closes kemitix/git-next#36
2024-04-12 19:39:24 +01:00
fb74879309 chore(foregejo): don't log fetch url
It contained the api token
2024-04-12 19:21:27 +01:00
8c4ad4b534 chore: clean up some logging 2024-04-12 17:41:09 +01:00