╭ changed ───────╮ │src/test/net.zig│ ╰────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │637 defer arena.deinit(); │ │638 const moment = try evt.currentMoment(repo_opts, &target); │ │639 const patch = (try evt.Patch.readById(evt.EventDB(hash_kind), hash_kind, moment, &arena, &fork_id)) orelse return error.NotFound; │ │640 - try evt.Patch.update(.server, .xit, repo_opts, io, allocator, &target, &fork_id, .{ .fields = .{ │ │640 + try evt.Patch.update(.{ .server = .{ .users_dir = users_dir } }, .xit, repo_opts, io, allocator, &target, &fork_id, .{ .fields = .{│ │641 .title = "edited feature", │ │642 .description = patch.event.description, │ │643 .labels = patch.event.labels, │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │725 { │ │726 var target = try rp.Repo(.xit, repo_opts).open(io, allocator, .{ .path = target_path }); │ │727 defer target.deinit(io, allocator); │ │728 - try evt.remove(.server, .repo, .xit, repo_opts, io, allocator, &target, &fork_id, .patch, .{ .name = "admin", .email = "admin@example.test" }); │ │728 + try evt.remove(.{ .server = .{ .users_dir = users_dir } }, .repo, .xit, repo_opts, io, allocator, &target, &fork_id, .patch, .{ .name = "admin", .email = "admin@example.test" });│ │729 } │ │730 try client.push(io, allocator, "patch-to-feature", "master:patch", false, .{ .wire = .{ .ssh = .{ .command = ssh_cmd } } }); │ │731 { │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │749 defer arena.deinit(); │ │750 const moment = try evt.currentMoment(repo_opts, &target); │ │751 const removed = (try evt.Patch.readById(evt.EventDB(hash_kind), hash_kind, moment, &arena, &fork_id)) orelse return error.NotFound;│ │752 - try evt.consume(.server, .repo, .xit, repo_opts, io, allocator, &target, evt.events_ref, &.{.{ │ │752 + try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .repo, .xit, repo_opts, io, allocator, &target, evt.events_ref, &.{.{ │ │753 .id = fork_id_hex, │ │754 .timestamp = 4, │ │755 .author = .{ .name = "admin", .email = "admin@example.test" }, │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │798 { │ │799 var user_repo = (try evt.openUserRepo(io, allocator, users_dir, &user_id)) orelse return error.NotFound; │ │800 defer user_repo.deinit(io, allocator); │ │801 - try evt.remove(.server, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, &repo_id, .repo, .{ .name = "admin", .email = "admin@example.test" }); │ │801 + try evt.remove(.{ .server = .{ .users_dir = users_dir } }, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, &repo_id, .repo, .{ .name = "admin", .email = "admin@example.test" });│ │802 } │ │803 const clone_path = try std.fs.path.join(allocator, &.{ temp_path, "fork-clone" }); │ │804 defer allocator.free(clone_path); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │817 { │ │818 var user_repo = (try evt.openUserRepo(io, allocator, users_dir, &user_id)) orelse return error.NotFound; │ │819 defer user_repo.deinit(io, allocator); │ │820 - try evt.consume(.server, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, evt.events_ref, &.{ │ │820 + try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, evt.events_ref, &.{│ │821 .{ │ │822 .id = std.fmt.bytesToHex(repo_id, .lower), │ │823 .timestamp = 2, │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │831 }); │ │832 var admin = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = admin_path }); │ │833 defer admin.deinit(io, allocator); │ │834 - try evt.consume(.server, .admin, .xit, evt.admin_repo_opts, io, allocator, &admin, evt.events_ref, &.{ │ │834 + try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .admin, .xit, evt.admin_repo_opts, io, allocator, &admin, evt.events_ref, &.{│ │835 .{ │ │836 .id = std.fmt.bytesToHex(user_id, .lower), │ │837 .timestamp = 2, │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1642 var password_hash_buf: [evt.User.password_hash_max_len]u8 = undefined; │ │1643 const password_hash = try evt.User.hashPassword("password", &password_hash_buf, io); │ │1644 │ │1645 - try evt.consume(.server, .admin, .xit, evt.admin_repo_opts, io, allocator, &repo, evt.events_ref, &[_]evt.EventWithId{.{ │ │1645 + const users_dir = try std.fs.path.join(allocator, &.{ data_path, "users" }); │ │1646 + defer allocator.free(users_dir); │ │1647 + try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .admin, .xit, evt.admin_repo_opts, io, allocator, &repo, evt.events_ref, &[_]evt.EventWithId{.{│ │1648 .id = std.fmt.bytesToHex(user_id, .lower), │ │1649 .author = .{ .name = "admin", .email = "admin@example.test" }, │ │1650 .event = .{ .user = .{ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────╮ │1655 } }, │ │1656 }}); │ │1657 │ │1656 - const users_dir = try std.fs.path.join(allocator, &.{ data_path, "users" });│ │1657 - defer allocator.free(users_dir); │ │1658 const user_repo_path = try evt.userRepoPath(allocator, users_dir, &user_id);│ │1659 defer allocator.free(user_repo_path); │ │1660 var user_repo = try evt.initUserRepo(io, allocator, user_repo_path); │ ╰──────────────────────────────────────────────────────────────────────────────────────╯