╭ changed ──╮ │src/web.zig│ ╰───────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │702 │ │703 var repo = try rp.Repo(.xit, .{}).open(io, allocator, .{ .path = repo_path }); │ │704 defer repo.deinit(io, allocator); │ │705 - try evt.Comment.update(.xit, .{}, io, allocator, &repo, &thread_id, &comment_id, body, author_email);│ │705 + try evt.Comment.update(.xit, .{}, io, allocator, &repo, &thread_id, &comment_id, body, author); │ │706 }, │ │707 .local => |src| { │ │708 if (parts.repo_base.len != 0) return error.NotFound; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │709 switch (src.repo_kind) { │ │710 inline else => |repo_kind| { │ │711 - var any_repo = try rp.AnyRepo(repo_kind, .{}).open(io, allocator, .{ .path = src.path }); │ │711 + var any_repo = try rp.AnyRepo(repo_kind, .{}).open(io, allocator, src.localInitOpts()); │ │712 defer any_repo.deinit(io, allocator); │ │713 switch (any_repo) { │ │714 - inline else => |*repo| try evt.Comment.update(repo_kind, repo.self_repo_opts, io, allocator, repo, &thread_id, &comment_id, body, author_email),│ │714 + inline else => |*repo| try evt.Comment.update(repo_kind, repo.self_repo_opts, io, allocator, repo, &thread_id, &comment_id, body, author), │ │715 } │ │716 }, │ │717 } │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │746 ) !void { │ │747 var author_arena = std.heap.ArenaAllocator.init(allocator); │ │748 defer author_arena.deinit(); │ │749 - const author_email = (try eventAuthorEmail(io, allocator, &author_arena, request, host)) orelse return respondLoginRequired(request);│ │749 + const author = (try eventAuthor(io, allocator, &author_arena, request, host)) orelse return respondLoginRequired(request); │ │750 │ │751 var body_buf: [256]u8 = undefined; │ │752 const reader = request.readerExpectNone(&body_buf); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ │768 } │ │769 │ │770 const not_found = "comment not found"; │ │771 - updateComment(io, allocator, host, parts, body, author_email) catch |err| switch (err) {│ │771 + updateComment(io, allocator, host, parts, body, author) catch |err| switch (err) { │ │772 error.NotFound => { │ │773 try request.respond(not_found, .{ │ │774 .status = .not_found, │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────╮ │809 host: Host, │ │810 parts: IssueBaseParts, │ │811 update: evt.Issue.Update,│ │812 - author_email: []const u8,│ │812 + author: evt.CommitAuthor,│ │813 ) !void { │ │814 switch (host) { │ │815 .remote => |remote| {│ ╰──────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │825 │ │826 var repo = try rp.Repo(.xit, .{}).open(io, allocator, .{ .path = repo_path }); │ │827 defer repo.deinit(io, allocator); │ │828 - try evt.Issue.update(.xit, .{}, io, allocator, &repo, &parts.id_bytes, update, author_email);│ │828 + try evt.Issue.update(.xit, .{}, io, allocator, &repo, &parts.id_bytes, update, author); │ │829 }, │ │830 .local => |src| { │ │831 // the local forms post to "/issue:<id>/...", so the repo base │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │833 if (parts.repo_base.len != 0) return error.NotFound; │ │834 switch (src.repo_kind) { │ │835 inline else => |repo_kind| { │ │836 - var any_repo = try rp.AnyRepo(repo_kind, .{}).open(io, allocator, .{ .path = src.path }); │ │836 + var any_repo = try rp.AnyRepo(repo_kind, .{}).open(io, allocator, src.localInitOpts()); │ │837 defer any_repo.deinit(io, allocator); │ │838 switch (any_repo) { │ │839 - inline else => |*repo| try evt.Issue.update(repo_kind, repo.self_repo_opts, io, allocator, repo, &parts.id_bytes, update, author_email),│ │839 + inline else => |*repo| try evt.Issue.update(repo_kind, repo.self_repo_opts, io, allocator, repo, &parts.id_bytes, update, author), │ │840 } │ │841 }, │ │842 } │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │866 │ │867 var author_arena = std.heap.ArenaAllocator.init(allocator); │ │868 defer author_arena.deinit(); │ │869 - const author_email = (try eventAuthorEmail(io, allocator, &author_arena, request, host)) orelse return respondLoginRequired(request);│ │869 + const author = (try eventAuthor(io, allocator, &author_arena, request, host)) orelse return respondLoginRequired(request); │ │870 │ │871 - updateIssue(io, allocator, host, parts, .{ .status = status }, author_email) catch |err| switch (err) { │ │871 + updateIssue(io, allocator, host, parts, .{ .status = status }, author) catch |err| switch (err) { │ │872 error.NotFound => { │ │873 try request.respond(not_found, .{ │ │874 .status = .not_found, │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │901 ) !void { │ │902 var author_arena = std.heap.ArenaAllocator.init(allocator); │ │903 defer author_arena.deinit(); │ │904 - const author_email = (try eventAuthorEmail(io, allocator, &author_arena, request, host)) orelse return respondLoginRequired(request);│ │904 + const author = (try eventAuthor(io, allocator, &author_arena, request, host)) orelse return respondLoginRequired(request); │ │905 │ │906 var body_buf: [256]u8 = undefined; │ │907 const reader = request.readerExpectNone(&body_buf); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────╮ │943 .title = title, │ │944 .tags = tags, │ │945 .description = description, │ │946 - } }, author_email) catch |err| switch (err) {│ │946 + } }, author) catch |err| switch (err) { │ │947 error.NotFound => { │ │948 try request.respond(not_found, .{ │ │949 .status = .not_found, │ ╰──────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