Struct github_issue_url::Issue[][src]

pub struct Issue<'a> { /* fields omitted */ }
Expand description

GitHub issue struct with support for every field available.

This struct is holds repository, username or organization name and fields to prefill when opening the issue url.

Example

use github_issue_url::Issue;

const GITHUB_ISSUE_LINK: &str = "https://github.com/EstebanBorai/github-issue-url/issues/new?title=Null%3A+The+Billion+Dollar+Mistake&body=Null+is+a+flag.+It+represents+different+situations+depending+on+the+context+in+which+it+is+used+and+invoked.+This+yields+the+most+serious+error+in+software+development%3A+Coupling+a+hidden+decision+in+the+contract+between+an+object+and+who+uses+it.&template=bug_report.md&labels=bug%2Cproduction%2Chigh-severity&assignee=EstebanBorai&milestone=1&projects=1";
const SAMPLE_ISSUE_BODY: &str = r#"Null is a flag. It represents different situations depending on the context in which it is used and invoked. This yields the most serious error in software development: Coupling a hidden decision in the contract between an object and who uses it."#;

let mut have = Issue::new("github-issue-url", "EstebanBorai").unwrap();

have.title("Null: The Billion Dollar Mistake");
have.body(SAMPLE_ISSUE_BODY);
have.template("bug_report.md");
have.labels("bug,production,high-severity");
have.assignee("EstebanBorai");
have.milestone("1");
have.projects("1");
let have = have.url().unwrap();

assert_eq!(have, GITHUB_ISSUE_LINK.to_string());

Implementations

impl<'a> Issue<'a>[src]

GitHub Issue including the repository name and the repository owner username.

Issue fields are kept in a Vec<(&'a str, &'a str)> for easy parsing when parsing the URL with query params.

Every optional param is specified using the setter methods.

pub fn new(repository_name: &'a str, repository_owner: &'a str) -> Result<Self>[src]

pub fn assignee(&mut self, assignee: &'a str)[src]

The username of the issue’s assignee.

The issue author requires write access to the repository in order to use this feature

pub fn body(&mut self, body: &'a str)[src]

Prefilled issue body content

pub fn labels(&mut self, labels: &'a str)[src]

Issue labels separated by comma (,). Example: bug,production,high-severity

The issue author requires write access to the repository in order to use this feature

pub fn milestone(&mut self, milestone: &'a str)[src]

The ID (number) of the milestone linked to this issue.

The milestone ID can be found in the Issues/Milestone section.

https://github.com///milestone/

The issue author requires write access to the repository in order to use this feature

pub fn projects(&mut self, projects: &'a str)[src]

The IDs (number) of the projects to link this issue to separated by comma (,).

Projects IDs are found in the repository session.

https://github.com///projects/

The issue author requires write access to the repository in order to use this feature

pub fn title(&mut self, title: &'a str)[src]

Prefilled issue title

pub fn template(&mut self, template: &'a str)[src]

The name of the issue template to use when opening the final link. An issue template lives in .github/ISSUE_TEMPLATE/.md, if the template you want to use when opening this link is ISSUE_TEMPLATE/bugs.md the value for Issue.template must be bugs.md

pub fn url(&'a self) -> Result<String>[src]

Trait Implementations

impl<'a> Debug for Issue<'a>[src]

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

Formats the value using the given formatter. Read more

impl<'a> PartialEq<Issue<'a>> for Issue<'a>[src]

fn eq(&self, other: &Issue<'a>) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &Issue<'a>) -> bool[src]

This method tests for !=.

impl<'a> Eq for Issue<'a>[src]

impl<'a> StructuralEq for Issue<'a>[src]

impl<'a> StructuralPartialEq for Issue<'a>[src]

Auto Trait Implementations

impl<'a> RefUnwindSafe for Issue<'a>

impl<'a> Send for Issue<'a>

impl<'a> Sync for Issue<'a>

impl<'a> Unpin for Issue<'a>

impl<'a> UnwindSafe for Issue<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.