rename pr verbs per review: request-review -> assign-reviewer, assign -> assign-committer

This commit is contained in:
damocles 2026-07-02 21:00:38 +02:00 committed by mara
commit 224cb06004
5 changed files with 19 additions and 17 deletions

View file

@ -55,8 +55,9 @@ hive-forge pr-reviews 42 # list reviews; inline comments incl
hive-forge pr-reviews 42 --approve # submit APPROVED review
hive-forge pr-reviews 42 --request-changes -m "msg" # submit REQUEST_CHANGES review
hive-forge pr-reviews 42 --comment -m "msg" # submit COMMENT review
hive-forge pr request-review 42 argus # set argus as a requested reviewer on the PR
hive-forge pr request-review 42 argus --remove # withdraw the request
hive-forge pr assign-reviewer 42 argus # set argus as a requested reviewer on the PR
hive-forge pr assign-reviewer 42 argus --remove # withdraw the request
hive-forge pr assign-committer 42 damocles # add damocles to the PR's assignee list
hive-forge diff 42 # unified diff (lockfile hunks collapsed by default)
hive-forge diff 42 --full # include unfiltered lockfile hunks
hive-forge list # open issues/PRs

View file

@ -63,7 +63,7 @@ enum Verb {
/// Edit an issue's title, body, state, or milestone.
#[command(hide = true)]
IssueEdit(verbs::issue_edit::Args),
/// PR-scoped commands: `pr <show|status|create|merge|reviews|commits|diff|view|comment|comments|close|reopen|labels|assign|timeline> …`.
/// PR-scoped commands: `pr <show|status|create|merge|reviews|assign-reviewer|commits|diff|view|comment|comments|close|reopen|labels|assign-committer|timeline> …`.
Pr(verbs::pr_cmd::Args),
/// List a PR's commits as JSON (sha, message, author date, author).
/// Survives rebase-rewritten shas — message + author date let a
@ -137,7 +137,7 @@ enum Verb {
PrReviews(verbs::pr_reviews::Args),
/// Request (or withdraw with `--remove`) a review from a user on a PR.
#[command(hide = true)]
PrRequestReview(verbs::pr_request_review::Args),
PrAssignReviewer(verbs::pr_assign_reviewer::Args),
/// List branches, optionally filtered.
Branches(verbs::branches::Args),
/// Print the tree SHA at a branch or commit.
@ -203,7 +203,7 @@ fn main() -> Result<()> {
Verb::Milestone(a) => verbs::milestone::run(&client, a),
Verb::PrMerge(a) => verbs::pr_merge::run(&client, a),
Verb::PrReviews(a) => verbs::pr_reviews::run(&client, a),
Verb::PrRequestReview(a) => verbs::pr_request_review::run(&client, a),
Verb::PrAssignReviewer(a) => verbs::pr_assign_reviewer::run(&client, a),
Verb::Branches(a) => verbs::branches::run(&client, a),
Verb::TreeSha(a) => verbs::tree_sha::run(&client, a),
Verb::Diff(a) => verbs::diff::run(&client, a),

View file

@ -26,11 +26,11 @@ pub mod lint;
pub mod list;
pub mod milestone;
pub mod pr;
pub mod pr_assign_reviewer;
pub mod pr_cmd;
pub mod pr_commits;
pub mod pr_create;
pub mod pr_merge;
pub mod pr_request_review;
pub mod pr_reviews;
pub mod pr_status;
pub mod reopen;

View file

@ -1,6 +1,6 @@
//! `pr-request-review <number> <user> [--remove]` — add or remove a
//! requested reviewer on a PR. Unlike `assign` (assignees, mutate +
//! PATCH the issue) Forgejo has a dedicated endpoint pair for review
//! `pr assign-reviewer <number> <user> [--remove]` — add or remove a
//! requested reviewer on a PR. Unlike `pr assign-committer` (assignees,
//! mutate + PATCH the issue) Forgejo has a dedicated endpoint pair for review
//! requests: `POST /repos/{repo}/pulls/{index}/requested_reviewers`
//! adds, `DELETE` (same path + body) removes. Requesting a review from
//! a user who is already requested is a Forgejo-side no-op, so the verb
@ -15,7 +15,7 @@ use crate::client::Client;
#[derive(ClapArgs)]
pub struct Args {
/// PR number.
pub(crate) number: u64,
number: u64,
/// User login to request a review from (or withdraw with `--remove`).
user: String,
/// Withdraw the review request instead of adding it.

View file

@ -1,7 +1,7 @@
//! `pr <verb>` — PR-scoped sub-commands. Wraps the per-verb modules under a
//! `pr` parent so `hive-forge pr close 42`, `pr status --pr 42`, etc. read as
//! kind-namespaced commands. The generic verbs that also work on issues
//! (view/comment/comments/close/reopen/labels/assign/timeline) kind-check the number
//! (view/comment/comments/close/reopen/labels/assign-committer/timeline) kind-check the number
//! is a PR first (`assert_kind`); the PR-only verbs hit `/pulls/…` and are
//! kind-correct by construction. The flat `pr-*` + bare generic verbs stay as
//! hidden back-compat aliases (see `main.rs`).
@ -32,8 +32,8 @@ enum Cmd {
Merge(verbs::pr_merge::Args),
/// List a PR's reviews, or submit one.
Reviews(verbs::pr_reviews::Args),
/// Request (or withdraw) a review from a user.
RequestReview(verbs::pr_request_review::Args),
/// Request (or withdraw with `--remove`) a review from a user.
AssignReviewer(verbs::pr_assign_reviewer::Args),
/// Print the PR's unified diff.
Diff(verbs::diff::Args),
/// Show title + body + comments.
@ -48,8 +48,9 @@ enum Cmd {
Reopen(verbs::reopen::Args),
/// List / add / remove labels.
Labels(verbs::labels::Args),
/// Assign or unassign a user.
Assign(verbs::assign::Args),
/// Assign or unassign a user (the PR's assignee list).
#[command(alias = "assign")]
AssignCommitter(verbs::assign::Args),
/// List timeline events.
Timeline(verbs::timeline::Args),
}
@ -63,7 +64,7 @@ pub fn run(client: &Client, args: Args) -> Result<()> {
Cmd::Status(a) => verbs::pr_status::run(client, a),
Cmd::Merge(a) => verbs::pr_merge::run(client, a),
Cmd::Reviews(a) => verbs::pr_reviews::run(client, a),
Cmd::RequestReview(a) => verbs::pr_request_review::run(client, a),
Cmd::AssignReviewer(a) => verbs::pr_assign_reviewer::run(client, a),
Cmd::Diff(a) => verbs::diff::run(client, a),
// Generics shared with `issue` — verify the number is a PR first.
Cmd::View(a) => {
@ -90,7 +91,7 @@ pub fn run(client: &Client, args: Args) -> Result<()> {
assert_kind(client, a.number, Kind::Pr)?;
verbs::labels::run(client, a)
}
Cmd::Assign(a) => {
Cmd::AssignCommitter(a) => {
assert_kind(client, a.number, Kind::Pr)?;
verbs::assign::run(client, a)
}