Trigger a GitHub Action using Custom Webhook

JFrog Platform Administration Documentation

Content Type
Administration / Platform

The following example shows how a GitHub Action can be triggered using a custom webhook.

Step 1: Define the GitHub Workflow

Define a GitHub workflow as shown in the following example.

In the workflow YAML, the on clause must include the workflow_dispatch event so that Artifactory can trigger the workflow through GitHub REST API.

name: artifact_deployed

  # workflow_dispatch is mandatory, so that Artifactory can trigger
  # the workflow through GitHub REST API.
    # inputs are optional, they may be used to convey contextual data
    # from the JFrog event to the workflow.
        required: true 
        type: string
    runs-on: ubuntu-latest
      - name: Print artifact_path
        run: echo  The path is ${{ inputs.artifact_path }} 

Step 2: Generate a Token

The generated token can be a Personal Access token. This token must allow the triggering of actions on the target GitHub repository.

The token must have theactions:writepermission on the repo that holds the workflow.

Step 3: Define the Webhook

Define the webhook using API, as shown below or using the UI.


  • In the URL, provide the GitHub owner and repository

  • In the secrets, provide the token

POST /event/api/v1/subscriptions
   "key": "trigger_action",
   "enabled": true,
   "event_filter": {
       "domain": "artifact",
       "event_types": [
       "criteria": {
           "anyLocal": true
   "handlers": [
           "handler_type": "custom-webhook",
           "url": "",
           "payload": "{ \"ref\": \"main\" , \"inputs\": { \"artifact_path\": \"{{.data.repo_key}}/{{.data.path}}\" } }",
           "secrets": [
                   "name": "token",
                   "value": "***"
           "http_headers": [
                   "name": "Authorization",
                   "value": "Bearer {{.secrets.token}}"
                   "name": "Accept",
                   "value": "application/vnd.github+json"
                   "name": "Content-Type",
                   "value": "application/json"

Step 4: Deploy to Trigger

Deploy an artifact in any local Artifactory repository and the action will be triggered on the GitHub repository.