git-next/CHANGELOG.md
Paul Campbell b0be0f636c
All checks were successful
Rust / build (push) Successful in 1m11s
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
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
chore: Release 0.8.1
2024-07-05 07:26:42 +01:00

53 KiB

Changelog

All notable changes to this project will be documented in this file.

[0.8.1] - 2024-07-05

Bug Fixes

  • Mermaid diagram syntax (99d8672)
  • Typos in mermaid diagram (209b29d)
  • Default log level is info (694135a)

Documentation

  • Update crate interdependence graph (9042005)
  • Minor updates to README (6c24a36)
  • Update installation instructions (2483e85)

Miscellaneous Tasks

  • Clean up footer of readme (007a5bd)
  • Directly re-export function and type (7b19f3b)
  • Remove unused token from github tests (c2953ad)

Refactor

  • Cli don't depend directly on git crate (3dec12d)
  • Server no longer depends directly on git crate (12849d5)

[0.8.0] - 2024-07-02

ea9a858...8beef49

Bug Fixes

  • Remove unused GitDir::into_string() function (65e9ddf)
  • Where repo config is in server should register webhook (975c9e3)
  • Github: restarting server creates duplicate webhook for repo (db90280)
  • Start validating repo after registering webhook (68005d7)
  • ReceiveRepoConfig tries to send two messages (c9efbb9)
  • Don't retry validation when non-retryable error (ae7933c)
  • Github commit should use common headers (73ab149)
  • Messages should always get delivered (83ce957)

Documentation

Features

  • Ignore github ping webhook messages (55d8ccb)
  • Load log levels from env RUST_LOG (77d35e8)

Miscellaneous Tasks

  • Remove dead code (2acc43d)
  • Remove unused Fake repo facade (8ce4528)
  • Fix name in config file (f038ab5)
  • Bacon run job runs server (880fa0c)
  • Don't treat clippy warnings as errors (7fdea29)
  • Set default logging lever back to info (d0c731f)
  • Release 0.8.0 (8beef49)

Refactor

  • Tests: expand test given modules (aa817a8)
  • Use given::a_name in config tests (b5c0f5b)
  • Merge git::branch module into git::push (c6a1d2c)
  • Git::push::reset takes all params as refs (dcd9473)
  • Rewrite git crate's mock repository (926851d)
  • Clean up eprintln use (9b97083)
  • Add newtype macro (2e71e40)
  • Start to use newtype macro (5e9f9eb)
  • Config: use newtype (ea20afe)
  • Create a RepositoryFactory trait (94ad2c4)
  • Git: use newtype (2cdaf39)
  • Forgejo: explain todo warnings (601e400)
  • Repo-actor: rewrite tests using mockall (ffab198)
  • Remove unused Forge Deref implementation (f460cd4)
  • Remove dead code (6d9eb0a)
  • Extract webhook actor (eba00a1)
  • Extract actor-macros crate (2008afa)
  • Extract file-watcher-actor crate (52d442f)
  • Server: collapse tests to base of crate (0fd3373)
  • Update macro signatures and add documentation support (717cc8b)
  • Remove dead code (32fb92f)
  • CloneRepo use actor::do_send to send LoadConfigFromRepo (c571e9e)
  • Repo-actor: RepoActorLog: replace Mutex with RwLock (3e137c6)
  • Tests: repo-actor: use methods on RepoActorLog (52df211)
  • Git: replace Mutex with RwLock in Repository (73b416e)
  • Repo-actor: replace Mutex with RwLock (8fceafc)
  • File-watcher doesn't debug log on each loop (c85eee8)
  • Only start actor system when server starts (dfc0c1d)

Testing

  • Tidy up config, forgejo and git tests (271f4ec)
  • Add more tests to git crate (588666f)
  • Make TestRepository from git crate available to other crates (be78597)
  • Use println rather then eprintln in tests (b9940cd)
  • Repo-actor: add more tests (e585b07)
  • Add more debug tracing (40c61fa)

Refactos

  • Extract server-actor crate (1131920)

[0.7.1] - 2024-06-06

c1c62e7...ea9a858

Bug Fixes

  • Github: use correct url to check CI status (46e2871)
  • Github: as soon as any check fails, ignore any pending (7b280a2)

Documentation

  • Update installation instructions (044790a)
  • Flesh out and update README (8d42945)
  • Fix typos and clarifications (9462957)

Miscellaneous Tasks

  • Remove unused dependencies (235aee8)
  • Add grcov-coverage as an alternate report generation recipe (d67b821)
  • Ignore coverage metadata (profraw files) (8609652)
  • Release 0.7.1 (ea9a858)

Refactor

  • Config: use thiserror and move tests about (0b8e41a)
  • Git: use thiserror and cleanup errors (621e599)
  • Server: use thiserror (e29c274)

