Skip to main content
System StatusContact Support
VersionOne Community

Webhooks

Continuum provides a mechanism to configure both inbound and outbound webhooks to receive communication and communicate with external systems.

Webhook configuration can be found in the admin menu, under the "Automate" section.

Inbound Webhooks

Inbound webhooks provide a way for external systems to notify continuum of certain events. A unique URL is provided for each webhook to be used in the external system. Once created you can optionally create a "directive" to trigger an event in Continuum. Three types of directive actions are available:

  • Initiate Pipeline: Allows you to execute a specific pipeline definition for a given project. Optionally pass "version" and/or "instance name".
  • Run a Task: Allows you to execute a specific task. Optionally pass "Initial Data" and/or "Args".
  • Plugin Function: Allows you to execute a given method for a specific plugin.

The "Details" tab will show the configuration and directives for the specific webhook while the "Inbound Activity" tab will show all the payloads that have been received for the given webhook.

Outbound Webhooks

Outbound webhooks provide a way to notify external systems of Continuum activity. Once created you must provide a "Name" and a "URL" where the payload will be delivered. Information across all projects in Continuum will be sent for the following events:

Pipeline Instance Start

Triggered when a pipeline instance is initiated. 

Webhook payload example:

{
    "category": "General",
    "code": "3LVYJ",
    "group": "debug",
    "id": "59e76f7129799323d8620263",
    "initiated_by": {
        "on": "Pipeline Editor",
        "type": "debug",
        "user": {
            "fullname": "Administrator",
            "role": "Administrator",
            "timezone": "America/New_York"
        }
    },
    "name": "bb64c07b",
    "number": 1,
    "pi_group_id": "59e76f7129799323d8620260",
    "pipeline_id": "59e76f5029799323d862025c",
    "pipeline_name": "Hello World",
    "project": "auth service",
    "project_id": "59de47e529799309fbc71e68",
    "start_dt": "2017-10-18 15:12:49",
    "status": "staged",
    "type": "pi_start"
}

Pipeline Instance Status

Triggered when a pipeline instance changes status. The following statuses are considered:

  • Processing
  • Success
  • Failure
  • Canceled
  • Staged

Webhook payload example:

{
    "category": "General",
    "code": "3LVYJ",
    "duration_label": "",
    "group": "debug",
    "id": "59e76f7129799323d8620263",
    "initiated_by": {
        "on": "Pipeline Editor",
        "type": "debug",
        "user": {
            "fullname": "Administrator",
            "role": "Administrator",
            "timezone": "America/New_York"
        }
    },
    "name": "bb64c07b",
    "number": 1,
    "pi_group_id": "59e76f7129799323d8620260",
    "pipeline_id": "59e76f5029799323d862025c",
    "pipeline_name": "Hello World",
    "project": "auth service",
    "project_id": "59de47e529799309fbc71e68",
    "start_dt": "2017-10-18 15:12:49",
    "status": "processing",
    "type": "pi_status"
}

Task Instance Addition

Triggered when a task executes.

Webhook payload example:

{
    "category": "Operate",
    "task_instance": 11,
    "task_name": "Hello World",
    "task_status": "Submitted",
    "type": "ti_add"
}

Task Instance Status Change

Triggered when a task changes status.

Webhook payload example:

{
    "category": "Operate",
    "host": "admin@host-1",
    "pid": 10874,
    "status": "Processing",
    "task_instance": "11",
    "task_name": "Hello World",
    "type": "ti_status_change"
}

Change Submissions

Triggered when any change submission is received by Continuum (for any project). The payload includes all the original content coming from your version control system and it additionally provides Continuum-specific data along with the original payload headers.

Webhook payload example:

