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.
    • stateReason

      protected String stateReason
      The state reason.
    • number

      protected int number
      The number.
    • closedAt

      protected String closedAt
      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.
    • htmlUrl

      protected String htmlUrl
      The html url.
    • pullRequest

      protected GHIssue.PullRequest pullRequest
      The pull request.
    • milestone

      protected GHMilestone milestone
      The milestone.
    • closedBy

      protected GHUser closedBy
      The closed by.
    • locked

      protected boolean locked
      The locked.
  • Constructor Details

    • GHIssue

      public GHIssue()
      Create default GHIssue instance
  • 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
      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

      @WithBridgeMethods(value=java.util.Date.class, adapterMethod="instantToDate") public Instant getClosedAt()
      Gets closed at.
      Returns:
      the closed at
    • 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

      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

      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

      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

      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

      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

      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

      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

      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()
      Obtains all the comments associated with this issue, without any filter.
      Returns:
      the paged iterable
      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

      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

      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()
      Gets assignee.
      Returns:
      the assignee
    • getAssignees

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

      public GHUser getUser()
      User who submitted the issue.
      Returns:
      the user
    • getClosedBy

      public GHUser getClosedBy()
      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
    • 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()
      Lists events for this issue. See https://developer.github.com/v3/issues/events/
      Returns:
      the paged iterable