Testing

  • Add more tests to config crate (1010eae)
  • Add more tests to forge crate (98839c8)
  • Add more tests to forge-forgejo crate (c189aa3)
  • Add more tests to forge-github crate (309e523)

[0.7.0] - 2024-05-31

17148e7...c1c62e7

Bug Fixes

  • Add missing list webhooks implementation (1eb4ed6)

Features

  • Webhook query paths include forge alias (206e64c)
  • Add support for GitHub (46b6d86)

Miscellaneous Tasks

[0.6.2] - 2024-05-29

3642b2c...17148e7

Bug Fixes

  • Remove old implementation of forgejo get all branches (9f04b1a)

Documentation

  • Update dependency graph (e62f5e2)

Miscellaneous Tasks

Refactor

  • Get commit from from local repo (part 2/3) (8a35911)
  • Move validate_positions into git crate (dd5532d)
  • Merge git::validate module into git::validation (f10dc25)
  • Move repo_clone implementation to git crate (d0638fd)
  • Move git::read_file implementation to git crate (f259179)
  • Move git::remote_branches to git crate (012668d)

[0.6.1] - 2024-05-25

6cab8bb...3642b2c

Bug Fixes

  • New commit_log matches original from API request (3642b2c)

[0.6.0] - 2024-05-25

8616225...6cab8bb

Features

  • Config file watcher will respond to touch (ebbb655)

Miscellaneous Tasks

  • Don't directly open coverage report (c92e41e)
  • Release 0.6.0 (6cab8bb)

Refactor

  • Disolve gitforge:errors module (564e14a)
  • Move MessageToken to repo-actor crate (4053563)
  • Rename gitforge crate as forge (f2af849)
  • Improve consistency of use of git types (639223f)
  • Move ForgeLike to git (64cbe36)
  • Merge config and load modules (17b1629)
  • Consitent use of config crate (9e37c07)
  • Extract forge-forgejo crate (5253e13)
  • Remove unused git branch error (0202be1)
  • Move forgejo branch test to forgejo crate (7818b25)
  • Get commit log from local repo (step 1) (7a0247e)

Testing

  • Don't record coverage for mock forge (d76be11)

Build

  • Forge only include forgejo crate when feature enabled (4cd797a)

[0.5.2] - 2024-05-22

e5744e8...8616225

Documentation

  • Add diagram showing crate dependencies (2dbd421)

Miscellaneous Tasks

Refactor

  • Add mock repository and tests (341dc97)
  • Collapse type module into gitforge module (df8ebc6)
  • Extract repo-actor and gitforge crates (db9b422)

[0.5.1] - 2024-05-21

eabeeed...e5744e8

Bug Fixes

  • Invalid webhook authorisations (e5744e8)

[0.5.0] - 2024-05-20

d241273...eabeeed

Bug Fixes

  • Don't use gix in server (4977619)
  • Git-cliff template add null check (ba92f23)

Documentation

Features

  • Display expected auth in logs in invalid request (c6c8dce)

Miscellaneous Tasks

Refactor

  • Split mock, real and open into their files (155497c)
  • Reporitory errors don't leak implementation (70100f6)
  • Only expose OpenRepository from repository::open (c3c4c41)

Testing

Build

  • Validate format locally (7b1575e)

[0.4.1] - 2024-05-19

f302f7a...d241273

Miscellaneous Tasks

Build

Revert

  • "build(woodpecker): remove redundant build of a builder images" (8e22a47)

[0.4.0] - 2024-05-18

a4694d4...f302f7a

Documentation

  • Remove build status badge from woodpecker (4924e9b)
  • Add prerequisits (2cefe07)
  • Add msrv and some formatting (e3205af)

Features

  • Log errors in webhook requests (6757723)
  • Remove unused features from dependencies (85d38ed)
  • Don't log individual internal messages (ee83def)
  • Don't log validation ok (9d0f2d1)
  • Warn when message is dropped (f398fb3)

Miscellaneous Tasks

  • Add coverage recipe (b7416c7)
  • Remove dependency on terrors (f56ac32)
  • Remove unused dependency anyhow (f1a6d50)
  • Remove dependency test-log (d6ca6ea)
  • Remove dependency pretty_assertions (6c06d63)
  • Remove unused dependency tempfile (76472fa)
  • Version set to 0.4.0 (f302f7a)

Refactor

  • More use of derive_more (c374076)
  • More derive_more replacing boilerplate (d70baa4)
  • More derive_more replacing boilerplate (eb7d14b)
  • Rename RepoConfigValidationError as Error (f8375ed)
  • More derive_more replacing boilerplate (d87af32)
  • Rename reset as push (446300e)

Testing

