Commit 175b355d authored by Sachin Singh's avatar Sachin Singh Committed by Nejc Habjan
Browse files

feat(api): add support for external status check

parent de295032
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ API examples
   gl_objects/settings
   gl_objects/snippets
   gl_objects/statistics
   gl_objects/status_checks
   gl_objects/system_hooks
   gl_objects/templates
   gl_objects/todos
+57 −0
Original line number Diff line number Diff line
#######################
External Status Checks
#######################

Manage external status checks for projects and merge requests.


Project external status checks
===============================

Reference
---------

* v4 API:

  + :class:`gitlab.v4.objects.ProjectExternalStatusCheck`
  + :class:`gitlab.v4.objects.ProjectExternalStatusCheckManager`
  + :attr:`gitlab.v4.objects.Project.external_status_checks`

* GitLab API: https://docs.gitlab.com/ee/api/status_checks.html

Examples
---------

List external status checks for a project::

    status_checks = project.external_status_checks.list()

Create an external status check with shared secret::

    status_checks = project.external_status_checks.create({
        "name": "mr_blocker",
        "external_url": "https://example.com/mr-status-check",
        "shared_secret": "secret-string"
    })

Create an external status check with shared secret for protected branches::

    protected_branch = project.protectedbranches.get('main')

    status_check = project.external_status_checks.create({
        "name": "mr_blocker",
        "external_url": "https://example.com/mr-status-check",
        "shared_secret": "secret-string",
        "protected_branch_ids": [protected_branch.id]
    })


Update an external status check::

    status_check.external_url = "https://example.com/mr-blocker"
    status_check.save()

Delete an external status check::

    status_check.delete(status_check_id)
+1 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ from .settings import *
from .sidekiq import *
from .snippets import *
from .statistics import *
from .status_checks import *
from .tags import *
from .templates import *
from .todos import *
+2 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ from .merge_request_approvals import ( # noqa: F401
from .notes import ProjectMergeRequestNoteManager  # noqa: F401
from .pipelines import ProjectMergeRequestPipelineManager  # noqa: F401
from .reviewers import ProjectMergeRequestReviewerDetailManager
from .status_checks import ProjectMergeRequestStatusCheckManager

__all__ = [
    "MergeRequest",
@@ -167,6 +168,7 @@ class ProjectMergeRequest(
    resourcemilestoneevents: ProjectMergeRequestResourceMilestoneEventManager
    resourcestateevents: ProjectMergeRequestResourceStateEventManager
    reviewer_details: ProjectMergeRequestReviewerDetailManager
    status_checks: ProjectMergeRequestStatusCheckManager

    @cli.register_custom_action(cls_names="ProjectMergeRequest")
    @exc.on_http_error(exc.GitlabMROnBuildSuccessError)
+2 −0
Original line number Diff line number Diff line
@@ -104,6 +104,7 @@ from .statistics import ( # noqa: F401
    ProjectAdditionalStatisticsManager,
    ProjectIssuesStatisticsManager,
)
from .status_checks import ProjectExternalStatusCheckManager  # noqa: F401
from .tags import ProjectProtectedTagManager, ProjectTagManager  # noqa: F401
from .templates import (  # noqa: F401
    ProjectDockerfileTemplateManager,
@@ -253,6 +254,7 @@ class Project(
    secure_files: ProjectSecureFileManager
    services: ProjectServiceManager
    snippets: ProjectSnippetManager
    external_status_checks: ProjectExternalStatusCheckManager
    storage: "ProjectStorageManager"
    tags: ProjectTagManager
    triggers: ProjectTriggerManager
Loading