Class ProtectedBranchesApi

    • Constructor Detail

      • ProtectedBranchesApi

        public ProtectedBranchesApi​(GitLabApi gitLabApi)
    • Method Detail

      • getProtectedBranches

        public java.util.List<ProtectedBranch> getProtectedBranches​(java.lang.Object projectIdOrPath)
                                                             throws GitLabApiException
        Gets a list of protected branches from a project.
        GitLab Endpoint: GET /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        Returns:
        the list of protected branches for the project
        Throws:
        GitLabApiException - if any exception occurs
      • getProtectedBranches

        public Pager<ProtectedBranch> getProtectedBranches​(java.lang.Object projectIdOrPath,
                                                           int itemsPerPage)
                                                    throws GitLabApiException
        Gets a Pager of protected branches from a project.
        GitLab Endpoint: GET /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        itemsPerPage - the number of instances that will be fetched per page
        Returns:
        the Pager of protected branches for the project
        Throws:
        GitLabApiException - if any exception occurs
      • getProtectedBranchesStream

        public java.util.stream.Stream<ProtectedBranch> getProtectedBranchesStream​(java.lang.Object projectIdOrPath)
                                                                            throws GitLabApiException
        Gets a Stream of protected branches from a project.
        GitLab Endpoint: GET /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        Returns:
        the Stream of protected branches for the project
        Throws:
        GitLabApiException - if any exception occurs
      • getProtectedBranch

        public ProtectedBranch getProtectedBranch​(java.lang.Object projectIdOrPath,
                                                  java.lang.String branchName)
                                           throws GitLabApiException
        Get a single protected branch or wildcard protected branch.
        GitLab Endpoint: GET /projects/:id/protected_branches/:branch_name
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch or wildcard
        Returns:
        a ProtectedBranch instance with info on the protected branch
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalProtectedBranch

        public java.util.Optional<ProtectedBranch> getOptionalProtectedBranch​(java.lang.Object projectIdOrPath,
                                                                              java.lang.String branchName)
        Get an Optional instance with the value for the specific protected branch.
        GitLab Endpoint: GET /projects/:id/protected_branches/:branch_name
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch or wildcard
        Returns:
        an Optional instance with the specified protected branch as a value
      • unprotectBranch

        public void unprotectBranch​(java.lang.Object projectIdOrPath,
                                    java.lang.String branchName)
                             throws GitLabApiException
        Unprotects the given protected branch or wildcard protected branch.
        GitLab Endpoint: DELETE /projects/:id/protected_branches/:name
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch to un-protect, can be a wildcard
        Throws:
        GitLabApiException - if any exception occurs
      • protectBranch

        public ProtectedBranch protectBranch​(java.lang.Object projectIdOrPath,
                                             java.lang.String branchName)
                                      throws GitLabApiException
        Protects a single repository branch or several project repository branches using a wildcard protected branch.
        GitLab Endpoint: POST /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch to protect, can be a wildcard
        Returns:
        the branch info for the protected branch
        Throws:
        GitLabApiException - if any exception occurs
      • protectBranch

        public ProtectedBranch protectBranch​(java.lang.Object projectIdOrPath,
                                             java.lang.String branchName,
                                             AccessLevel pushAccessLevel,
                                             AccessLevel mergeAccessLevel)
                                      throws GitLabApiException
        Protects a single repository branch or several project repository branches using a wildcard protected branch.
        GitLab Endpoint: POST /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch to protect, can be a wildcard
        pushAccessLevel - Access levels allowed to push (defaults: 40, maintainer access level)
        mergeAccessLevel - Access levels allowed to merge (defaults: 40, maintainer access level)
        Returns:
        the branch info for the protected branch
        Throws:
        GitLabApiException - if any exception occurs
      • protectBranch

        public ProtectedBranch protectBranch​(java.lang.Object projectIdOrPath,
                                             java.lang.String branchName,
                                             AccessLevel pushAccessLevel,
                                             AccessLevel mergeAccessLevel,
                                             AccessLevel unprotectAccessLevel,
                                             java.lang.Boolean codeOwnerApprovalRequired)
                                      throws GitLabApiException
        Protects a single repository branch or several project repository branches using a wildcard protected branch.
        GitLab Endpoint: POST /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch to protect, can be a wildcard
        pushAccessLevel - access levels allowed to push (defaults: 40, maintainer access level)
        mergeAccessLevel - access levels allowed to merge (defaults: 40, maintainer access level)
        unprotectAccessLevel - access levels allowed to unprotect (defaults: 40, maintainer access level)
        codeOwnerApprovalRequired - prevent pushes to this branch if it matches an item in the CODEOWNERS file. (defaults: false)
        Returns:
        the branch info for the protected branch
        Throws:
        GitLabApiException - if any exception occurs
        See Also:
        protectBranch(Object, String, AccessLevel, AccessLevel, AccessLevel, Boolean, Boolean)
      • protectBranch

        public ProtectedBranch protectBranch​(java.lang.Object projectIdOrPath,
                                             java.lang.String branchName,
                                             AccessLevel pushAccessLevel,
                                             AccessLevel mergeAccessLevel,
                                             AccessLevel unprotectAccessLevel,
                                             java.lang.Boolean codeOwnerApprovalRequired,
                                             java.lang.Boolean allowForcedPush)
                                      throws GitLabApiException
        Protects a single repository branch or several project repository branches using a wildcard protected branch.
        GitLab Endpoint: POST /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch to protect, can be a wildcard
        pushAccessLevel - access levels allowed to push (defaults: 40, maintainer access level)
        mergeAccessLevel - access levels allowed to merge (defaults: 40, maintainer access level)
        unprotectAccessLevel - access levels allowed to unprotect (defaults: 40, maintainer access level)
        codeOwnerApprovalRequired - prevent pushes to this branch if it matches an item in the CODEOWNERS file. (defaults: false)
        allowForcedPush - when enabled, members who can push to this branch can also force push. (default: false)
        Returns:
        the branch info for the protected branch
        Throws:
        GitLabApiException - if any exception occurs
      • protectBranch

        public ProtectedBranch protectBranch​(java.lang.Object projectIdOrPath,
                                             java.lang.String branchName,
                                             java.lang.Long allowedToPushUserId,
                                             java.lang.Long allowedToMergeUserId,
                                             java.lang.Long allowedToUnprotectUserId,
                                             java.lang.Boolean codeOwnerApprovalRequired)
                                      throws GitLabApiException
        Protects a single repository branch or several project repository branches using a wildcard protected branch.

        NOTE: This method is only available to GitLab Starter, Bronze, or higher.

        GitLab Endpoint: POST /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch to protect, can be a wildcard
        allowedToPushUserId - user ID allowed to push, can be null
        allowedToMergeUserId - user ID allowed to merge, can be null
        allowedToUnprotectUserId - user ID allowed to unprotect, can be null
        codeOwnerApprovalRequired - prevent pushes to this branch if it matches an item in the CODEOWNERS file. (defaults: false)
        Returns:
        the branch info for the protected branch
        Throws:
        GitLabApiException - if any exception occurs
      • protectBranch

        public ProtectedBranch protectBranch​(java.lang.Object projectIdOrPath,
                                             java.lang.String branchName,
                                             java.lang.Long allowedToPushUserId,
                                             java.lang.Long allowedToMergeUserId,
                                             java.lang.Long allowedToUnprotectUserId,
                                             java.lang.Boolean codeOwnerApprovalRequired,
                                             java.lang.Boolean allowForcedPush)
                                      throws GitLabApiException
        Protects a single repository branch or several project repository branches using a wildcard protected branch.

        NOTE: This method is only available to GitLab Starter, Bronze, or higher.

        GitLab Endpoint: POST /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch to protect, can be a wildcard
        allowedToPushUserId - user ID allowed to push, can be null
        allowedToMergeUserId - user ID allowed to merge, can be null
        allowedToUnprotectUserId - user ID allowed to unprotect, can be null
        codeOwnerApprovalRequired - prevent pushes to this branch if it matches an item in the CODEOWNERS file. (defaults: false)
        allowForcedPush - when enabled, members who can push to this branch can also force push. (default: false)
        Returns:
        the branch info for the protected branch
        Throws:
        GitLabApiException - if any exception occurs
      • protectBranch

        public ProtectedBranch protectBranch​(java.lang.Object projectIdOrPath,
                                             java.lang.String branchName,
                                             AllowedTo allowedToPush,
                                             AllowedTo allowedToMerge,
                                             AllowedTo allowedToUnprotect,
                                             java.lang.Boolean codeOwnerApprovalRequired)
                                      throws GitLabApiException
        Protects a single repository branch or several project repository branches using a wildcard protected branch.

        NOTE: This method is only available to GitLab Starter, Bronze, or higher.

        GitLab Endpoint: POST /projects/:id/protected_branches
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch to protect, can be a wildcard
        allowedToPush - an AllowedTo instance holding the configuration for "allowed_to_push"
        allowedToMerge - an AllowedTo instance holding the configuration for "allowed_to_merge"
        allowedToUnprotect - an AllowedTo instance holding the configuration for "allowed_to_unprotect" be null
        codeOwnerApprovalRequired - prevent pushes to this branch if it matches an item in the CODEOWNERS file. (defaults: false)
        Returns:
        the branch info for the protected branch
        Throws:
        GitLabApiException - if any exception occurs
      • setCodeOwnerApprovalRequired

        public ProtectedBranch setCodeOwnerApprovalRequired​(java.lang.Object projectIdOrPath,
                                                            java.lang.String branchName,
                                                            java.lang.Boolean codeOwnerApprovalRequired)
                                                     throws GitLabApiException
        Sets the code_owner_approval_required flag on the specified protected branch.

        NOTE: This method is only available in GitLab Premium or higher.

        GitLab Endpoint: PATCH /projects/:id/protected_branches/:branch_name?code_owner_approval_required=true
        Parameters:
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance
        branchName - the name of the branch to protect, can be a wildcard
        codeOwnerApprovalRequired - prevent pushes to this branch if it matches an item in the CODEOWNERS file.
        Returns:
        the branch info for the protected branch
        Throws:
        GitLabApiException - if any exception occurs