Build

  • Add demo action (45e172e)
  • Triger action (d909d42)
  • Add push-next job (0f7d1a8)
  • Drop action based on builder (8107411)
  • Remove build_and_lint and test from push-next (c90aef3)
  • Use rust action (29c03b9)
  • Remove redundant build of a builder images (38f236f)

[0.3.3] - 2024-05-13

1e38330...a4694d4

Refactor

  • Replace boilerplate with derive_more (a4694d4)

Build

[0.3.2] - 2024-05-13

e34d5c2...1e38330

Features

  • Add git_dir value to error when reset fails (1e38330)

[0.3.1] - 2024-05-12

1cd56d9...e34d5c2

Bug Fixes

Miscellaneous Tasks

  • Convert project into a cargo workspace (834dff4)
  • Clean up dependencies for split crates (87c762c)

Refactor

  • Extract server crate (3a112dd)
  • Specify server dependency in workspace (740419f)
  • Extract modules config and git from server (4d352f0)

Build

  • Clean up and update debian version (e34d5c2)

[0.3.0] - 2024-05-10

3c60ff9...1cd56d9

Bug Fixes

  • Deserialise gitdir as PathBuf, but expose it as GitDir (ee8b1e9)
  • Format path to clone into correctly (555aada)
  • Use local repo or clone to allow git push (5ba5a12)
  • Don't try to reset next when dev is not based on main (7e79f48)

Features

  • Add recipe for exposing webhook server (dfd7d32)
  • Replace webhook if it already exists (ec9571a)
  • Replace git abstraction (adb44d1)
  • User can specify git directory to use for a repo (7048530)
  • User must specify a directory to store data (16dc823)
  • Add ability to clone a repo (9187005)
  • Add GitDir type (56e253b)
  • Use GitDir in place of raw PathBuf (a024c3d)
  • Add gitdir to RepoDetails type (b71aece)
  • Clone repo when starting repo (17f5f62)
  • Impl Deref for GitDir (7b46045)
  • Validate repo if it already exists (ff6e61b)
  • Clone repo in-process (bb67b7c)
  • Use specified gitdir when supplied (31ef0c1)
  • Remove redundant call to register webhook (2c5f497)
  • Avoid duplicate messages being passed for repo actor (da5bc69)
  • Extract Server actor (9b21117)
  • Give Server an incremental generation counter (b1638a6)
  • Restart server when config file is updated (6d147ef)
  • Don't load config from repo if repo config is in server config (ec2ebe7)
  • Reload .git-next.toml from repo when main branch updated (e5a8051)
  • Extract git::reset from gitforge::forgejo (e806278)
  • Include repo in missing handler logs (b7aa417)
  • Cache Repository in RepoActor (992821d)
  • Use cached Repository from RepoActor (62bee38)
  • Allow specifying id address and port to bind to (1cd56d9)

Miscellaneous Tasks

  • Version set to 0.3.0 (c625105)
  • Clean up and reformat logging (7516ec1)
  • More cleaning up of logging around fetch and reset (709fde1)
  • Fix typo (96994f2)

Refactor

  • Migrate some types from forge (0d57ee7)
  • Delete dead code (0bfa1df)
  • Move server config loading out of forgejo module (50a969e)
  • Use 'server_repo_config' consistently (1170510)
  • Use 'repo_path' use consistently (18143c1)
  • Move tests into their own file (e10561f)
  • Rename config variables,etc as repo_config (32d54cf)
  • Rename name to repo_alias for consistency (8b56a18)
  • Rename name to forge_name for consistency (fc1c796)
  • Rename forge as forge_config (3dfbd44)
  • Extract Repository::open and clone (daa40e7)

Build

  • Renovate should avoid pointless patch PRs (60af21d)
  • Specify clippy flags in Cargo.toml (d42c8fb)

[0.2.0] - 2024-04-14

8ed942a...3c60ff9

Bug Fixes

Documentation

Features

  • Wrap API Token in a secrect::Secret and avoid logging (cedaf16)
  • Don't advance next branch if the target commit message is invalid (4e6a306)
  • Abstract Git command execution into injectable enum (5fcf16e)
  • Isolate ForgeJo behind default feature 'forgejo' (1ffa836)
  • Allow repo config to be specified in server config (0105631)
  • Add webhook URL field to server config (069b313)
  • Update next branch when not based on main (0622e60)
  • Add webhook server (df2d9d6)
  • Implement unregister webhook (e706080)
  • Implement register webhook (dd91aa4)
  • Handle messages received via webhook for ForgeJo (24cb485)
  • Reschedule ValidateRepo when checks are Pending (b398ac3)
  • Only accept authorised messages (64a6b84)

Miscellaneous Tasks

Refactor

  • Extract get_commit_histories (2055421)

Testing

