Class EpicsApi

All Implemented Interfaces:
Constants

public class EpicsApi extends AbstractApi
This class implements the client side API for the GitLab Epics and Epic Issues API calls. NOTE: - If a user is not a member of a group and the group is private, a GET request on that group will result to a 404 status code. - Epics are available only in Ultimate. If epics feature is not available a 403 status code will be returned.
See Also:
  • Constructor Details

    • EpicsApi

      public EpicsApi(GitLabApi gitLabApi)
  • Method Details

    • getEpics

      public List<Epic> getEpics(Object groupIdOrPath) throws GitLabApiException
      Gets all epics of the requested group and its subgroups.
      GitLab Endpoint: GET /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      Returns:
      a list of all epics of the requested group and its subgroups
      Throws:
      GitLabApiException - if any exception occurs
    • getEpics

      public List<Epic> getEpics(Object groupIdOrPath, int page, int perPage) throws GitLabApiException
      Gets all epics of the requested group and its subgroups using the specified page and per page setting.
      GitLab Endpoint: GET /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      page - the page to get
      perPage - the number of issues per page
      Returns:
      a list of all epics of the requested group and its subgroups in the specified range
      Throws:
      GitLabApiException - if any exception occurs
    • getEpics

      public Pager<Epic> getEpics(Object groupIdOrPath, int itemsPerPage) throws GitLabApiException
      Get a Pager of all epics of the requested group and its subgroups.
      GitLab Endpoint: GET /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      itemsPerPage - the number of issues per page
      Returns:
      the Pager of all epics of the requested group and its subgroups
      Throws:
      GitLabApiException - if any exception occurs
    • getEpicsStream

      public Stream<Epic> getEpicsStream(Object groupIdOrPath) throws GitLabApiException
      Gets all epics of the requested group and its subgroups as a Stream.
      GitLab Endpoint: GET /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      Returns:
      a Stream of all epics of the requested group and its subgroups
      Throws:
      GitLabApiException - if any exception occurs
    • getEpics

      public List<Epic> getEpics(Object groupIdOrPath, Long authorId, String labels, Constants.EpicOrderBy orderBy, Constants.SortOrder sortOrder, String search) throws GitLabApiException
      Gets all epics of the requested group and its subgroups.
      GitLab Endpoint: GET /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      authorId - returns epics created by the given user id
      labels - return epics matching a comma separated list of labels names. Label names from the epic group or a parent group can be used
      orderBy - return epics ordered by CREATED_AT or UPDATED_AT. Default is CREATED_AT
      sortOrder - return epics sorted in ASC or DESC order. Default is DESC
      search - search epics against their title and description
      Returns:
      a list of matching epics of the requested group and its subgroups
      Throws:
      GitLabApiException - if any exception occurs
    • getEpics

      public List<Epic> getEpics(Object groupIdOrPath, Long authorId, String labels, Constants.EpicOrderBy orderBy, Constants.SortOrder sortOrder, String search, int page, int perPage) throws GitLabApiException
      Gets all epics of the requested group and its subgroups using the specified page and per page setting.
      GitLab Endpoint: GET /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      authorId - returns epics created by the given user id
      labels - return epics matching a comma separated list of labels names Label names from the epic group or a parent group can be used
      orderBy - return epics ordered by CREATED_AT or UPDATED_AT. Default is CREATED_AT
      sortOrder - return epics sorted in ASC or DESC order. Default is DESC
      search - search epics against their title and description
      page - the page to get
      perPage - the number of issues per page
      Returns:
      a list of matching epics of the requested group and its subgroups in the specified range
      Throws:
      GitLabApiException - if any exception occurs
    • getEpics

      public Pager<Epic> getEpics(Object groupIdOrPath, Long authorId, String labels, Constants.EpicOrderBy orderBy, Constants.SortOrder sortOrder, String search, int itemsPerPage) throws GitLabApiException
      Get a Pager of all epics of the requested group and its subgroups.
      GitLab Endpoint: GET /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      authorId - returns epics created by the given user id
      labels - return epics matching a comma separated list of labels names. Label names from the epic group or a parent group can be used
      itemsPerPage - the number of issues per page
      orderBy - return epics ordered by CREATED_AT or UPDATED_AT. Default is CREATED_AT
      sortOrder - return epics sorted in ASC or DESC order. Default is DESC
      search - search epics against their title and description
      Returns:
      the Pager of matching epics of the requested group and its subgroups
      Throws:
      GitLabApiException - if any exception occurs
    • getEpicsStream

      public Stream<Epic> getEpicsStream(Object groupIdOrPath, Long authorId, String labels, Constants.EpicOrderBy orderBy, Constants.SortOrder sortOrder, String search) throws GitLabApiException
      Gets all epics of the requested group and its subgroups as a Stream.
      GitLab Endpoint: GET /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      authorId - returns epics created by the given user id
      labels - return epics matching a comma separated list of labels names. Label names from the epic group or a parent group can be used
      orderBy - return epics ordered by CREATED_AT or UPDATED_AT. Default is CREATED_AT
      sortOrder - return epics sorted in ASC or DESC order. Default is DESC
      search - search epics against their title and description
      Returns:
      a Stream of matching epics of the requested group and its subgroups
      Throws:
      GitLabApiException - if any exception occurs
    • getEpic

      public Epic getEpic(Object groupIdOrPath, Long epicIid) throws GitLabApiException
      Get a single epic for the specified group.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get
      Returns:
      an Epic instance for the specified Epic
      Throws:
      GitLabApiException - if any exception occurs
    • getOptionalEpic

      public Optional<Epic> getOptionalEpic(Object groupIdOrPath, Long epicIid)
      Get an Optional instance with the value for the specific Epic.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get
      Returns:
      an Optional instance with the specified Epic as a value
    • createEpic

      public Epic createEpic(Object groupIdOrPath, String title, String labels, String description, Date startDate, Date endDate) throws GitLabApiException
      Creates a new epic.
      GitLab Endpoint: POST /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      title - the title of the epic (required)
      labels - comma separated list of labels (optional)
      description - the description of the epic (optional)
      startDate - the start date of the epic (optional)
      endDate - the end date of the epic (optional)
      Returns:
      an Epic instance containing info on the newly created epic
      Throws:
      GitLabApiException - if any exception occurs
    • createEpic

      public Epic createEpic(Object groupIdOrPath, Epic epic) throws GitLabApiException
      Creates a new epic using the information contained in the provided Epic instance. Only the following fields from the Epic instance are used:
      
            title - the title of the epic (required)
            labels - comma separated list of labels (optional)
            description - the description of the epic (optional)
            startDate - the start date of the epic (optional)
            endDate - the end date of the epic (optional)
       
      GitLab Endpoint: POST /groups/:id/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epic - the Epic instance with information for the new epic
      Returns:
      an Epic instance containing info on the newly created epic
      Throws:
      GitLabApiException - if any exception occurs
    • updateEpic

      public Epic updateEpic(Object groupIdOrPath, Long epicIid, String title, String labels, String description, Date startDate, Date endDate) throws GitLabApiException
      Updates an existing epic.
      GitLab Endpoint: PUT /groups/:id/epics/:epic_iid
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to update
      title - the title of the epic (optional)
      labels - comma separated list of labels (optional)
      description - the description of the epic (optional)
      startDate - the start date of the epic (optional)
      endDate - the end date of the epic (optional)
      Returns:
      an Epic instance containing info on the newly created epic
      Throws:
      GitLabApiException - if any exception occurs
    • updateEpic

      public Epic updateEpic(Object groupIdOrPath, Long epicIid, Epic epic) throws GitLabApiException
      Updates an epic using the information contained in the provided Epic instance. Only the following fields from the Epic instance are used:
      
            title - the title of the epic (optional)
            labels - comma separated list of labels (optional)
            description - the description of the epic (optional)
            startDate - the start date of the epic (optional)
            endDate - the end date of the epic (optional)
       
      GitLab Endpoint: PUT /groups/:id/epics/:epic_iid
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to update
      epic - the Epic instance with update information
      Returns:
      an Epic instance containing info on the updated epic
      Throws:
      GitLabApiException - if any exception occurs
    • deleteEpic

      public void deleteEpic(Object groupIdOrPath, Long epicIid) throws GitLabApiException
      Deletes an epic.
      GitLab Endpoint: DELETE /groups/:id/epics/:epic_iid
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to delete
      Throws:
      GitLabApiException - if any exception occurs
    • getEpicIssues

      public List<EpicIssue> getEpicIssues(Object groupIdOrPath, Long epicIid) throws GitLabApiException
      Gets all issues that are assigned to an epic and the authenticated user has access to.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/issues
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get issues for
      Returns:
      a list of all issues belonging to the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • getEpicIssues

      public List<EpicIssue> getEpicIssues(Object groupIdOrPath, Long epicIid, int page, int perPage) throws GitLabApiException
      Gets all issues that are assigned to an epic and the authenticated user has access to using the specified page and per page setting.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/issues
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get issues for
      page - the page to get
      perPage - the number of issues per page
      Returns:
      a list of all issues belonging to the specified epic in the specified range
      Throws:
      GitLabApiException - if any exception occurs
    • getEpicIssues

      public Pager<EpicIssue> getEpicIssues(Object groupIdOrPath, Long epicIid, int itemsPerPage) throws GitLabApiException
      Get a Pager of all issues that are assigned to an epic and the authenticated user has access to.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/issues
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get issues for
      itemsPerPage - the number of issues per page
      Returns:
      the Pager of all issues belonging to the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • getEpicIssuesStream

      public Stream<EpicIssue> getEpicIssuesStream(Object groupIdOrPath, Long epicIid) throws GitLabApiException
      Gets all issues that are assigned to an epic and the authenticated user has access to as a Stream.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/issues
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get issues for
      Returns:
      a Stream of all issues belonging to the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • assignIssue

      public EpicIssue assignIssue(Object groupIdOrPath, Long epicIid, Long issueId) throws GitLabApiException
      Creates an epic - issue association. If the issue in question belongs to another epic it is unassigned from that epic.
      GitLab Endpoint: POST /groups/:id/epics/:epic_iid/issues/:issue_id
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the Epic IID to assign the issue to
      issueId - the issue ID of the issue to assign to the epic
      Returns:
      an EpicIssue instance containing info on the newly assigned epic issue
      Throws:
      GitLabApiException - if any exception occurs
    • removeIssue

      public EpicIssueLink removeIssue(Object groupIdOrPath, Long epicIid, Long epicIssueId) throws GitLabApiException
      Remove an epic - issue association.
      GitLab Endpoint: DELETE /groups/:id/epics/:epic_iid/issues/:epic_issue_id
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the Epic IID to remove the issue from
      epicIssueId - the ID of the "issue - epic" association of the issue to remove from the epic
      Returns:
      an EpicIssueLink instance containing info on the removed issue
      Throws:
      GitLabApiException - if any exception occurs
    • updateIssue

      public List<EpicIssue> updateIssue(Object groupIdOrPath, Long epicIid, Long epicIssueId, Long moveBeforeId, Long moveAfterId) throws GitLabApiException
      Updates an epic - issue association.
      GitLab Endpoint: PUT /groups/:id/epics/:epic_iid/issues/:epic_issue_id
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the Epic IID that the issue is assigned to
      epicIssueId - the ID of the "issue - epic" association
      moveBeforeId - the ID of the "issue - epic" association that should be placed before the link in the question (optional)
      moveAfterId - the ID of the "issue - epic" association that should be placed after the link in the question (optional)
      Returns:
      a list of all issues belonging to the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • getChildEpics

      public List<ChildEpic> getChildEpics(Object groupIdOrPath, Long epicIid) throws GitLabApiException
      Gets all child epics of an epic and the authenticated user has access to.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get child epics for
      Returns:
      a list of all child epics of the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • getChildEpics

      public Pager<ChildEpic> getChildEpics(Object groupIdOrPath, Long epicIid, int itemsPerPage) throws GitLabApiException
      Get a Pager of all child epics of an epic and the authenticated user has access to.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get child epics for
      itemsPerPage - the number of child epics per page
      Returns:
      the Pager of all child epics of the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • getChildEpicsStream

      public Stream<ChildEpic> getChildEpicsStream(Object groupIdOrPath, Long epicIid) throws GitLabApiException
      Gets all child epics of an epic and the authenticated user has access to as a Stream.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get child epics for
      Returns:
      a Stream of all child epics of the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • assignChildEpic

      public ChildEpic assignChildEpic(Object groupIdOrPath, Long epicIid, Long childEpicId) throws GitLabApiException
      Creates an association between two epics, designating one as the parent epic and the other as the child epic. A parent epic can have multiple child epics. If the new child epic already belonged to another epic, it is unassigned from that previous parent.
      GitLab Endpoint: POST /groups/:id/epics/:epic_iid/epics/:child_epic_id
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the Epic IID to assign the child epic to
      childEpicId - the global ID of the child epic. Epic IID can’t be used because they can conflict with epics from other groups.
      Returns:
      an ChildEpic instance containing info on the newly assigned child epic
      Throws:
      GitLabApiException - if any exception occurs
    • createAndAssignChildEpic

      public CreatedChildEpic createAndAssignChildEpic(Object groupIdOrPath, Long epicIid, String title, Boolean confidential) throws GitLabApiException
      Creates a new epic and associates it with provided parent epic.
      GitLab Endpoint: POST /groups/:id/epics/:epic_iid/epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the Epic IID to assign the child epic to (of the future parent epic)
      title - the title of a newly created epic
      confidential - whether the epic should be confidential (optional)
      Returns:
      an ChildEpic instance containing info on the newly created and assigned child epic
      Throws:
      GitLabApiException - if any exception occurs
    • reOrderChildEpic

      public List<ChildEpic> reOrderChildEpic(Object groupIdOrPath, Long epicIid, Long childEpicId, Long moveBeforeId, Long moveAfterId) throws GitLabApiException
      Re-order a child epic
      GitLab Endpoint: PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the Epic IID that the child epic is assigned to
      childEpicId - the ID of the child epic. Epic IID can’t be used because they can conflict with epics from other groups.
      moveBeforeId - the ID of a sibling epic that should be placed before the child epic (optional)
      moveAfterId - the ID of a sibling epic that should be placed after the child epic (optional)
      Returns:
      a list of all child epics of the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • unassignChildEpic

      public ChildEpic unassignChildEpic(Object groupIdOrPath, Long epicIid, Long childEpicId) throws GitLabApiException
      Unassigns a child epic from a parent epic.
      GitLab Endpoint: DELETE /groups/:id/epics/:epic_iid/epics/:child_epic_id
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the Epic IID to remove the child epic from
      childEpicId - the ID of the child epic. Epic IID can’t be used because they can conflict with epics from other groups.
      Returns:
      an ChildEpic instance containing info on the removed child epic
      Throws:
      GitLabApiException - if any exception occurs
    • getRelatedEpics

      public List<RelatedEpic> getRelatedEpics(Object groupIdOrPath, Long epicIid) throws GitLabApiException
      Gets all linked epics of an epic filtered according to the user authorizations.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/related_epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get child epics for
      Returns:
      a list of all related epics of the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • getRelatedEpics

      public Pager<RelatedEpic> getRelatedEpics(Object groupIdOrPath, Long epicIid, int itemsPerPage) throws GitLabApiException
      Get a Pager of all linked epics of an epic filtered according to the user authorizations.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/related_epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get child epics for
      itemsPerPage - the number of child epics per page
      Returns:
      the Pager of all related epics of the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • getRelatedEpicsStream

      public Stream<RelatedEpic> getRelatedEpicsStream(Object groupIdOrPath, Long epicIid) throws GitLabApiException
      Gets all linked epics of an epic filtered according to the user authorizations to as a Stream.
      GitLab Endpoint: GET /groups/:id/epics/:epic_iid/related_epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the IID of the epic to get child epics for
      Returns:
      a Stream of all related epics of the specified epic
      Throws:
      GitLabApiException - if any exception occurs
    • createRelatedEpicLink

      public RelatedEpicLink createRelatedEpicLink(Object groupIdOrPath, Long epicIid, Object targetGroupIdOrPath, Long targetEpicIid, LinkType linkType) throws GitLabApiException
      Create a two-way relation between two epics. The user must have at least the Guest role for both groups.
      GitLab Endpoint: POST /groups/:id/epics/:epic_iid/related_epics
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the Epic IID to assign the child epic to
      targetGroupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path of the target group’s epic
      targetEpicIid - the Epic IID of the target group’s epic.
      linkType - the type of the relation (optional), defaults to LinkType.RELATES_TO.
      Returns:
      an RelatedEpic instance containing info on the newly assigned child epic
      Throws:
      GitLabApiException - if any exception occurs
    • deleteRelatedEpicLink

      public RelatedEpicLink deleteRelatedEpicLink(Object groupIdOrPath, Long epicIid, Long relatedEpicLinkId) throws GitLabApiException
      Delete a two-way relation between two epics. The user must have at least the Guest role for both groups.
      GitLab Endpoint: DELETE /groups/:id/epics/:epic_iid/related_epics/:related_epic_link_id
      Parameters:
      groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
      epicIid - the Epic IID to remove the child epic from
      relatedEpicLinkId - the ID a related epic link.
      Returns:
      an RelatedEpicLink instance containing info on the removed related epic
      Throws:
      GitLabApiException - if any exception occurs