Commit graph

638 commits

Author SHA1 Message Date
df2d9d684c feat(server/webhook): add webhook server
Some checks failed
ci/woodpecker/cron/push-next Pipeline was successful
ci/woodpecker/cron/tag-created Pipeline was successful
ci/woodpecker/cron/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline failed
Closes kemitix/git-next#18
2024-04-13 20:23:24 +01:00
4c4ac4df25 fix(repo/branch): revalidate positions in more conditions
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
- 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
All checks were successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
Closes kemitix/git-next#41
2024-04-13 15:26:45 +01:00
2055421067 refactor(repo/branch): extract get_commit_histories
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
2024-04-13 15:22:23 +01:00
eca45d0238 build(justfile): Add validate-dev-branch recipe
Some checks failed
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline failed
2024-04-13 14:09:57 +01:00
069b313fc3 feat(config)!: Add webhook URL field to server config
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-13 14:09:57 +01:00
b21b80881e chore(config): Rename type RepoName as RepoAlias
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
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
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
Closes kemitix/git-next#28
2024-04-13 14:09:57 +01:00
229d47f7c7 docs(server/config): add docs to types
All checks were successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
2024-04-13 14:09:57 +01:00
cfa25b7f67 fix(deps): update rust crate gix to 0.62 (#40)
Some checks failed
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline failed
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [gix](https://github.com/Byron/gitoxide) | dependencies | minor | `0.61` -> `0.62` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yOTEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI5MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: Renovate Bot <renovate@kemitix.net>
Reviewed-on: #40
Co-authored-by: renovate <renovate@noreply.kemitix.net>
Co-committed-by: renovate <renovate@noreply.kemitix.net>
2024-04-13 14:09:35 +01:00
e272ca296b fix(actor/repo): always reschedule to validate repos
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
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
Some checks failed
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline failed
2024-04-13 06:56:11 +01:00
3bbe9abbd9 test: Create stub mock forge
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/cron/push-next Pipeline was successful
ci/woodpecker/cron/tag-created Pipeline was successful
ci/woodpecker/cron/cron-docker-builder Pipeline was successful
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'
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-12 20:53:55 +01:00
9df732ce97 chore: reduce logging to debug
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
2024-04-12 19:46:52 +01:00
223dd426c6 chore: don't log success
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-12 19:43:21 +01:00
ee9cc53540 fix: don't log url containing API token
All checks were successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
2024-04-12 19:41:47 +01:00
5fcf16ea75 feat: Abstract Git command execution into injectable enum
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
Closes kemitix/git-next#36
2024-04-12 19:39:24 +01:00
fb74879309 chore(foregejo): don't log fetch url
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
It contained the api token
2024-04-12 19:21:27 +01:00
8c4ad4b534 chore: clean up some logging
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-12 17:41:09 +01:00
4e6a306a72 feat: Don't advance next branch if the target commit message is invalid
All checks were successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
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
Some checks failed
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline failed
Closes kemitix/git-next#30
2024-04-12 15:27:03 +01:00
e8d174ee84 fix(forgejo): treat a blank status check result as pending
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
Closes kemitix/git-next#29
2024-04-12 13:51:56 +01:00
869935dfc2 fix(server): Prevent losing a task waker
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
Closes kemitix/git-next#26
2024-04-12 13:00:40 +01:00
53f66d5ee5 docs(readme): rewrite README
Some checks failed
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline failed
2024-04-12 11:27:04 +01:00
be3aded382 docs(readme): rewrite README
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
2024-04-12 11:03:32 +01:00
3735afb2f8 fix: don't reload config when updating next branch
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
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
0b427f1d4c fix: avoid using terrors::OneOf across an await boundary
All checks were successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
OneOf appears to not be Send
2024-04-12 10:14:32 +01:00
8ed942a501 fix: remove extra StartRepo message
Some checks failed
ci/woodpecker/tag/cron-docker-builder Pipeline was successful
ci/woodpecker/tag/push-next Pipeline was successful
ci/woodpecker/tag/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline failed
Closes kemitix/git-next#32
2024-04-12 08:41:24 +01:00
7d3ebfb320 build(cargo): version set to 0.1.1
Some checks failed
ci/woodpecker/tag/push-next Pipeline was successful
ci/woodpecker/tag/cron-docker-builder Pipeline was successful
ci/woodpecker/tag/tag-created Pipeline was successful
ci/woodpecker/cron/push-next Pipeline was successful
ci/woodpecker/cron/tag-created Pipeline was successful
ci/woodpecker/cron/cron-docker-builder Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline failed
ci/woodpecker/push/push-next Pipeline failed
ci/woodpecker/push/tag-created Pipeline failed
2024-04-11 19:27:12 +01:00
fad4867402 build(docker): include default toml files in build context
All checks were successful
ci/woodpecker/tag/push-next Pipeline was successful
ci/woodpecker/tag/cron-docker-builder Pipeline was successful
ci/woodpecker/tag/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-11 18:58:30 +01:00
c9d52a5b7f feat: when no action to take, wait 10 seconds then restart
Some checks failed
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/tag/push-next Pipeline was successful
ci/woodpecker/tag/cron-docker-builder Pipeline was successful
ci/woodpecker/tag/tag-created Pipeline failed
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
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
2024-04-11 18:19:47 +01:00
f7dc27f67e feat: git command output is suppressed
All checks were successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
Closes kemitix/git-next#27
2024-04-11 18:19:47 +01:00
ec258bca97 refactor: rename ResetForce::Normal as None
Some checks failed
ci/woodpecker/push/push-next Pipeline failed
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline failed
2024-04-11 18:09:57 +01:00
e0b15712c2 refactor: reuse branch::reset to advance next towards dev
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-11 18:05:26 +01:00
6bad8a27f7 refactor: reuse branch::reset to advance main branch to next
All checks were successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
2024-04-11 18:02:07 +01:00
ab58981f87 refactor: reuse branch::reset to advance main branch to next
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-11 17:45:11 +01:00
115b353389 feat: Force push next branch to main when it isn't a dev ancestor
All checks were successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
Closes kemitix/git-next#21
2024-04-11 15:48:18 +01:00
d2d49f353c refactor: pass RepoDetails by reference
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
2024-04-11 15:47:28 +01:00
ed1ab6faa5 feat: add branch::reset function
Some checks failed
ci/woodpecker/push/cron-docker-builder Pipeline failed
ci/woodpecker/push/tag-created Pipeline failed
ci/woodpecker/push/push-next Pipeline failed
2024-04-11 14:24:18 +01:00
1c9f7cb4ea fix: clean up instrumentation
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-11 07:46:30 +01:00
7dab1da44b fix(server): reduce complexity of StartMonitoring handler
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
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
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/cron/push-next Pipeline was successful
ci/woodpecker/cron/tag-created Pipeline was successful
ci/woodpecker/cron/cron-docker-builder Pipeline was successful
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
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
Closes kemitix/git-next#23
2024-04-10 20:51:40 +01:00
3a761b5b21 feat(server): Implement advancing main branch to the next commit
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
Closes kemitix/git-next#19
2024-04-10 17:36:08 +01:00
98a94ea855 Implement advancing next branch to next commit on dev branch
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
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
a5e9421405 feat(server): implement forge::forgejo::get_commit_history
Some checks failed
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline failed
Closes kemitix/git-next#13
2024-04-10 11:48:24 +01:00
e27b050a09 feat(server): log returned status for next branch
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-10 11:47:14 +01:00
5c4b745c00 feat(server): add marker info logs for advance main and next
All checks were successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
2024-04-10 11:46:51 +01:00