{
    "LOGFILE_ID": "59dd241129799310d912c99b",
    "REQUEST_HEADERS": {
        "ACTUAL_SERVER_PROTOCOL": "HTTP/1.1",
        "CONTENT_TYPE": "application/json",
        "HTTP_ACCEPT": "*/*",
        "HTTP_ACCEPT_ENCODING": "gzip, deflate",
        "HTTP_ACCEPT_LANGUAGE": "en-US,en;q=0.8",
        "HTTP_CONNECTION": "keep-alive",
        "HTTP_COOKIE": "csk_ui-applink=NTlkZDIyMDkyOTc5OTMwNTI5Y2FlZmNk; ctm-ui=7117ea30672bb48185f9bd7e9b6ec09410752cfb",
        "HTTP_HOST": "continuum.local:8080",
        "HTTP_ORIGIN": "chrome-extension://aejoelaoggembcahagimdiliamlcdmfm",
        "HTTP_USER_AGENT": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
        "HTTP_X_GITHUB_EVENT": "push",
        "PATH_INFO": "/api/submit_change",
        "QUERY_STRING": "toproject=Auth%20Service&token=5984bd73297abcdad67dxyz",
        "REMOTE_ADDR": "199.16.32.55",
        "REMOTE_PORT": "30244",
        "REQUEST_METHOD": "POST",
        "REQUEST_URI": "/api/submit_change?toproject=Auth%20Service&token=5984bd73297abcdad67dxyz",
        "SERVER_NAME": "localhost",
        "SERVER_PORT": "8080",
        "SERVER_PROTOCOL": "HTTP/1.1"
    },
    "X_EVENT_TYPE": "push",
    "_id": "59dd241129799310d912c99c",
    "after": "ebf18fc0c9836e51a1b8a2dbd536835b8edee319",
    "base_ref": null,
    "before": "56f412c5354852c6b3afd26699d379c282346804",
    "branch": "master",
    "commits": [
        {
            "added": [],
            "author": {
                "email": "admin@acmecorp.com",
                "name": "Administrator",
                "username": "admin"
            },
            "committer": {
                "email": "noreply@github.com",
                "name": "GitHub",
                "username": "web-flow"
            },
            "distinct": true,
            "id": "ebf18fc0c9836e51a1b8a2dbd536835b8edee319",
            "message": "S-01007",
            "modified": [
                "README.md"
            ],
            "removed": [],
            "timestamp": "2017-09-26T10:35:54-04:00",
            "tree_id": "d5dc93711d151c749c0698bbfde4a733f3935b4b",
            "url": "https://github.com/acmecorp/continuu...36835b8edee319"
        }
    ],
    "compare": "https://github.com/acmecorp/continuu.....ebf18fc0c983",
    "created": false,
    "deleted": false,
    "forced": false,
    "head_commit": {
        "added": [],
        "author": {
            "email": "admin@acmecorp.com",
            "name": "Admin",
            "username": "admin"
        },
        "committer": {
            "email": "noreply@github.com",
            "name": "GitHub",
            "username": "web-flow"
        },
        "distinct": true,
        "id": "ebf18fc0c9836e51a1b8a2dbd536835b8edee319",
        "message": "S-01007",
        "modified": [
            "README.md"
        ],
        "removed": [],
        "timestamp": "2017-09-26T10:35:54-04:00",
        "tree_id": "d5dc93711d151c749c0698bbfde4a733f3935b4b",
        "url": "https://github.com/admin/continuum/c...36835b8edee319"
    },
    "pusher": {
        "email": "admin@acmecorp.com",
        "name": "admin"
    },
    "ref": "refs/heads/master",
    "repository": {
        "archive_url": "https://api.github.com/repos/admin/c..._format}{/ref}",
        "assignees_url": "https://api.github.com/repos/admin/c...signees{/user}",
        "blobs_url": "https://api.github.com/repos/admin/c...it/blobs{/sha}",
        "branches_url": "https://api.github.com/repos/admin/c...nches{/branch}",
        "clone_url": "https://github.com/admin/continuum.git",
        "collaborators_url": "https://api.github.com/repos/admin/c.../collaborator}",
        "comments_url": "https://api.github.com/repos/admin/c...ments{/number}",
        "commits_url": "https://api.github.com/repos/admin/c.../commits{/sha}",
        "compare_url": "https://api.github.com/repos/admin/c...base}...{head}",
        "contents_url": "https://api.github.com/repos/admin/c...ntents/{+path}",
        "contributors_url": "https://api.github.com/repos/admin/c...m/contributors",
        "created_at": 1495657136,
        "default_branch": "master",
        "deployments_url": "https://api.github.com/repos/admin/c...um/deployments",
        "description": null,
        "downloads_url": "https://api.github.com/repos/admin/c...nuum/downloads",
        "events_url": "https://api.github.com/repos/admin/continuum/events",
        "fork": false,
        "forks": 0,
        "forks_count": 0,
        "forks_url": "https://api.github.com/repos/admin/continuum/forks",
        "full_name": "admin/continuum",
        "git_commits_url": "https://api.github.com/repos/admin/c.../commits{/sha}",
        "git_refs_url": "https://api.github.com/repos/admin/c...git/refs{/sha}",
        "git_tags_url": "https://api.github.com/repos/admin/c...git/tags{/sha}",
        "git_url": "git://github.com/admin/continuum.git",
        "has_downloads": true,
        "has_issues": true,
        "has_pages": false,
        "has_projects": true,
        "has_wiki": true,
        "homepage": null,
        "hooks_url": "https://api.github.com/repos/admin/continuum/hooks",
        "html_url": "https://github.com/admin/continuum",
        "id": 92333011,
        "issue_comment_url": "https://api.github.com/repos/admin/c...ments{/number}",
        "issue_events_url": "https://api.github.com/repos/admin/c...vents{/number}",
        "issues_url": "https://api.github.com/repos/admin/c...ssues{/number}",
        "keys_url": "https://api.github.com/repos/admin/c.../keys{/key_id}",
        "labels_url": "https://api.github.com/repos/admin/c.../labels{/name}",
        "language": null,
        "languages_url": "https://api.github.com/repos/admin/c...nuum/languages",
        "master_branch": "master",
        "merges_url": "https://api.github.com/repos/admin/continuum/merges",
        "milestones_url": "https://api.github.com/repos/admin/c...tones{/number}",
        "mirror_url": null,
        "name": "continuum",
        "notifications_url": "https://api.github.com/repos/admin/c...participating}",
        "open_issues": 0,
        "open_issues_count": 0,
        "owner": {
            "avatar_url": "https://avatars3.githubusercontent.com/u/7226574?v=4",
            "email": "admin@acmecorp.com",
            "events_url": "https://api.github.com/users/admin/events{/privacy}",
            "followers_url": "https://api.github.com/users/admin/followers",
            "following_url": "https://api.github.com/users/admin/f...g{/other_user}",
            "gists_url": "https://api.github.com/users/admin/gists{/gist_id}",
            "gravatar_id": "",
            "html_url": "https://github.com/admin",
            "id": 7226574,
            "login": "admin",
            "name": "admin",
            "organizations_url": "https://api.github.com/users/admin/orgs",
            "received_events_url": "https://api.github.com/users/admin/received_events",
            "repos_url": "https://api.github.com/users/admin/repos",
            "site_admin": false,
            "starred_url": "https://api.github.com/users/admin/s.../owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/admin/subscriptions",
            "type": "User",
            "url": "https://api.github.com/users/admin"
        },
        "private": false,
        "pulls_url": "https://api.github.com/repos/admin/c...pulls{/number}",
        "pushed_at": 1506436556,
        "releases_url": "https://api.github.com/repos/admin/c.../releases{/id}",
        "size": 0,
        "ssh_url": "git@github.com:admin/continuum.git",
        "stargazers": 0,
        "stargazers_count": 0,
        "stargazers_url": "https://api.github.com/repos/admin/c...uum/stargazers",
        "statuses_url": "https://api.github.com/repos/admin/c...statuses/{sha}",
        "subscribers_url": "https://api.github.com/repos/admin/c...um/subscribers",
        "subscription_url": "https://api.github.com/repos/admin/c...m/subscription",
        "svn_url": "https://github.com/admin/continuum",
        "tags_url": "https://api.github.com/repos/admin/continuum/tags",
        "teams_url": "https://api.github.com/repos/admin/continuum/teams",
        "trees_url": "https://api.github.com/repos/admin/c...it/trees{/sha}",
        "updated_at": "2017-05-24T20:18:56Z",
        "url": "https://github.com/admin/continuum",
        "watchers": 0,
        "watchers_count": 0
    },
    "sender": {
        "avatar_url": "https://avatars3.githubusercontent.com/u/7226574?v=4",
        "events_url": "https://api.github.com/users/admin/events{/privacy}",
        "followers_url": "https://api.github.com/users/admin/followers",
        "following_url": "https://api.github.com/users/admin/f...g{/other_user}",
        "gists_url": "https://api.github.com/users/admin/gists{/gist_id}",
        "gravatar_id": "",
        "html_url": "https://github.com/admin",
        "id": 7226574,
        "login": "admin",
        "organizations_url": "https://api.github.com/users/admin/orgs",
        "received_events_url": "https://api.github.com/users/admin/received_events",
        "repos_url": "https://api.github.com/users/admin/repos",
        "site_admin": false,
        "starred_url": "https://api.github.com/users/admin/s.../owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/admin/subscriptions",
        "type": "User",
        "url": "https://api.github.com/users/admin"
    },
    "toproject": "Auth Service",
    "toproject_id": "59dbb2d12979930525fa6f10"
}

  • Was this article helpful?