Build

  • Add validate-dev-branch recipe (eca45d0)

[0.1.2] - 2024-04-12

7d3ebfb...8ed942a

Bug Fixes

  • Remove extra StartRepo message (8ed942a)

[0.1.1] - 2024-04-11

c9d52a5...7d3ebfb

Build

  • Include default toml files in build context (fad4867)
  • Version set to 0.1.1 (7d3ebfb)

[0.1.0] - 2024-04-11

Bug Fixes

  • Parse the server file with sections (f1041d6)
  • Update case for default forge_type (4b64aa5)
  • Fix typo (b66b70c)
  • Stop logging all network requests (0721b63)
  • Doesn't properly detect when dev or next are ahead (50a56aa)
  • Pause before checking CI status when just updated branch (9469d27)
  • Reduce complexity of StartMonitoring handler (7dab1da)
  • Clean up instrumentation (1c9f7cb)
  • Restore lost sleep (bb4d171)

Documentation

Features

  • Parse commands from args (dd124d1)
  • Creates a default configuration file (aa27e96)
  • Creates a default server configuration file (1e3ca5b)
  • Add stub for server start command (e25ff50)
  • Log when not overwritting exiting file (d341647)
  • Add Filesystem to wrap fs operations (1207bbc)
  • Add initial example server configuration (7890423)
  • Add read_file() (90f9ab8)
  • Parse file (efb55e4)
  • Rename property type as forge_type (cb0a7f7)
  • Rename propery url as hostname (a3c52c7)
  • Implement Display for ForgeType (dc41105)
  • Log error when fails to load config (ef75ecd)
  • Log parsed config (1de2bd2)
  • Add ForgeDetails and RepoDetails types (3ac4894)
  • Create stub RepoActor (eacefef)
  • Start repo actors (ca673f9)
  • Repos specify which branch to read config from (e9685ab)
  • Impl Display for RepoDetails (7770503)
  • Make RepoDetails Clone (a4e781d)
  • Parse RepoConfig (c3f2266)
  • Add RepoActor::new (abbd2e6)
  • Add ApiToken newtype (3c4a0d5)
  • Use accesors for hostname and user (be01d10)
  • Replace own filesystem module with kxio lib (f255c44)
  • Define default repo config (25a1886)
  • Load repo config (b093c00)
  • Verify branches exist in repo (ca37045)
  • Create stub for validating branch positions (bdea942)
  • Fetch commit histories (9eb7660)
  • Validate branch head positions (3203bbd)
  • Assess next action for repo (70e0f94)
  • Add stub for branch::advance_main (7ed30fc)
  • Add message and handler for AdvanceMainTo(Commit) (ad7d513)
  • Add deserialise types for commit status (8ad84bc)
  • Add stub for forge::forgejo::get_commit_status (a7a3f8a)
  • Implement repo::status::check_next (c66170c)
  • Next commit status is returned as pass, fail ro pending (546d915)
  • Implement Display for forge::Commit (d64024e)
  • Add marker info logs for advance main and next (5c4b745)
  • Log returned status for next branch (e27b050)
  • Implement forge::forgejo::get_commit_history (a5e9421)
  • Implement advancing main branch to the next commit (3a761b5)
  • Add branch::reset function (ed1ab6f)
  • Force push next branch to main when it isn't a dev ancestor (115b353)
  • Git command output is suppressed (f7dc27f)
  • When no action to take, wait 10 seconds then restart (c9d52a5)

Miscellaneous Tasks

Refactor

  • Use info! rather than event! (2c07bb5)
  • Rename Config as ServerConfig (d5e9b14)
  • Compare whole server config in one go (aaaa975)
  • Reduce complexity starting server (7e08640)
  • Inline console_subscriber (0b85ac3)
  • Pass RepoDetails by reference (d2d49f3)
  • Reuse branch::reset to advance main branch to next (ab58981)
  • Reuse branch::reset to advance main branch to next (6bad8a2)
  • Reuse branch::reset to advance next towards dev (e0b1571)
  • Rename ResetForce::Normal as None (ec258bc)

Build

  • Add cargo config file (866d386)
  • Add initial CI (1d03fbf)
  • Add bacon.toml config (cb46138)
  • Add Dockerfile and builder (b5a1dd4)
  • TODO checker ignores git hook samples (161377f)
  • Run on cron and push to main (ac37e9e)
  • Don't include Cargo.lock in image (edf551b)
  • Don't specify patch level for todo checker (d2e0a7c)
  • Don't run todo checker on cron (1b0c09d)
  • Run checks against next branch too (cdaca82)
  • Split updating docker builder into seperate job (0b5c91f)
  • Merge and rename jobs (ca30d1b)
  • Restore dropped cargo build (cd18dbe)

Config

  • Add token field to Forge (a148493)