Skip to main content

IssueRef

Enum IssueRef 

Source
pub enum IssueRef {
    GitHub {
        owner: String,
        repo: String,
        number: u64,
    },
    Linear {
        owner: String,
        repo: String,
        id: String,
    },
    AzureDevOps {
        org: String,
        project: String,
        repo: String,
        id: u64,
    },
    Local {
        project_path: PathBuf,
        display_number: u32,
    },
}
Expand description

A reference to an issue that identifies a workspace.

Variants§

§

GitHub

A GitHub issue identified by owner, repo, and number.

Fields

§owner: String

GitHub organization or user name.

§repo: String

Repository name.

§number: u64

Issue number.

§

Linear

A Linear issue identified by its UUID, paired with the GitHub repo that hosts the code for that project.

Fields

§owner: String

GitHub organization or user name that hosts the code.

§repo: String

Repository name.

§id: String

Linear issue UUID.

§

AzureDevOps

An Azure DevOps work item paired with an Azure Repos git repository.

Fields

§org: String

Azure DevOps organization name.

§project: String

Azure DevOps project name.

§repo: String

Azure Repos git repository name.

§id: u64

Work item ID.

§

Local

A local Centy issue — the repository itself is the source, no remote clone needed.

Fields

§project_path: PathBuf

Absolute path to the local project repository.

§display_number: u32

Human-readable issue number shown in the branch name.

Implementations§

Source§

impl IssueRef

Source

pub fn workspace_dir_name(&self) -> String

Directory name used inside the bare clone for this worktree.

Source

pub fn branch_name(&self) -> String

Git branch name for this issue worktree.

Source

pub fn clone_url(&self) -> String

HTTPS clone URL for the repository.

§Panics

Always panics for IssueRef::Local — local repos are never cloned.

Source§

impl IssueRef

Source

pub fn parse(s: &str) -> Result<Self>

Parse any of the supported input formats:

  • https://github.com/owner/repo/issues/42
  • worktree://open?owner=X&repo=Y&issue=42
  • worktree://open?url=<encoded-github-url>
  • worktree://open?owner=X&repo=Y&linear_id=<uuid>
  • owner/repo#42
  • owner/repo@<linear-uuid>
§Errors

Returns an error if s does not match any supported format or if the extracted values (e.g. issue number) are invalid.

Source

pub fn parse_with_options(s: &str) -> Result<(Self, DeepLinkOptions)>

Like [parse] but also returns any DeepLinkOptions embedded in a worktree:// URL (e.g. the editor query param).

§Errors

Returns an error if s cannot be parsed as a valid issue reference.

Source§

impl IssueRef

Source

pub fn temp_path(&self) -> PathBuf

Path to the worktree checkout.

For Local: ~/worktrees/local/{project_name}/issue-{display_number} For others: ~/worktrees/github/{owner}/{repo}/issue-N

Source

pub fn bare_clone_path(&self) -> PathBuf

Path to the bare clone (or the local repo itself for Local).

§Panics

Panics if the home directory cannot be determined.

Trait Implementations§

Source§

impl Clone for IssueRef

Source§

fn clone(&self) -> IssueRef

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for IssueRef

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for IssueRef

Source§

fn eq(&self, other: &IssueRef) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for IssueRef

Source§

impl StructuralPartialEq for IssueRef

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.