Class GHIssue

java.lang.Object
org.kohsuke.github.GHObject
org.kohsuke.github.GHIssue
All Implemented Interfaces:
Reactable
Direct Known Subclasses:
GHPullRequest

public class GHIssue extends GHObject implements Reactable
Represents an issue on GitHub.
Author:
Eric Maupin, Kohsuke Kawaguchi
See Also:
  • Field Details

    • assignee

      protected GHUser assignee
      The assignee.
    • assignees

      protected GHUser[] assignees
      The assignees.
    • state

      protected String state
      The state.
    • state_reason

      protected String state_reason
      The state reason.
    • number

      protected int number
      The number.
    • closed_at

      protected String closed_at
      The closed at.
    • comments

      protected int comments
      The comments.
    • body

      protected String body
      The body.
    • labels

      protected List<GHLabel> labels
      The labels.
    • user

      protected GHUser user
      The user.
    • title

      protected String title
      The html url.
    • html_url

      protected String html_url
      The html url.
    • pull_request

      protected GHIssue.PullRequest pull_request
      The pull request.
    • milestone

      protected GHMilestone milestone
      The milestone.
    • closed_by

      protected GHUser closed_by
      The closed by.
    • locked

      protected boolean locked
      The locked.
  • Constructor Details

    • GHIssue

      public GHIssue()
  • Method Details

    • getRepository

      public GHRepository getRepository()
      Repository to which the issue belongs.
      Returns:
      the repository
    • getBody

      public String getBody()
      The description of this pull request.
      Returns:
      the body
    • getNumber

      public int getNumber()
      ID.
      Returns:
      the number
    • getHtmlUrl

      public URL getHtmlUrl()
      The HTML page of this issue, like https://github.com/jenkinsci/jenkins/issues/100
      Specified by:
      getHtmlUrl in class GHObject
      Returns:
      the html url
    • getTitle

      public String getTitle()
      Gets title.
      Returns:
      the title
    • isLocked

      public boolean isLocked()
      Is locked boolean.
      Returns:
      the boolean
    • getState

      public GHIssueState getState()
      Gets state.
      Returns:
      the state
    • getStateReason

      public GHIssueStateReason getStateReason()
      Gets state reason.
      Returns:
      the state reason
    • getLabels

      public Collection<GHLabel> getLabels()
      Gets labels.
      Returns:
      the labels
    • getClosedAt

      public Date getClosedAt()
      Gets closed at.
      Returns:
      the closed at
    • getApiURL

      @Deprecated public URL getApiURL()
      Deprecated.
      Gets api url.
      Returns:
      API URL of this object.
    • lock

      public void lock() throws IOException
      Lock.
      Throws:
      IOException - the io exception
    • unlock

      public void unlock() throws IOException
      Unlock.
      Throws:
      IOException - the io exception
    • comment

      @WithBridgeMethods(void.class) public GHIssueComment comment(String message) throws IOException
      Updates the issue by adding a comment.
      Parameters:
      message - the message
      Returns:
      Newly posted comment.
      Throws:
      IOException - the io exception
    • close

      public void close() throws IOException
      Closes this issue.
      Throws:
      IOException - the io exception
    • close

      public void close(GHIssueStateReason reason) throws IOException
      Closes this issue.
      Parameters:
      reason - the reason the issue was closed
      Throws:
      IOException - the io exception
    • reopen

      public void reopen() throws IOException
      Reopens this issue.
      Throws:
      IOException - the io exception
    • setTitle

      public void setTitle(String title) throws IOException
      Sets title.
      Parameters:
      title - the title
      Throws:
      IOException - the io exception
    • setBody

      public void setBody(String body) throws IOException
      Sets body.
      Parameters:
      body - the body
      Throws:
      IOException - the io exception
    • setMilestone

      public void setMilestone(GHMilestone milestone) throws IOException
      Sets the milestone for this issue.
      Parameters:
      milestone - The milestone to assign this issue to. Use null to remove the milestone for this issue.
      Throws:
      IOException - The io exception
    • assignTo

      public void assignTo(GHUser user) throws IOException
      Assign to.
      Parameters:
      user - the user
      Throws:
      IOException - the io exception
    • setLabels

      public void setLabels(String... labels) throws IOException
      Sets labels on the target to a specific list.
      Parameters:
      labels - the labels
      Throws:
      IOException - the io exception
    • addLabels

      @WithBridgeMethods(void.class) public List<GHLabel> addLabels(String... names) throws IOException
      Adds labels to the issue. Labels that are already present on the target are ignored.
      Parameters:
      names - Names of the label
      Returns:
      the complete list of labels including the new additions
      Throws:
      IOException - the io exception
    • addLabels

      @WithBridgeMethods(void.class) public List<GHLabel> addLabels(GHLabel... labels) throws IOException
      Add labels. Labels that are already present on the target are ignored.
      Parameters:
      labels - the labels
      Returns:
      the complete list of labels including the new additions
      Throws:
      IOException - the io exception
    • addLabels

      @WithBridgeMethods(void.class) public List<GHLabel> addLabels(Collection<GHLabel> labels) throws IOException
      Add labels. Labels that are already present on the target are ignored.
      Parameters:
      labels - the labels
      Returns:
      the complete list of labels including the new additions
      Throws:
      IOException - the io exception
    • removeLabel

      @WithBridgeMethods(void.class) public List<GHLabel> removeLabel(String name) throws IOException
      Remove a single label. Attempting to remove a label that is not present throws GHFileNotFoundException.
      Parameters:
      name - the name
      Returns:
      the remaining list of labels
      Throws:
      IOException - the io exception, throws GHFileNotFoundException if label was not present.
    • removeLabels

      @WithBridgeMethods(void.class) public List<GHLabel> removeLabels(String... names) throws IOException
      Remove a collection of labels. Attempting to remove labels that are not present on the target are ignored.
      Parameters:
      names - the names
      Returns:
      the remaining list of labels
      Throws:
      IOException - the io exception
    • removeLabels

      @WithBridgeMethods(void.class) public List<GHLabel> removeLabels(GHLabel... labels) throws IOException
      Remove a collection of labels. Attempting to remove labels that are not present on the target are ignored.
      Parameters:
      labels - the labels
      Returns:
      the remaining list of labels
      Throws:
      IOException - the io exception
      See Also:
    • removeLabels

      @WithBridgeMethods(void.class) public List<GHLabel> removeLabels(Collection<GHLabel> labels) throws IOException
      Remove a collection of labels. Attempting to remove labels that are not present on the target are ignored.
      Parameters:
      labels - the labels
      Returns:
      the remaining list of labels
      Throws:
      IOException - the io exception
    • getComments

      public List<GHIssueComment> getComments() throws IOException
      Obtains all the comments associated with this issue.
      Returns:
      the comments
      Throws:
      IOException - the io exception
      See Also:
    • listComments

      public PagedIterable<GHIssueComment> listComments() throws IOException
      Obtains all the comments associated with this issue, without any filter.
      Returns:
      the paged iterable
      Throws:
      IOException - the io exception
      See Also:
    • queryComments

      public GHIssueCommentQueryBuilder queryComments()
      Search comments on this issue by specifying filters through a builder pattern.
      Returns:
      the query builder
      See Also:
    • createReaction

      @Preview(SQUIRREL_GIRL) public GHReaction createReaction(ReactionContent content) throws IOException
      Creates the reaction.
      Specified by:
      createReaction in interface Reactable
      Parameters:
      content - the content
      Returns:
      the GH reaction
      Throws:
      IOException - Signals that an I/O exception has occurred.
    • deleteReaction

      public void deleteReaction(GHReaction reaction) throws IOException
      Delete reaction.
      Specified by:
      deleteReaction in interface Reactable
      Parameters:
      reaction - the reaction
      Throws:
      IOException - Signals that an I/O exception has occurred.
    • listReactions

      @Preview(SQUIRREL_GIRL) public PagedIterable<GHReaction> listReactions()
      List reactions.
      Specified by:
      listReactions in interface Reactable
      Returns:
      the paged iterable
    • addAssignees

      public void addAssignees(GHUser... assignees) throws IOException
      Add assignees.
      Parameters:
      assignees - the assignees
      Throws:
      IOException - the io exception
    • addAssignees

      public void addAssignees(Collection<GHUser> assignees) throws IOException
      Add assignees.
      Parameters:
      assignees - the assignees
      Throws:
      IOException - the io exception
    • setAssignees

      public void setAssignees(GHUser... assignees) throws IOException
      Sets assignees.
      Parameters:
      assignees - the assignees
      Throws:
      IOException - the io exception
    • setAssignees

      public void setAssignees(Collection<GHUser> assignees) throws IOException
      Sets assignees.
      Parameters:
      assignees - the assignees
      Throws:
      IOException - the io exception
    • removeAssignees

      public void removeAssignees(GHUser... assignees) throws IOException
      Remove assignees.
      Parameters:
      assignees - the assignees
      Throws:
      IOException - the io exception
    • removeAssignees

      public void removeAssignees(Collection<GHUser> assignees) throws IOException
      Remove assignees.
      Parameters:
      assignees - the assignees
      Throws:
      IOException - the io exception
    • getApiRoute

      protected String getApiRoute()
      Gets api route.
      Returns:
      the api route
    • getIssuesApiRoute

      protected String getIssuesApiRoute()
      Gets issues api route.
      Returns:
      the issues api route
    • getAssignee

      public GHUser getAssignee() throws IOException
      Gets assignee.
      Returns:
      the assignee
      Throws:
      IOException - the io exception
    • getAssignees

      public List<GHUser> getAssignees()
      Gets assignees.
      Returns:
      the assignees
    • getUser

      public GHUser getUser() throws IOException
      User who submitted the issue.
      Returns:
      the user
      Throws:
      IOException - the io exception
    • getClosedBy

      public GHUser getClosedBy() throws IOException
      Reports who has closed the issue.

      Note that GitHub doesn't always seem to report this information even for an issue that's already closed. See https://github.com/kohsuke/github-api/issues/60.

      Returns:
      the closed by
      Throws:
      IOException - the io exception
    • getCommentsCount

      public int getCommentsCount()
      Gets comments count.
      Returns:
      the comments count
    • getPullRequest

      public GHIssue.PullRequest getPullRequest()
      Returns non-null if this issue is a shadow of a pull request.
      Returns:
      the pull request
    • isPullRequest

      public boolean isPullRequest()
      Is pull request boolean.
      Returns:
      the boolean
    • getMilestone

      public GHMilestone getMilestone()
      Gets milestone.
      Returns:
      the milestone
    • getLogins

      protected static List<String> getLogins(Collection<GHUser> users)
      Gets the logins.
      Parameters:
      users - the users
      Returns:
      the logins
    • listEvents

      public PagedIterable<GHIssueEvent> listEvents() throws IOException
      Lists events for this issue. See https://developer.github.com/v3/issues/events/
      Returns:
      the paged iterable
      Throws:
      IOException - the io exception
    • getRoot

      @Deprecated public GitHub getRoot()
      Deprecated.
      For access to the GitHub instance, use a local copy instead of pulling it out of objects.
      Get the root GitHub instance for this object.
      Returns:
      the root GitHub instance