github.com/solo-io/cue@v0.4.7/encoding/jsonschema/testdata/github.txtar (about)

     1  # A txtar test version of import phase of the process behind our
     2  # CI workflow generation.
     3  #
     4  # Note: all the non-golden files below are updated automatically by
     5  # the internal/ci updateTxtarTests CUE command (with the exception
     6  # of the cue.mod/module.cue file).
     7  
     8  -- workflow.json --
     9  {
    10    "$schema": "http://json-schema.org/draft-07/schema",
    11    "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions",
    12    "definitions": {
    13      "architecture": {
    14        "type": "string",
    15        "enum": [
    16          "ARM32",
    17          "x64",
    18          "x86"
    19        ]
    20      },
    21      "branch": {
    22        "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushpull_requestbranchestags",
    23        "$ref": "#/definitions/globs",
    24        "description": "When using the push and pull_request events, you can configure a workflow to run on specific branches or tags. If you only define only tags or only branches, the workflow won't run for events affecting the undefined Git ref.\nThe branches, branches-ignore, tags, and tags-ignore keywords accept glob patterns that use the * and ** wildcard characters to match more than one branch or tag name. For more information, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet.\nThe patterns defined in branches and tags are evaluated against the Git ref's name. For example, defining the pattern mona/octocat in branches will match the refs/heads/mona/octocat Git ref. The pattern releases/** will match the refs/heads/releases/10 Git ref.\nYou can use two types of filters to prevent a workflow from running on pushes and pull requests to tags and branches:\n- branches or branches-ignore - You cannot use both the branches and branches-ignore filters for the same event in a workflow. Use the branches filter when you need to filter branches for positive matches and exclude branches. Use the branches-ignore filter when you only need to exclude branch names.\n- tags or tags-ignore - You cannot use both the tags and tags-ignore filters for the same event in a workflow. Use the tags filter when you need to filter tags for positive matches and exclude tags. Use the tags-ignore filter when you only need to exclude tag names.\nYou can exclude tags and branches using the ! character. The order that you define patterns matters.\n- A matching negative pattern (prefixed with !) after a positive match will exclude the Git ref.\n- A matching positive pattern after a negative match will include the Git ref again."
    25      },
    26      "configuration": {
    27        "oneOf": [
    28          {
    29            "type": "string"
    30          },
    31          {
    32            "type": "number"
    33          },
    34          {
    35            "type": "boolean"
    36          },
    37          {
    38            "type": "object",
    39            "additionalProperties": {
    40              "$ref": "#/definitions/configuration"
    41            }
    42          },
    43          {
    44            "type": "array",
    45            "items": {
    46              "$ref": "#/definitions/configuration"
    47            },
    48            "additionalItems": false
    49          }
    50        ]
    51      },
    52      "container": {
    53        "type": "object",
    54        "properties": {
    55          "image": {
    56            "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerimage",
    57            "description": "The Docker image to use as the container to run the action. The value can be the Docker Hub image name or a registry name.",
    58            "type": "string"
    59          },
    60          "credentials": {
    61            "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontainercredentials",
    62            "description": "If the image's container registry requires authentication to pull the image, you can use credentials to set a map of the username and password. The credentials are the same values that you would provide to the `docker login` command.",
    63            "type": "object",
    64            "properties": {
    65              "username": {
    66                "type": "string"
    67              },
    68              "password": {
    69                "type": "string"
    70              }
    71            }
    72          },
    73          "env": {
    74            "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerenv",
    75            "$ref": "#/definitions/env",
    76            "description": "Sets an array of environment variables in the container."
    77          },
    78          "ports": {
    79            "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerports",
    80            "description": "Sets an array of ports to expose on the container.",
    81            "type": "array",
    82            "items": {
    83              "oneOf": [
    84                {
    85                  "type": "number"
    86                },
    87                {
    88                  "type": "string"
    89                }
    90              ]
    91            },
    92            "minItems": 1,
    93            "additionalItems": false
    94          },
    95          "volumes": {
    96            "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainervolumes",
    97            "description": "Sets an array of volumes for the container to use. You can use volumes to share data between services or other steps in a job. You can specify named Docker volumes, anonymous Docker volumes, or bind mounts on the host.\nTo specify a volume, you specify the source and destination path: <source>:<destinationPath>\nThe <source> is a volume name or an absolute path on the host machine, and <destinationPath> is an absolute path in the container.",
    98            "type": "array",
    99            "items": {
   100              "type": "string",
   101              "pattern": "^[^:]+:[^:]+$"
   102            },
   103            "minItems": 1,
   104            "additionalItems": false
   105          },
   106          "options": {
   107            "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontaineroptions",
   108            "description": "Additional Docker container resource options. For a list of options, see https://docs.docker.com/engine/reference/commandline/create/#options.",
   109            "type": "string"
   110          }
   111        },
   112        "required": [
   113          "image"
   114        ],
   115        "additionalProperties": false
   116      },
   117      "defaults": {
   118        "type": "object",
   119        "properties": {
   120          "run": {
   121            "type": "object",
   122            "properties": {
   123              "shell": {
   124                "$ref": "#/definitions/shell"
   125              },
   126              "working-directory": {
   127                "$ref": "#/definitions/working-directory"
   128              }
   129            },
   130            "minProperties": 1,
   131            "additionalProperties": false
   132          }
   133        },
   134        "minProperties": 1,
   135        "additionalProperties": false
   136      },
   137      "env": {
   138        "type": "object",
   139        "additionalProperties": {
   140          "oneOf": [
   141            {
   142              "type": "string"
   143            },
   144            {
   145              "type": "number"
   146            },
   147            {
   148              "type": "boolean"
   149            }
   150          ]
   151        },
   152        "minProperties": 1
   153      },
   154      "environment": {
   155        "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idenvironment",
   156        "description": "The environment that the job references",
   157        "type": "object",
   158        "properties": {
   159          "name": {
   160            "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#example-using-a-single-environment-name",
   161            "description": "The name of the environment configured in the repo.",
   162            "type": "string"
   163          },
   164          "url": {
   165            "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#example-using-environment-name-and-url",
   166            "description": "A deployment URL",
   167            "type": "string"
   168          }
   169        },
   170        "required": [
   171          "name"
   172        ],
   173        "additionalProperties": false
   174      },
   175      "event": {
   176        "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows",
   177        "type": "string",
   178        "enum": [
   179          "check_run",
   180          "check_suite",
   181          "create",
   182          "delete",
   183          "deployment",
   184          "deployment_status",
   185          "fork",
   186          "gollum",
   187          "issue_comment",
   188          "issues",
   189          "label",
   190          "member",
   191          "milestone",
   192          "page_build",
   193          "project",
   194          "project_card",
   195          "project_column",
   196          "public",
   197          "pull_request",
   198          "pull_request_review",
   199          "pull_request_review_comment",
   200          "pull_request_target",
   201          "push",
   202          "registry_package",
   203          "release",
   204          "status",
   205          "watch",
   206          "workflow_dispatch",
   207          "workflow_run",
   208          "repository_dispatch"
   209        ]
   210      },
   211      "eventObject": {
   212        "oneOf": [
   213          {
   214            "type": "object"
   215          },
   216          {
   217            "type": "null"
   218          }
   219        ],
   220        "additionalProperties": true
   221      },
   222      "expressionSyntax": {
   223        "type": "string",
   224        "pattern": "^\\$\\{\\{.*\\}\\}$"
   225      },
   226      "globs": {
   227        "type": "array",
   228        "items": {
   229          "type": "string",
   230          "minLength": 1
   231        },
   232        "minItems": 1,
   233        "additionalItems": false
   234      },
   235      "machine": {
   236        "type": "string",
   237        "enum": [
   238          "linux",
   239          "macos",
   240          "windows"
   241        ]
   242      },
   243      "name": {
   244        "type": "string",
   245        "pattern": "^[_a-zA-Z][a-zA-Z0-9_-]*$"
   246      },
   247      "path": {
   248        "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushpull_requestpaths",
   249        "$ref": "#/definitions/globs",
   250        "description": "When using the push and pull_request events, you can configure a workflow to run when at least one file does not match paths-ignore or at least one modified file matches the configured paths. Path filters are not evaluated for pushes to tags.\nThe paths-ignore and paths keywords accept glob patterns that use the * and ** wildcard characters to match more than one path name. For more information, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet.\nYou can exclude paths using two types of filters. You cannot use both of these filters for the same event in a workflow.\n- paths-ignore - Use the paths-ignore filter when you only need to exclude path names.\n- paths - Use the paths filter when you need to filter paths for positive matches and exclude paths."
   251      },
   252      "ref": {
   253        "properties": {
   254          "branches": {
   255            "$ref": "#/definitions/branch"
   256          },
   257          "branches-ignore": {
   258            "$ref": "#/definitions/branch"
   259          },
   260          "tags": {
   261            "$ref": "#/definitions/branch"
   262          },
   263          "tags-ignore": {
   264            "$ref": "#/definitions/branch"
   265          },
   266          "paths": {
   267            "$ref": "#/definitions/path"
   268          },
   269          "paths-ignore": {
   270            "$ref": "#/definitions/path"
   271          }
   272        },
   273        "oneOf": [
   274          {
   275            "type": "object",
   276            "allOf": [
   277              {
   278                "not": {
   279                  "required": [
   280                    "branches",
   281                    "branches-ignore"
   282                  ]
   283                }
   284              },
   285              {
   286                "not": {
   287                  "required": [
   288                    "tags",
   289                    "tags-ignore"
   290                  ]
   291                }
   292              },
   293              {
   294                "not": {
   295                  "required": [
   296                    "paths",
   297                    "paths-ignore"
   298                  ]
   299                }
   300              }
   301            ]
   302          },
   303          {
   304            "type": "null"
   305          }
   306        ]
   307      },
   308      "shell": {
   309        "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell",
   310        "description": "You can override the default shell settings in the runner's operating system using the shell keyword. You can use built-in shell keywords, or you can define a custom set of shell options.",
   311        "type": "string",
   312        "anyOf": [
   313          {
   314            "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#custom-shell"
   315          },
   316          {
   317            "enum": [
   318              "bash",
   319              "pwsh",
   320              "python",
   321              "sh",
   322              "cmd",
   323              "powershell"
   324            ]
   325          }
   326        ]
   327      },
   328      "types": {
   329        "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onevent_nametypes",
   330        "description": "Selects the types of activity that will trigger a workflow run. Most GitHub events are triggered by more than one type of activity. For example, the event for the release resource is triggered when a release is published, unpublished, created, edited, deleted, or prereleased. The types keyword enables you to narrow down activity that causes the workflow to run. When only one activity type triggers a webhook event, the types keyword is unnecessary.\nYou can use an array of event types. For more information about each event and their activity types, see https://help.github.com/en/articles/events-that-trigger-workflows#webhook-events.",
   331        "type": "array",
   332        "minItems": 1,
   333        "additionalItems": false
   334      },
   335      "working-directory": {
   336        "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsrun",
   337        "description": "Using the working-directory keyword, you can specify the working directory of where to run the command.",
   338        "type": "string"
   339      }
   340    },
   341    "properties": {
   342      "name": {
   343        "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#name",
   344        "description": "The name of your workflow. GitHub displays the names of your workflows on your repository's actions page. If you omit this field, GitHub sets the name to the workflow's filename.",
   345        "type": "string"
   346      },
   347      "on": {
   348        "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#on",
   349        "description": "The name of the GitHub event that triggers the workflow. You can provide a single event string, array of events, array of event types, or an event configuration map that schedules a workflow or restricts the execution of a workflow to specific files, tags, or branch changes. For a list of available events, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows.",
   350        "oneOf": [
   351          {
   352            "$ref": "#/definitions/event"
   353          },
   354          {
   355            "type": "array",
   356            "items": {
   357              "$ref": "#/definitions/event"
   358            },
   359            "minItems": 1,
   360            "additionalItems": false
   361          },
   362          {
   363            "type": "object",
   364            "properties": {
   365              "check_run": {
   366                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#check-run-event-check_run",
   367                "$ref": "#/definitions/eventObject",
   368                "description": "Runs your workflow anytime the check_run event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/checks/runs.",
   369                "properties": {
   370                  "types": {
   371                    "$ref": "#/definitions/types",
   372                    "items": {
   373                      "type": "string",
   374                      "enum": [
   375                        "created",
   376                        "rerequested",
   377                        "completed",
   378                        "requested_action"
   379                      ]
   380                    },
   381                    "default": [
   382                      "created",
   383                      "rerequested",
   384                      "completed",
   385                      "requested_action"
   386                    ]
   387                  }
   388                }
   389              },
   390              "check_suite": {
   391                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#check-suite-event-check_suite",
   392                "$ref": "#/definitions/eventObject",
   393                "description": "Runs your workflow anytime the check_suite event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/checks/suites/.",
   394                "properties": {
   395                  "types": {
   396                    "$ref": "#/definitions/types",
   397                    "items": {
   398                      "type": "string",
   399                      "enum": [
   400                        "completed",
   401                        "requested",
   402                        "rerequested"
   403                      ]
   404                    },
   405                    "default": [
   406                      "completed",
   407                      "requested",
   408                      "rerequested"
   409                    ]
   410                  }
   411                }
   412              },
   413              "create": {
   414                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#create-event-create",
   415                "$ref": "#/definitions/eventObject",
   416                "description": "Runs your workflow anytime someone creates a branch or tag, which triggers the create event. For information about the REST API, see https://developer.github.com/v3/git/refs/#create-a-reference."
   417              },
   418              "delete": {
   419                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#delete-event-delete",
   420                "$ref": "#/definitions/eventObject",
   421                "description": "Runs your workflow anytime someone deletes a branch or tag, which triggers the delete event. For information about the REST API, see https://developer.github.com/v3/git/refs/#delete-a-reference."
   422              },
   423              "deployment": {
   424                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#deployment-event-deployment",
   425                "$ref": "#/definitions/eventObject",
   426                "description": "Runs your workflow anytime someone creates a deployment, which triggers the deployment event. Deployments created with a commit SHA may not have a Git ref. For information about the REST API, see https://developer.github.com/v3/repos/deployments/."
   427              },
   428              "deployment_status": {
   429                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#deployment-status-event-deployment_status",
   430                "$ref": "#/definitions/eventObject",
   431                "description": "Runs your workflow anytime a third party provides a deployment status, which triggers the deployment_status event. Deployments created with a commit SHA may not have a Git ref. For information about the REST API, see https://developer.github.com/v3/repos/deployments/#create-a-deployment-status."
   432              },
   433              "fork": {
   434                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#fork-event-fork",
   435                "$ref": "#/definitions/eventObject",
   436                "description": "Runs your workflow anytime when someone forks a repository, which triggers the fork event. For information about the REST API, see https://developer.github.com/v3/repos/forks/#create-a-fork."
   437              },
   438              "gollum": {
   439                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#gollum-event-gollum",
   440                "$ref": "#/definitions/eventObject",
   441                "description": "Runs your workflow when someone creates or updates a Wiki page, which triggers the gollum event."
   442              },
   443              "issue_comment": {
   444                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#issue-comment-event-issue_comment",
   445                "$ref": "#/definitions/eventObject",
   446                "description": "Runs your workflow anytime the issue_comment event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues/comments/.",
   447                "properties": {
   448                  "types": {
   449                    "$ref": "#/definitions/types",
   450                    "items": {
   451                      "type": "string",
   452                      "enum": [
   453                        "created",
   454                        "edited",
   455                        "deleted"
   456                      ]
   457                    },
   458                    "default": [
   459                      "created",
   460                      "edited",
   461                      "deleted"
   462                    ]
   463                  }
   464                }
   465              },
   466              "issues": {
   467                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#issues-event-issues",
   468                "$ref": "#/definitions/eventObject",
   469                "description": "Runs your workflow anytime the issues event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues.",
   470                "properties": {
   471                  "types": {
   472                    "$ref": "#/definitions/types",
   473                    "items": {
   474                      "type": "string",
   475                      "enum": [
   476                        "opened",
   477                        "edited",
   478                        "deleted",
   479                        "transferred",
   480                        "pinned",
   481                        "unpinned",
   482                        "closed",
   483                        "reopened",
   484                        "assigned",
   485                        "unassigned",
   486                        "labeled",
   487                        "unlabeled",
   488                        "locked",
   489                        "unlocked",
   490                        "milestoned",
   491                        "demilestoned"
   492                      ]
   493                    },
   494                    "default": [
   495                      "opened",
   496                      "edited",
   497                      "deleted",
   498                      "transferred",
   499                      "pinned",
   500                      "unpinned",
   501                      "closed",
   502                      "reopened",
   503                      "assigned",
   504                      "unassigned",
   505                      "labeled",
   506                      "unlabeled",
   507                      "locked",
   508                      "unlocked",
   509                      "milestoned",
   510                      "demilestoned"
   511                    ]
   512                  }
   513                }
   514              },
   515              "label": {
   516                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#label-event-label",
   517                "$ref": "#/definitions/eventObject",
   518                "description": "Runs your workflow anytime the label event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues/labels/.",
   519                "properties": {
   520                  "types": {
   521                    "$ref": "#/definitions/types",
   522                    "items": {
   523                      "type": "string",
   524                      "enum": [
   525                        "created",
   526                        "edited",
   527                        "deleted"
   528                      ]
   529                    },
   530                    "default": [
   531                      "created",
   532                      "edited",
   533                      "deleted"
   534                    ]
   535                  }
   536                }
   537              },
   538              "member": {
   539                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#member-event-member",
   540                "$ref": "#/definitions/eventObject",
   541                "description": "Runs your workflow anytime the member event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/repos/collaborators/.",
   542                "properties": {
   543                  "types": {
   544                    "$ref": "#/definitions/types",
   545                    "items": {
   546                      "type": "string",
   547                      "enum": [
   548                        "added",
   549                        "edited",
   550                        "deleted"
   551                      ]
   552                    },
   553                    "default": [
   554                      "added",
   555                      "edited",
   556                      "deleted"
   557                    ]
   558                  }
   559                }
   560              },
   561              "milestone": {
   562                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#milestone-event-milestone",
   563                "$ref": "#/definitions/eventObject",
   564                "description": "Runs your workflow anytime the milestone event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues/milestones/.",
   565                "properties": {
   566                  "types": {
   567                    "$ref": "#/definitions/types",
   568                    "items": {
   569                      "type": "string",
   570                      "enum": [
   571                        "created",
   572                        "closed",
   573                        "opened",
   574                        "edited",
   575                        "deleted"
   576                      ]
   577                    },
   578                    "default": [
   579                      "created",
   580                      "closed",
   581                      "opened",
   582                      "edited",
   583                      "deleted"
   584                    ]
   585                  }
   586                }
   587              },
   588              "page_build": {
   589                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#page-build-event-page_build",
   590                "$ref": "#/definitions/eventObject",
   591                "description": "Runs your workflow anytime someone pushes to a GitHub Pages-enabled branch, which triggers the page_build event. For information about the REST API, see https://developer.github.com/v3/repos/pages/."
   592              },
   593              "project": {
   594                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#project-event-project",
   595                "$ref": "#/definitions/eventObject",
   596                "description": "Runs your workflow anytime the project event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/projects/.",
   597                "properties": {
   598                  "types": {
   599                    "$ref": "#/definitions/types",
   600                    "items": {
   601                      "type": "string",
   602                      "enum": [
   603                        "created",
   604                        "updated",
   605                        "closed",
   606                        "reopened",
   607                        "edited",
   608                        "deleted"
   609                      ]
   610                    },
   611                    "default": [
   612                      "created",
   613                      "updated",
   614                      "closed",
   615                      "reopened",
   616                      "edited",
   617                      "deleted"
   618                    ]
   619                  }
   620                }
   621              },
   622              "project_card": {
   623                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#project-card-event-project_card",
   624                "$ref": "#/definitions/eventObject",
   625                "description": "Runs your workflow anytime the project_card event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/projects/cards.",
   626                "properties": {
   627                  "types": {
   628                    "$ref": "#/definitions/types",
   629                    "items": {
   630                      "type": "string",
   631                      "enum": [
   632                        "created",
   633                        "moved",
   634                        "converted",
   635                        "edited",
   636                        "deleted"
   637                      ]
   638                    },
   639                    "default": [
   640                      "created",
   641                      "moved",
   642                      "converted",
   643                      "edited",
   644                      "deleted"
   645                    ]
   646                  }
   647                }
   648              },
   649              "project_column": {
   650                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#project-column-event-project_column",
   651                "$ref": "#/definitions/eventObject",
   652                "description": "Runs your workflow anytime the project_column event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/projects/columns.",
   653                "properties": {
   654                  "types": {
   655                    "$ref": "#/definitions/types",
   656                    "items": {
   657                      "type": "string",
   658                      "enum": [
   659                        "created",
   660                        "updated",
   661                        "moved",
   662                        "deleted"
   663                      ]
   664                    },
   665                    "default": [
   666                      "created",
   667                      "updated",
   668                      "moved",
   669                      "deleted"
   670                    ]
   671                  }
   672                }
   673              },
   674              "public": {
   675                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#public-event-public",
   676                "$ref": "#/definitions/eventObject",
   677                "description": "Runs your workflow anytime someone makes a private repository public, which triggers the public event. For information about the REST API, see https://developer.github.com/v3/repos/#edit."
   678              },
   679              "pull_request": {
   680                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#pull-request-event-pull_request",
   681                "$ref": "#/definitions/ref",
   682                "description": "Runs your workflow anytime the pull_request event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/pulls.\nNote: Workflows do not run on private base repositories when you open a pull request from a forked repository.\nWhen you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.\nWorkflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.\nThe permissions for the GITHUB_TOKEN in forked repositories is read-only. For more information about the GITHUB_TOKEN, see https://help.github.com/en/articles/virtual-environments-for-github-actions.",
   683                "properties": {
   684                  "types": {
   685                    "$ref": "#/definitions/types",
   686                    "items": {
   687                      "type": "string",
   688                      "enum": [
   689                        "assigned",
   690                        "unassigned",
   691                        "labeled",
   692                        "unlabeled",
   693                        "opened",
   694                        "edited",
   695                        "closed",
   696                        "reopened",
   697                        "synchronize",
   698                        "ready_for_review",
   699                        "locked",
   700                        "unlocked",
   701                        "review_requested",
   702                        "review_request_removed"
   703                      ]
   704                    },
   705                    "default": [
   706                      "opened",
   707                      "synchronize",
   708                      "reopened"
   709                    ]
   710                  }
   711                },
   712                "patternProperties": {
   713                  "^(branche|tag|path)s(-ignore)?$": {}
   714                },
   715                "additionalProperties": false
   716              },
   717              "pull_request_review": {
   718                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#pull-request-review-event-pull_request_review",
   719                "$ref": "#/definitions/eventObject",
   720                "description": "Runs your workflow anytime the pull_request_review event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/pulls/reviews.\nNote: Workflows do not run on private base repositories when you open a pull request from a forked repository.\nWhen you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.\nWorkflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.\nThe permissions for the GITHUB_TOKEN in forked repositories is read-only. For more information about the GITHUB_TOKEN, see https://help.github.com/en/articles/virtual-environments-for-github-actions.",
   721                "properties": {
   722                  "types": {
   723                    "$ref": "#/definitions/types",
   724                    "items": {
   725                      "type": "string",
   726                      "enum": [
   727                        "submitted",
   728                        "edited",
   729                        "dismissed"
   730                      ]
   731                    },
   732                    "default": [
   733                      "submitted",
   734                      "edited",
   735                      "dismissed"
   736                    ]
   737                  }
   738                }
   739              },
   740              "pull_request_review_comment": {
   741                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#pull-request-review-comment-event-pull_request_review_comment",
   742                "$ref": "#/definitions/eventObject",
   743                "description": "Runs your workflow anytime a comment on a pull request's unified diff is modified, which triggers the pull_request_review_comment event. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/pulls/comments.\nNote: Workflows do not run on private base repositories when you open a pull request from a forked repository.\nWhen you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.\nWorkflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.\nThe permissions for the GITHUB_TOKEN in forked repositories is read-only. For more information about the GITHUB_TOKEN, see https://help.github.com/en/articles/virtual-environments-for-github-actions.",
   744                "properties": {
   745                  "types": {
   746                    "$ref": "#/definitions/types",
   747                    "items": {
   748                      "type": "string",
   749                      "enum": [
   750                        "created",
   751                        "edited",
   752                        "deleted"
   753                      ]
   754                    },
   755                    "default": [
   756                      "created",
   757                      "edited",
   758                      "deleted"
   759                    ]
   760                  }
   761                }
   762              },
   763              "pull_request_target": {
   764                "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request_target",
   765                "$ref": "#/definitions/ref",
   766                "description": "This event is similar to pull_request, except that it runs in the context of the base repository of the pull request, rather than in the merge commit. This means that you can more safely make your secrets available to the workflows triggered by the pull request, because only workflows defined in the commit on the base repository are run. For example, this event allows you to create workflows that label and comment on pull requests, based on the contents of the event payload.",
   767                "properties": {
   768                  "types": {
   769                    "$ref": "#/definitions/types",
   770                    "items": {
   771                      "type": "string",
   772                      "enum": [
   773                        "assigned",
   774                        "unassigned",
   775                        "labeled",
   776                        "unlabeled",
   777                        "opened",
   778                        "edited",
   779                        "closed",
   780                        "reopened",
   781                        "synchronize",
   782                        "ready_for_review",
   783                        "locked",
   784                        "unlocked",
   785                        "review_requested",
   786                        "review_request_removed"
   787                      ]
   788                    },
   789                    "default": [
   790                      "opened",
   791                      "synchronize",
   792                      "reopened"
   793                    ]
   794                  }
   795                },
   796                "patternProperties": {
   797                  "^(branche|tag|path)s(-ignore)?$": {}
   798                },
   799                "additionalProperties": false
   800              },
   801              "push": {
   802                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#push-event-push",
   803                "$ref": "#/definitions/ref",
   804                "description": "Runs your workflow when someone pushes to a repository branch, which triggers the push event.\nNote: The webhook payload available to GitHub Actions does not include the added, removed, and modified attributes in the commit object. You can retrieve the full commit object using the REST API. For more information, see https://developer.github.com/v3/repos/commits/#get-a-single-commit.",
   805                "patternProperties": {
   806                  "^(branche|tag|path)s(-ignore)?$": {}
   807                },
   808                "additionalProperties": false
   809              },
   810              "registry_package": {
   811                "$comment": "https://help.github.com/en/actions/reference/events-that-trigger-workflows#registry-package-event-registry_package",
   812                "$ref": "#/definitions/eventObject",
   813                "description": "Runs your workflow anytime a package is published or updated. For more information, see https://help.github.com/en/github/managing-packages-with-github-packages.",
   814                "properties": {
   815                  "types": {
   816                    "$ref": "#/definitions/types",
   817                    "items": {
   818                      "type": "string",
   819                      "enum": [
   820                        "published",
   821                        "updated"
   822                      ]
   823                    },
   824                    "default": [
   825                      "published",
   826                      "updated"
   827                    ]
   828                  }
   829                }
   830              },
   831              "release": {
   832                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#release-event-release",
   833                "$ref": "#/definitions/eventObject",
   834                "description": "Runs your workflow anytime the release event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/repos/releases/ in the GitHub Developer documentation.",
   835                "properties": {
   836                  "types": {
   837                    "$ref": "#/definitions/types",
   838                    "items": {
   839                      "type": "string",
   840                      "enum": [
   841                        "published",
   842                        "unpublished",
   843                        "created",
   844                        "edited",
   845                        "deleted",
   846                        "prereleased",
   847                        "released"
   848                      ]
   849                    },
   850                    "default": [
   851                      "published",
   852                      "unpublished",
   853                      "created",
   854                      "edited",
   855                      "deleted",
   856                      "prereleased",
   857                      "released"
   858                    ]
   859                  }
   860                }
   861              },
   862              "status": {
   863                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#status-event-status",
   864                "$ref": "#/definitions/eventObject",
   865                "description": "Runs your workflow anytime the status of a Git commit changes, which triggers the status event. For information about the REST API, see https://developer.github.com/v3/repos/statuses/."
   866              },
   867              "watch": {
   868                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#watch-event-watch",
   869                "$ref": "#/definitions/eventObject",
   870                "description": "Runs your workflow anytime the watch event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/activity/starring/."
   871              },
   872              "workflow_dispatch": {
   873                "$comment": "https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/",
   874                "description": "You can now create workflows that are manually triggered with the new workflow_dispatch event. You will then see a 'Run workflow' button on the Actions tab, enabling you to easily trigger a run.",
   875                "properties": {
   876                  "inputs": {
   877                    "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputs",
   878                    "description": "Input parameters allow you to specify data that the action expects to use during runtime. GitHub stores input parameters as environment variables. Input ids with uppercase letters are converted to lowercase during runtime. We recommended using lowercase input ids.",
   879                    "type": "object",
   880                    "patternProperties": {
   881                      "^[_a-zA-Z][a-zA-Z0-9_-]*$": {
   882                        "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_id",
   883                        "description": "A string identifier to associate with the input. The value of <input_id> is a map of the input's metadata. The <input_id> must be a unique identifier within the inputs object. The <input_id> must start with a letter or _ and contain only alphanumeric characters, -, or _.",
   884                        "type": "object",
   885                        "properties": {
   886                          "description": {
   887                            "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddescription",
   888                            "description": "A string description of the input parameter.",
   889                            "type": "string"
   890                          },
   891                          "deprecationMessage": {
   892                            "description": "A string shown to users using the deprecated input.",
   893                            "type": "string"
   894                          },
   895                          "required": {
   896                            "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_idrequired",
   897                            "description": "A boolean to indicate whether the action requires the input parameter. Set to true when the parameter is required.",
   898                            "type": "boolean"
   899                          },
   900                          "default": {
   901                            "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddefault",
   902                            "description": "A string representing the default value. The default value is used when an input parameter isn't specified in a workflow file.",
   903                            "type": "string"
   904                          }
   905                        },
   906                        "required": [
   907                          "description",
   908                          "required"
   909                        ],
   910                        "additionalProperties": false
   911                      }
   912                    },
   913                    "additionalProperties": false
   914                  }
   915                }
   916              },
   917              "workflow_run": {
   918                "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_run",
   919                "$ref": "#/definitions/eventObject",
   920                "description": "This event occurs when a workflow run is requested or completed, and allows you to execute a workflow based on the finished result of another workflow. For example, if your pull_request workflow generates build artifacts, you can create a new workflow that uses workflow_run to analyze the results and add a comment to the original pull request.",
   921                "properties": {
   922                  "types": {
   923                    "$ref": "#/definitions/types",
   924                    "items": {
   925                      "type": "string",
   926                      "enum": [
   927                        "requested",
   928                        "completed"
   929                      ]
   930                    },
   931                    "default": [
   932                      "requested",
   933                      "completed"
   934                    ]
   935                  },
   936                  "workflows": {
   937                    "type": "array",
   938                    "items": {
   939                      "type": "string"
   940                    },
   941                    "minItems": 1,
   942                    "additionalItems": false
   943                  }
   944                },
   945                "patternProperties": {
   946                  "^branches(-ignore)?$": {}
   947                }
   948              },
   949              "repository_dispatch": {
   950                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#external-events-repository_dispatch",
   951                "$ref": "#/definitions/eventObject",
   952                "description": "You can use the GitHub API to trigger a webhook event called repository_dispatch when you want to trigger a workflow for activity that happens outside of GitHub. For more information, see https://developer.github.com/v3/repos/#create-a-repository-dispatch-event.\nTo trigger the custom repository_dispatch webhook event, you must send a POST request to a GitHub API endpoint and provide an event_type name to describe the activity type. To trigger a workflow run, you must also configure your workflow to use the repository_dispatch event."
   953              },
   954              "schedule": {
   955                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#scheduled-events-schedule",
   956                "description": "You can schedule a workflow to run at specific UTC times using POSIX cron syntax (https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07). Scheduled workflows run on the latest commit on the default or base branch. The shortest interval you can run scheduled workflows is once every 5 minutes.\nNote: GitHub Actions does not support the non-standard syntax @yearly, @monthly, @weekly, @daily, @hourly, and @reboot.\nYou can use crontab guru (https://crontab.guru/). to help generate your cron syntax and confirm what time it will run. To help you get started, there is also a list of crontab guru examples (https://crontab.guru/examples.html).",
   957                "type": "array",
   958                "items": {
   959                  "properties": {
   960                    "cron": {
   961                      "$comment": "https://stackoverflow.com/a/57639657/4044345",
   962                      "type": "string",
   963                      "pattern": "^(((\\d+,)+\\d+|((\\d+|\\*)\\/\\d+|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)|(\\d+-\\d+)|\\d+|\\*|MON|TUE|WED|THU|FRI|SAT|SUN) ?){5,7}$"
   964                    }
   965                  },
   966                  "additionalProperties": false
   967                },
   968                "minItems": 1,
   969                "additionalItems": false
   970              }
   971            },
   972            "additionalProperties": false
   973          }
   974        ]
   975      },
   976      "env": {
   977        "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env",
   978        "$ref": "#/definitions/env",
   979        "description": "A map of environment variables that are available to all jobs and steps in the workflow."
   980      },
   981      "defaults": {
   982        "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaults",
   983        "$ref": "#/definitions/defaults",
   984        "description": "A map of default settings that will apply to all jobs in the workflow."
   985      },
   986      "jobs": {
   987        "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobs",
   988        "description": "A workflow run is made up of one or more jobs. Jobs run in parallel by default. To run jobs sequentially, you can define dependencies on other jobs using the jobs.<job_id>.needs keyword.\nEach job runs in a fresh instance of the virtual environment specified by runs-on.\nYou can run an unlimited number of jobs as long as you are within the workflow usage limits. For more information, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#usage-limits.",
   989        "type": "object",
   990        "patternProperties": {
   991          "^[_a-zA-Z][a-zA-Z0-9_-]*$": {
   992            "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_id",
   993            "description": "Each job must have an id to associate with the job. The key job_id is a string and its value is a map of the job's configuration data. You must replace <job_id> with a string that is unique to the jobs object. The <job_id> must start with a letter or _ and contain only alphanumeric characters, -, or _.",
   994            "type": "object",
   995            "properties": {
   996              "name": {
   997                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idname",
   998                "description": "The name of the job displayed on GitHub.",
   999                "type": "string"
  1000              },
  1001              "needs": {
  1002                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idneeds",
  1003                "description": "Identifies any jobs that must complete successfully before this job will run. It can be a string or array of strings. If a job fails, all jobs that need it are skipped unless the jobs use a conditional statement that causes the job to continue.",
  1004                "oneOf": [
  1005                  {
  1006                    "type": "array",
  1007                    "items": {
  1008                      "$ref": "#/definitions/name"
  1009                    },
  1010                    "minItems": 1,
  1011                    "additionalItems": false
  1012                  },
  1013                  {
  1014                    "$ref": "#/definitions/name"
  1015                  }
  1016                ]
  1017              },
  1018              "runs-on": {
  1019                "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idruns-on",
  1020                "description": "The type of machine to run the job on. The machine can be either a GitHub-hosted runner, or a self-hosted runner.",
  1021                "oneOf": [
  1022                  {
  1023                    "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#github-hosted-runners",
  1024                    "type": "string",
  1025                    "enum": [
  1026                      "macos-10.15",
  1027                      "macos-11.0",
  1028                      "macos-latest",
  1029                      "self-hosted",
  1030                      "ubuntu-16.04",
  1031                      "ubuntu-18.04",
  1032                      "ubuntu-20.04",
  1033                      "ubuntu-latest",
  1034                      "windows-2016",
  1035                      "windows-2019",
  1036                      "windows-latest"
  1037                    ]
  1038                  },
  1039                  {
  1040                    "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#self-hosted-runners",
  1041                    "type": "array",
  1042                    "anyOf": [
  1043                      {
  1044                        "items": [
  1045                          {
  1046                            "const": "self-hosted"
  1047                          }
  1048                        ]
  1049                      },
  1050                      {
  1051                        "items": [
  1052                          {
  1053                            "const": "self-hosted"
  1054                          },
  1055                          {
  1056                            "$ref": "#/definitions/machine"
  1057                          }
  1058                        ]
  1059                      },
  1060                      {
  1061                        "items": [
  1062                          {
  1063                            "const": "self-hosted"
  1064                          },
  1065                          {
  1066                            "$ref": "#/definitions/architecture"
  1067                          }
  1068                        ]
  1069                      },
  1070                      {
  1071                        "items": [
  1072                          {
  1073                            "const": "self-hosted"
  1074                          },
  1075                          {
  1076                            "$ref": "#/definitions/machine"
  1077                          },
  1078                          {
  1079                            "$ref": "#/definitions/architecture"
  1080                          }
  1081                        ]
  1082                      },
  1083                      {
  1084                        "items": [
  1085                          {
  1086                            "const": "self-hosted"
  1087                          },
  1088                          {
  1089                            "$ref": "#/definitions/architecture"
  1090                          },
  1091                          {
  1092                            "$ref": "#/definitions/machine"
  1093                          }
  1094                        ]
  1095                      }
  1096                    ],
  1097                    "additionalItems": {
  1098                      "type": "string"
  1099                    }
  1100                  },
  1101                  {
  1102                    "$ref": "#/definitions/expressionSyntax"
  1103                  }
  1104                ]
  1105              },
  1106              "environment": {
  1107                "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idenvironment",
  1108                "description": "The environment that the job references.",
  1109                "oneOf": [
  1110                  {
  1111                    "type": "string"
  1112                  },
  1113                  {
  1114                    "$ref": "#/definitions/environment"
  1115                  }
  1116                ]
  1117              },
  1118              "outputs": {
  1119                "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjobs_idoutputs",
  1120                "description": "A map of outputs for a job. Job outputs are available to all downstream jobs that depend on this job.",
  1121                "type": "object",
  1122                "additionalProperties": {
  1123                  "type": "string"
  1124                },
  1125                "minProperties": 1
  1126              },
  1127              "env": {
  1128                "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idenv",
  1129                "$ref": "#/definitions/env",
  1130                "description": "A map of environment variables that are available to all steps in the job."
  1131              },
  1132              "defaults": {
  1133                "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_iddefaults",
  1134                "$ref": "#/definitions/defaults",
  1135                "description": "A map of default settings that will apply to all steps in the job."
  1136              },
  1137              "if": {
  1138                "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idif",
  1139                "description": "You can use the if conditional to prevent a job from running unless a condition is met. You can use any supported context and expression to create a conditional.\nExpressions in an if conditional do not require the ${{ }} syntax. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.",
  1140                "type": "string"
  1141              },
  1142              "steps": {
  1143                "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idsteps",
  1144                "description": "A job contains a sequence of tasks called steps. Steps can run commands, run setup tasks, or run an action in your repository, a public repository, or an action published in a Docker registry. Not all steps run actions, but all actions run as a step. Each step runs in its own process in the virtual environment and has access to the workspace and filesystem. Because steps run in their own process, changes to environment variables are not preserved between steps. GitHub provides built-in steps to set up and complete a job.\n",
  1145                "type": "array",
  1146                "items": {
  1147                  "type": "object",
  1148                  "properties": {
  1149                    "id": {
  1150                      "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid",
  1151                      "description": "A unique identifier for the step. You can use the id to reference the step in contexts. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.",
  1152                      "type": "string"
  1153                    },
  1154                    "if": {
  1155                      "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsif",
  1156                      "description": "You can use the if conditional to prevent a step from running unless a condition is met. You can use any supported context and expression to create a conditional.\nExpressions in an if conditional do not require the ${{ }} syntax. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.",
  1157                      "type": "string"
  1158                    },
  1159                    "name": {
  1160                      "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsname",
  1161                      "description": "A name for your step to display on GitHub.",
  1162                      "type": "string"
  1163                    },
  1164                    "uses": {
  1165                      "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsuses",
  1166                      "description": "Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a published Docker container image (https://hub.docker.com/).\nWe strongly recommend that you include the version of the action you are using by specifying a Git ref, SHA, or Docker tag number. If you don't specify a version, it could break your workflows or cause unexpected behavior when the action owner publishes an update.\n- Using the commit SHA of a released action version is the safest for stability and security.\n- Using the specific major action version allows you to receive critical fixes and security patches while still maintaining compatibility. It also assures that your workflow should still work.\n- Using the master branch of an action may be convenient, but if someone releases a new major version with a breaking change, your workflow could break.\nSome actions require inputs that you must set using the with keyword. Review the action's README file to determine the inputs required.\nActions are either JavaScript files or Docker containers. If the action you're using is a Docker container you must run the job in a Linux virtual environment. For more details, see https://help.github.com/en/articles/virtual-environments-for-github-actions.",
  1167                      "type": "string"
  1168                    },
  1169                    "run": {
  1170                      "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsrun",
  1171                      "description": "Runs command-line programs using the operating system's shell. If you do not provide a name, the step name will default to the text specified in the run command.\nCommands run using non-login shells by default. You can choose a different shell and customize the shell used to run commands. For more information, see https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#using-a-specific-shell.\nEach run keyword represents a new process and shell in the virtual environment. When you provide multi-line commands, each line runs in the same shell.",
  1172                      "type": "string"
  1173                    },
  1174                    "working-directory": {
  1175                      "$ref": "#/definitions/working-directory"
  1176                    },
  1177                    "shell": {
  1178                      "$ref": "#/definitions/shell"
  1179                    },
  1180                    "with": {
  1181                      "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepswith",
  1182                      "$ref": "#/definitions/env",
  1183                      "description": "A map of the input parameters defined by the action. Each input parameter is a key/value pair. Input parameters are set as environment variables. The variable is prefixed with INPUT_ and converted to upper case.",
  1184                      "properties": {
  1185                        "args": {
  1186                          "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepswithargs",
  1187                          "type": "string"
  1188                        },
  1189                        "entrypoint": {
  1190                          "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepswithentrypoint",
  1191                          "type": "string"
  1192                        }
  1193                      }
  1194                    },
  1195                    "env": {
  1196                      "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsenv",
  1197                      "$ref": "#/definitions/env",
  1198                      "description": "Sets environment variables for steps to use in the virtual environment. You can also set environment variables for the entire workflow or a job."
  1199                    },
  1200                    "continue-on-error": {
  1201                      "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error",
  1202                      "description": "Prevents a job from failing when a step fails. Set to true to allow a job to pass when this step fails.",
  1203                      "oneOf": [
  1204                        {
  1205                          "type": "boolean"
  1206                        },
  1207                        {
  1208                          "$ref": "#/definitions/expressionSyntax"
  1209                        }
  1210                      ],
  1211                      "default": false
  1212                    },
  1213                    "timeout-minutes": {
  1214                      "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes",
  1215                      "description": "The maximum number of minutes to run the step before killing the process.",
  1216                      "type": "number"
  1217                    }
  1218                  },
  1219                  "dependencies": {
  1220                    "working-directory": [
  1221                      "run"
  1222                    ],
  1223                    "shell": [
  1224                      "run"
  1225                    ]
  1226                  },
  1227                  "additionalProperties": false
  1228                },
  1229                "minItems": 1,
  1230                "additionalItems": false
  1231              },
  1232              "timeout-minutes": {
  1233                "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes",
  1234                "description": "The maximum number of minutes to let a workflow run before GitHub automatically cancels it. Default: 360",
  1235                "type": "number",
  1236                "default": 360
  1237              },
  1238              "strategy": {
  1239                "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategy",
  1240                "description": "A strategy creates a build matrix for your jobs. You can define different variations of an environment to run each job in.",
  1241                "type": "object",
  1242                "properties": {
  1243                  "matrix": {
  1244                    "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix",
  1245                    "description": "A build matrix is a set of different configurations of the virtual environment. For example you might run a job against more than one supported version of a language, operating system, or tool. Each configuration is a copy of the job that runs and reports a status.\nYou can specify a matrix by supplying an array for the configuration options. For example, if the GitHub virtual environment supports Node.js versions 6, 8, and 10 you could specify an array of those versions in the matrix.\nWhen you define a matrix of operating systems, you must set the required runs-on keyword to the operating system of the current job, rather than hard-coding the operating system name. To access the operating system name, you can use the matrix.os context parameter to set runs-on. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.",
  1246                    "oneOf": [
  1247                      {
  1248                        "type": "object"
  1249                      },
  1250                      {
  1251                        "$ref": "#/definitions/expressionSyntax"
  1252                      }
  1253                    ],
  1254                    "patternProperties": {
  1255                      "^(in|ex)clude$": {
  1256                        "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#example-including-configurations-in-a-matrix-build",
  1257                        "type": "array",
  1258                        "items": {
  1259                          "type": "object",
  1260                          "additionalProperties": {
  1261                            "$ref": "#/definitions/configuration"
  1262                          }
  1263                        },
  1264                        "minItems": 1,
  1265                        "additionalItems": false
  1266                      }
  1267                    },
  1268                    "additionalProperties": {
  1269                      "type": "array",
  1270                      "items": {
  1271                        "$ref": "#/definitions/configuration"
  1272                      },
  1273                      "minItems": 1,
  1274                      "additionalItems": false
  1275                    },
  1276                    "minProperties": 1
  1277                  },
  1278                  "fail-fast": {
  1279                    "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast",
  1280                    "description": "When set to true, GitHub cancels all in-progress jobs if any matrix job fails. Default: true",
  1281                    "type": "boolean",
  1282                    "default": true
  1283                  },
  1284                  "max-parallel": {
  1285                    "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymax-parallel",
  1286                    "description": "The maximum number of jobs that can run simultaneously when using a matrix job strategy. By default, GitHub will maximize the number of jobs run in parallel depending on the available runners on GitHub-hosted virtual machines.",
  1287                    "type": "number"
  1288                  }
  1289                },
  1290                "required": [
  1291                  "matrix"
  1292                ],
  1293                "additionalProperties": false
  1294              },
  1295              "continue-on-error": {
  1296                "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error",
  1297                "description": "Prevents a workflow run from failing when a job fails. Set to true to allow a workflow run to pass when this job fails.",
  1298                "oneOf": [
  1299                  {
  1300                    "type": "boolean"
  1301                  },
  1302                  {
  1303                    "$ref": "#/definitions/expressionSyntax"
  1304                  }
  1305                ]
  1306              },
  1307              "container": {
  1308                "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainer",
  1309                "description": "A container to run any steps in a job that don't already specify a container. If you have steps that use both script and container actions, the container actions will run as sibling containers on the same network with the same volume mounts.\nIf you do not set a container, all steps will run directly on the host specified by runs-on unless a step refers to an action configured to run in a container.",
  1310                "oneOf": [
  1311                  {
  1312                    "type": "string"
  1313                  },
  1314                  {
  1315                    "$ref": "#/definitions/container"
  1316                  }
  1317                ]
  1318              },
  1319              "services": {
  1320                "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idservices",
  1321                "description": "Additional containers to host services for a job in a workflow. These are useful for creating databases or cache services like redis. The runner on the virtual machine will automatically create a network and manage the life cycle of the service containers.\nWhen you use a service container for a job or your step uses container actions, you don't need to set port information to access the service. Docker automatically exposes all ports between containers on the same network.\nWhen both the job and the action run in a container, you can directly reference the container by its hostname. The hostname is automatically mapped to the service name.\nWhen a step does not use a container action, you must access the service using localhost and bind the ports.",
  1322                "type": "object",
  1323                "additionalProperties": {
  1324                  "$ref": "#/definitions/container"
  1325                }
  1326              }
  1327            },
  1328            "required": [
  1329              "runs-on"
  1330            ],
  1331            "additionalProperties": false
  1332          }
  1333        },
  1334        "minProperties": 1,
  1335        "additionalProperties": false
  1336      }
  1337    },
  1338    "required": [
  1339      "on",
  1340      "jobs"
  1341    ],
  1342    "additionalProperties": false
  1343  }
  1344  -- out.cue --
  1345  import "strings"
  1346  
  1347  @jsonschema(schema="http://json-schema.org/draft-07/schema")
  1348  null | bool | number | string | [...] | {
  1349  	// The name of your workflow. GitHub displays the names of your
  1350  	// workflows on your repository's actions page. If you omit this
  1351  	// field, GitHub sets the name to the workflow's filename.
  1352  	name?: string
  1353  
  1354  	// The name of the GitHub event that triggers the workflow. You
  1355  	// can provide a single event string, array of events, array of
  1356  	// event types, or an event configuration map that schedules a
  1357  	// workflow or restricts the execution of a workflow to specific
  1358  	// files, tags, or branch changes. For a list of available
  1359  	// events, see
  1360  	// https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows.
  1361  	on: #event | [...#event] & [_, ...] | {
  1362  		// Runs your workflow anytime the check_run event occurs. More
  1363  		// than one activity type triggers this event. For information
  1364  		// about the REST API, see
  1365  		// https://developer.github.com/v3/checks/runs.
  1366  		check_run?: #eventObject & {
  1367  			types?: #types & [..."created" | "rerequested" | "completed" | "requested_action"] | *["created", "rerequested", "completed", "requested_action"]
  1368  			...
  1369  		}
  1370  
  1371  		// Runs your workflow anytime the check_suite event occurs. More
  1372  		// than one activity type triggers this event. For information
  1373  		// about the REST API, see
  1374  		// https://developer.github.com/v3/checks/suites/.
  1375  		check_suite?: #eventObject & {
  1376  			types?: #types & [..."completed" | "requested" | "rerequested"] | *["completed", "requested", "rerequested"]
  1377  			...
  1378  		}
  1379  
  1380  		// Runs your workflow anytime someone creates a branch or tag,
  1381  		// which triggers the create event. For information about the
  1382  		// REST API, see
  1383  		// https://developer.github.com/v3/git/refs/#create-a-reference.
  1384  		create?: #eventObject
  1385  
  1386  		// Runs your workflow anytime someone deletes a branch or tag,
  1387  		// which triggers the delete event. For information about the
  1388  		// REST API, see
  1389  		// https://developer.github.com/v3/git/refs/#delete-a-reference.
  1390  		delete?: #eventObject
  1391  
  1392  		// Runs your workflow anytime someone creates a deployment, which
  1393  		// triggers the deployment event. Deployments created with a
  1394  		// commit SHA may not have a Git ref. For information about the
  1395  		// REST API, see
  1396  		// https://developer.github.com/v3/repos/deployments/.
  1397  		deployment?: #eventObject
  1398  
  1399  		// Runs your workflow anytime a third party provides a deployment
  1400  		// status, which triggers the deployment_status event.
  1401  		// Deployments created with a commit SHA may not have a Git ref.
  1402  		// For information about the REST API, see
  1403  		// https://developer.github.com/v3/repos/deployments/#create-a-deployment-status.
  1404  		deployment_status?: #eventObject
  1405  
  1406  		// Runs your workflow anytime when someone forks a repository,
  1407  		// which triggers the fork event. For information about the REST
  1408  		// API, see
  1409  		// https://developer.github.com/v3/repos/forks/#create-a-fork.
  1410  		fork?: #eventObject
  1411  
  1412  		// Runs your workflow when someone creates or updates a Wiki page,
  1413  		// which triggers the gollum event.
  1414  		gollum?: #eventObject
  1415  
  1416  		// Runs your workflow anytime the issue_comment event occurs. More
  1417  		// than one activity type triggers this event. For information
  1418  		// about the REST API, see
  1419  		// https://developer.github.com/v3/issues/comments/.
  1420  		issue_comment?: #eventObject & {
  1421  			types?: #types & [..."created" | "edited" | "deleted"] | *["created", "edited", "deleted"]
  1422  			...
  1423  		}
  1424  
  1425  		// Runs your workflow anytime the issues event occurs. More than
  1426  		// one activity type triggers this event. For information about
  1427  		// the REST API, see https://developer.github.com/v3/issues.
  1428  		issues?: #eventObject & {
  1429  			types?: #types & [..."opened" | "edited" | "deleted" | "transferred" | "pinned" | "unpinned" | "closed" | "reopened" | "assigned" | "unassigned" | "labeled" | "unlabeled" | "locked" | "unlocked" | "milestoned" | "demilestoned"] | *["opened", "edited", "deleted", "transferred", "pinned", "unpinned", "closed", "reopened", "assigned", "unassigned", "labeled", "unlabeled", "locked", "unlocked", "milestoned", "demilestoned"]
  1430  			...
  1431  		}
  1432  
  1433  		// Runs your workflow anytime the label event occurs. More than
  1434  		// one activity type triggers this event. For information about
  1435  		// the REST API, see
  1436  		// https://developer.github.com/v3/issues/labels/.
  1437  		label?: #eventObject & {
  1438  			types?: #types & [..."created" | "edited" | "deleted"] | *["created", "edited", "deleted"]
  1439  			...
  1440  		}
  1441  
  1442  		// Runs your workflow anytime the member event occurs. More than
  1443  		// one activity type triggers this event. For information about
  1444  		// the REST API, see
  1445  		// https://developer.github.com/v3/repos/collaborators/.
  1446  		member?: #eventObject & {
  1447  			types?: #types & [..."added" | "edited" | "deleted"] | *["added", "edited", "deleted"]
  1448  			...
  1449  		}
  1450  
  1451  		// Runs your workflow anytime the milestone event occurs. More
  1452  		// than one activity type triggers this event. For information
  1453  		// about the REST API, see
  1454  		// https://developer.github.com/v3/issues/milestones/.
  1455  		milestone?: #eventObject & {
  1456  			types?: #types & [..."created" | "closed" | "opened" | "edited" | "deleted"] | *["created", "closed", "opened", "edited", "deleted"]
  1457  			...
  1458  		}
  1459  
  1460  		// Runs your workflow anytime someone pushes to a GitHub
  1461  		// Pages-enabled branch, which triggers the page_build event. For
  1462  		// information about the REST API, see
  1463  		// https://developer.github.com/v3/repos/pages/.
  1464  		page_build?: #eventObject
  1465  
  1466  		// Runs your workflow anytime the project event occurs. More than
  1467  		// one activity type triggers this event. For information about
  1468  		// the REST API, see https://developer.github.com/v3/projects/.
  1469  		project?: #eventObject & {
  1470  			types?: #types & [..."created" | "updated" | "closed" | "reopened" | "edited" | "deleted"] | *["created", "updated", "closed", "reopened", "edited", "deleted"]
  1471  			...
  1472  		}
  1473  
  1474  		// Runs your workflow anytime the project_card event occurs. More
  1475  		// than one activity type triggers this event. For information
  1476  		// about the REST API, see
  1477  		// https://developer.github.com/v3/projects/cards.
  1478  		project_card?: #eventObject & {
  1479  			types?: #types & [..."created" | "moved" | "converted" | "edited" | "deleted"] | *["created", "moved", "converted", "edited", "deleted"]
  1480  			...
  1481  		}
  1482  
  1483  		// Runs your workflow anytime the project_column event occurs.
  1484  		// More than one activity type triggers this event. For
  1485  		// information about the REST API, see
  1486  		// https://developer.github.com/v3/projects/columns.
  1487  		project_column?: #eventObject & {
  1488  			types?: #types & [..."created" | "updated" | "moved" | "deleted"] | *["created", "updated", "moved", "deleted"]
  1489  			...
  1490  		}
  1491  
  1492  		// Runs your workflow anytime someone makes a private repository
  1493  		// public, which triggers the public event. For information about
  1494  		// the REST API, see https://developer.github.com/v3/repos/#edit.
  1495  		public?: #eventObject
  1496  
  1497  		// Runs your workflow anytime the pull_request event occurs. More
  1498  		// than one activity type triggers this event. For information
  1499  		// about the REST API, see https://developer.github.com/v3/pulls.
  1500  		// Note: Workflows do not run on private base repositories when
  1501  		// you open a pull request from a forked repository.
  1502  		// When you create a pull request from a forked repository to the
  1503  		// base repository, GitHub sends the pull_request event to the
  1504  		// base repository and no pull request events occur on the forked
  1505  		// repository.
  1506  		// Workflows don't run on forked repositories by default. You must
  1507  		// enable GitHub Actions in the Actions tab of the forked
  1508  		// repository.
  1509  		// The permissions for the GITHUB_TOKEN in forked repositories is
  1510  		// read-only. For more information about the GITHUB_TOKEN, see
  1511  		// https://help.github.com/en/articles/virtual-environments-for-github-actions.
  1512  		pull_request?: #ref & {
  1513  			types?: #types & [..."assigned" | "unassigned" | "labeled" | "unlabeled" | "opened" | "edited" | "closed" | "reopened" | "synchronize" | "ready_for_review" | "locked" | "unlocked" | "review_requested" | "review_request_removed"] | *["opened", "synchronize", "reopened"]
  1514  
  1515  			{[=~"^(branche|tag|path)s(-ignore)?$" & !~"^(types)$"]: _}
  1516  		}
  1517  
  1518  		// Runs your workflow anytime the pull_request_review event
  1519  		// occurs. More than one activity type triggers this event. For
  1520  		// information about the REST API, see
  1521  		// https://developer.github.com/v3/pulls/reviews.
  1522  		// Note: Workflows do not run on private base repositories when
  1523  		// you open a pull request from a forked repository.
  1524  		// When you create a pull request from a forked repository to the
  1525  		// base repository, GitHub sends the pull_request event to the
  1526  		// base repository and no pull request events occur on the forked
  1527  		// repository.
  1528  		// Workflows don't run on forked repositories by default. You must
  1529  		// enable GitHub Actions in the Actions tab of the forked
  1530  		// repository.
  1531  		// The permissions for the GITHUB_TOKEN in forked repositories is
  1532  		// read-only. For more information about the GITHUB_TOKEN, see
  1533  		// https://help.github.com/en/articles/virtual-environments-for-github-actions.
  1534  		pull_request_review?: #eventObject & {
  1535  			types?: #types & [..."submitted" | "edited" | "dismissed"] | *["submitted", "edited", "dismissed"]
  1536  			...
  1537  		}
  1538  
  1539  		// Runs your workflow anytime a comment on a pull request's
  1540  		// unified diff is modified, which triggers the
  1541  		// pull_request_review_comment event. More than one activity type
  1542  		// triggers this event. For information about the REST API, see
  1543  		// https://developer.github.com/v3/pulls/comments.
  1544  		// Note: Workflows do not run on private base repositories when
  1545  		// you open a pull request from a forked repository.
  1546  		// When you create a pull request from a forked repository to the
  1547  		// base repository, GitHub sends the pull_request event to the
  1548  		// base repository and no pull request events occur on the forked
  1549  		// repository.
  1550  		// Workflows don't run on forked repositories by default. You must
  1551  		// enable GitHub Actions in the Actions tab of the forked
  1552  		// repository.
  1553  		// The permissions for the GITHUB_TOKEN in forked repositories is
  1554  		// read-only. For more information about the GITHUB_TOKEN, see
  1555  		// https://help.github.com/en/articles/virtual-environments-for-github-actions.
  1556  		pull_request_review_comment?: #eventObject & {
  1557  			types?: #types & [..."created" | "edited" | "deleted"] | *["created", "edited", "deleted"]
  1558  			...
  1559  		}
  1560  
  1561  		// This event is similar to pull_request, except that it runs in
  1562  		// the context of the base repository of the pull request, rather
  1563  		// than in the merge commit. This means that you can more safely
  1564  		// make your secrets available to the workflows triggered by the
  1565  		// pull request, because only workflows defined in the commit on
  1566  		// the base repository are run. For example, this event allows
  1567  		// you to create workflows that label and comment on pull
  1568  		// requests, based on the contents of the event payload.
  1569  		pull_request_target?: #ref & {
  1570  			types?: #types & [..."assigned" | "unassigned" | "labeled" | "unlabeled" | "opened" | "edited" | "closed" | "reopened" | "synchronize" | "ready_for_review" | "locked" | "unlocked" | "review_requested" | "review_request_removed"] | *["opened", "synchronize", "reopened"]
  1571  
  1572  			{[=~"^(branche|tag|path)s(-ignore)?$" & !~"^(types)$"]: _}
  1573  		}
  1574  
  1575  		// Runs your workflow when someone pushes to a repository branch,
  1576  		// which triggers the push event.
  1577  		// Note: The webhook payload available to GitHub Actions does not
  1578  		// include the added, removed, and modified attributes in the
  1579  		// commit object. You can retrieve the full commit object using
  1580  		// the REST API. For more information, see
  1581  		// https://developer.github.com/v3/repos/commits/#get-a-single-commit.
  1582  		push?: #ref & {
  1583  			{[=~"^(branche|tag|path)s(-ignore)?$" & !~"^()$"]: _}
  1584  		}
  1585  
  1586  		// Runs your workflow anytime a package is published or updated.
  1587  		// For more information, see
  1588  		// https://help.github.com/en/github/managing-packages-with-github-packages.
  1589  		registry_package?: #eventObject & {
  1590  			types?: #types & [..."published" | "updated"] | *["published", "updated"]
  1591  			...
  1592  		}
  1593  
  1594  		// Runs your workflow anytime the release event occurs. More than
  1595  		// one activity type triggers this event. For information about
  1596  		// the REST API, see
  1597  		// https://developer.github.com/v3/repos/releases/ in the GitHub
  1598  		// Developer documentation.
  1599  		release?: #eventObject & {
  1600  			types?: #types & [..."published" | "unpublished" | "created" | "edited" | "deleted" | "prereleased" | "released"] | *["published", "unpublished", "created", "edited", "deleted", "prereleased", "released"]
  1601  			...
  1602  		}
  1603  
  1604  		// Runs your workflow anytime the status of a Git commit changes,
  1605  		// which triggers the status event. For information about the
  1606  		// REST API, see https://developer.github.com/v3/repos/statuses/.
  1607  		status?: #eventObject
  1608  
  1609  		// Runs your workflow anytime the watch event occurs. More than
  1610  		// one activity type triggers this event. For information about
  1611  		// the REST API, see
  1612  		// https://developer.github.com/v3/activity/starring/.
  1613  		watch?: #eventObject
  1614  
  1615  		// You can now create workflows that are manually triggered with
  1616  		// the new workflow_dispatch event. You will then see a 'Run
  1617  		// workflow' button on the Actions tab, enabling you to easily
  1618  		// trigger a run.
  1619  		workflow_dispatch?: null | bool | number | string | [...] | {
  1620  			// Input parameters allow you to specify data that the action
  1621  			// expects to use during runtime. GitHub stores input parameters
  1622  			// as environment variables. Input ids with uppercase letters are
  1623  			// converted to lowercase during runtime. We recommended using
  1624  			// lowercase input ids.
  1625  			inputs?: {
  1626  				{[=~"^[_a-zA-Z][a-zA-Z0-9_-]*$" & !~"^()$"]: {
  1627  					// A string description of the input parameter.
  1628  					description: string
  1629  
  1630  					// A string shown to users using the deprecated input.
  1631  					deprecationMessage?: string
  1632  
  1633  					// A boolean to indicate whether the action requires the input
  1634  					// parameter. Set to true when the parameter is required.
  1635  					required: bool
  1636  
  1637  					// A string representing the default value. The default value is
  1638  					// used when an input parameter isn't specified in a workflow
  1639  					// file.
  1640  					default?: string
  1641  				}}
  1642  			}
  1643  			...
  1644  		}
  1645  
  1646  		// This event occurs when a workflow run is requested or
  1647  		// completed, and allows you to execute a workflow based on the
  1648  		// finished result of another workflow. For example, if your
  1649  		// pull_request workflow generates build artifacts, you can
  1650  		// create a new workflow that uses workflow_run to analyze the
  1651  		// results and add a comment to the original pull request.
  1652  		workflow_run?: #eventObject & {
  1653  			types?:     #types & [..."requested" | "completed"] | *["requested", "completed"]
  1654  			workflows?: [...string] & [_, ...]
  1655  
  1656  			{[=~"^branches(-ignore)?$" & !~"^(types|workflows)$"]: _}
  1657  			...
  1658  		}
  1659  
  1660  		// You can use the GitHub API to trigger a webhook event called
  1661  		// repository_dispatch when you want to trigger a workflow for
  1662  		// activity that happens outside of GitHub. For more information,
  1663  		// see
  1664  		// https://developer.github.com/v3/repos/#create-a-repository-dispatch-event.
  1665  		// To trigger the custom repository_dispatch webhook event, you
  1666  		// must send a POST request to a GitHub API endpoint and provide
  1667  		// an event_type name to describe the activity type. To trigger a
  1668  		// workflow run, you must also configure your workflow to use the
  1669  		// repository_dispatch event.
  1670  		repository_dispatch?: #eventObject
  1671  
  1672  		// You can schedule a workflow to run at specific UTC times using
  1673  		// POSIX cron syntax
  1674  		// (https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07).
  1675  		// Scheduled workflows run on the latest commit on the default or
  1676  		// base branch. The shortest interval you can run scheduled
  1677  		// workflows is once every 5 minutes.
  1678  		// Note: GitHub Actions does not support the non-standard syntax
  1679  		// @yearly, @monthly, @weekly, @daily, @hourly, and @reboot.
  1680  		// You can use crontab guru (https://crontab.guru/). to help
  1681  		// generate your cron syntax and confirm what time it will run.
  1682  		// To help you get started, there is also a list of crontab guru
  1683  		// examples (https://crontab.guru/examples.html).
  1684  		schedule?: [...null | bool | number | string | [...] | {
  1685  			cron?: =~"^(((\\d+,)+\\d+|((\\d+|\\*)\\/\\d+|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)|(\\d+-\\d+)|\\d+|\\*|MON|TUE|WED|THU|FRI|SAT|SUN) ?){5,7}$"
  1686  		}] & [_, ...]
  1687  	}
  1688  
  1689  	// A map of environment variables that are available to all jobs
  1690  	// and steps in the workflow.
  1691  	env?: #env
  1692  
  1693  	// A map of default settings that will apply to all jobs in the
  1694  	// workflow.
  1695  	defaults?: #defaults
  1696  
  1697  	// A workflow run is made up of one or more jobs. Jobs run in
  1698  	// parallel by default. To run jobs sequentially, you can define
  1699  	// dependencies on other jobs using the jobs.<job_id>.needs
  1700  	// keyword.
  1701  	// Each job runs in a fresh instance of the virtual environment
  1702  	// specified by runs-on.
  1703  	// You can run an unlimited number of jobs as long as you are
  1704  	// within the workflow usage limits. For more information, see
  1705  	// https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#usage-limits.
  1706  	jobs: {
  1707  		{[=~"^[_a-zA-Z][a-zA-Z0-9_-]*$" & !~"^()$"]: {
  1708  			// The name of the job displayed on GitHub.
  1709  			name?: string
  1710  
  1711  			// Identifies any jobs that must complete successfully before this
  1712  			// job will run. It can be a string or array of strings. If a job
  1713  			// fails, all jobs that need it are skipped unless the jobs use a
  1714  			// conditional statement that causes the job to continue.
  1715  			needs?: [...#name] & [_, ...] | #name
  1716  
  1717  			// The type of machine to run the job on. The machine can be
  1718  			// either a GitHub-hosted runner, or a self-hosted runner.
  1719  			"runs-on": "macos-10.15" | "macos-11.0" | "macos-latest" | "self-hosted" | "ubuntu-16.04" | "ubuntu-18.04" | "ubuntu-20.04" | "ubuntu-latest" | "windows-2016" | "windows-2019" | "windows-latest" | (["self-hosted"] | ["self-hosted", #machine] | ["self-hosted", #architecture] | ["self-hosted", #machine, #architecture] | ["self-hosted", #architecture, #machine]) & [...] | #expressionSyntax
  1720  
  1721  			// The environment that the job references.
  1722  			environment?: string | #environment
  1723  
  1724  			// A map of outputs for a job. Job outputs are available to all
  1725  			// downstream jobs that depend on this job.
  1726  			outputs?: {
  1727  				[string]: string
  1728  			}
  1729  
  1730  			// A map of environment variables that are available to all steps
  1731  			// in the job.
  1732  			env?: #env
  1733  
  1734  			// A map of default settings that will apply to all steps in the
  1735  			// job.
  1736  			defaults?: #defaults
  1737  
  1738  			// You can use the if conditional to prevent a job from running
  1739  			// unless a condition is met. You can use any supported context
  1740  			// and expression to create a conditional.
  1741  			// Expressions in an if conditional do not require the ${{ }}
  1742  			// syntax. For more information, see
  1743  			// https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.
  1744  			if?: string
  1745  
  1746  			// A job contains a sequence of tasks called steps. Steps can run
  1747  			// commands, run setup tasks, or run an action in your
  1748  			// repository, a public repository, or an action published in a
  1749  			// Docker registry. Not all steps run actions, but all actions
  1750  			// run as a step. Each step runs in its own process in the
  1751  			// virtual environment and has access to the workspace and
  1752  			// filesystem. Because steps run in their own process, changes to
  1753  			// environment variables are not preserved between steps. GitHub
  1754  			// provides built-in steps to set up and complete a job.
  1755  			steps?: [...{
  1756  				// A unique identifier for the step. You can use the id to
  1757  				// reference the step in contexts. For more information, see
  1758  				// https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.
  1759  				id?: string
  1760  
  1761  				// You can use the if conditional to prevent a step from running
  1762  				// unless a condition is met. You can use any supported context
  1763  				// and expression to create a conditional.
  1764  				// Expressions in an if conditional do not require the ${{ }}
  1765  				// syntax. For more information, see
  1766  				// https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.
  1767  				if?: string
  1768  
  1769  				// A name for your step to display on GitHub.
  1770  				name?: string
  1771  
  1772  				// Selects an action to run as part of a step in your job. An
  1773  				// action is a reusable unit of code. You can use an action
  1774  				// defined in the same repository as the workflow, a public
  1775  				// repository, or in a published Docker container image
  1776  				// (https://hub.docker.com/).
  1777  				// We strongly recommend that you include the version of the
  1778  				// action you are using by specifying a Git ref, SHA, or Docker
  1779  				// tag number. If you don't specify a version, it could break
  1780  				// your workflows or cause unexpected behavior when the action
  1781  				// owner publishes an update.
  1782  				// - Using the commit SHA of a released action version is the
  1783  				// safest for stability and security.
  1784  				// - Using the specific major action version allows you to receive
  1785  				// critical fixes and security patches while still maintaining
  1786  				// compatibility. It also assures that your workflow should still
  1787  				// work.
  1788  				// - Using the master branch of an action may be convenient, but
  1789  				// if someone releases a new major version with a breaking
  1790  				// change, your workflow could break.
  1791  				// Some actions require inputs that you must set using the with
  1792  				// keyword. Review the action's README file to determine the
  1793  				// inputs required.
  1794  				// Actions are either JavaScript files or Docker containers. If
  1795  				// the action you're using is a Docker container you must run the
  1796  				// job in a Linux virtual environment. For more details, see
  1797  				// https://help.github.com/en/articles/virtual-environments-for-github-actions.
  1798  				uses?: string
  1799  
  1800  				// Runs command-line programs using the operating system's shell.
  1801  				// If you do not provide a name, the step name will default to
  1802  				// the text specified in the run command.
  1803  				// Commands run using non-login shells by default. You can choose
  1804  				// a different shell and customize the shell used to run
  1805  				// commands. For more information, see
  1806  				// https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#using-a-specific-shell.
  1807  				// Each run keyword represents a new process and shell in the
  1808  				// virtual environment. When you provide multi-line commands,
  1809  				// each line runs in the same shell.
  1810  				run?: string, "working-directory"?: #["working-directory"], shell?: #shell
  1811  
  1812  				// A map of the input parameters defined by the action. Each input
  1813  				// parameter is a key/value pair. Input parameters are set as
  1814  				// environment variables. The variable is prefixed with INPUT_
  1815  				// and converted to upper case.
  1816  				with?: #env & {
  1817  					args?: string, entrypoint?: string, ...
  1818  				}
  1819  
  1820  				// Sets environment variables for steps to use in the virtual
  1821  				// environment. You can also set environment variables for the
  1822  				// entire workflow or a job.
  1823  				env?: #env
  1824  
  1825  				// Prevents a job from failing when a step fails. Set to true to
  1826  				// allow a job to pass when this step fails.
  1827  				"continue-on-error"?: bool | #expressionSyntax | *false
  1828  
  1829  				// The maximum number of minutes to run the step before killing
  1830  				// the process.
  1831  				"timeout-minutes"?: number
  1832  			}] & [_, ...]
  1833  
  1834  			// The maximum number of minutes to let a workflow run before
  1835  			// GitHub automatically cancels it. Default: 360
  1836  			"timeout-minutes"?: number | *360
  1837  
  1838  			// A strategy creates a build matrix for your jobs. You can define
  1839  			// different variations of an environment to run each job in.
  1840  			strategy?: {
  1841  				// A build matrix is a set of different configurations of the
  1842  				// virtual environment. For example you might run a job against
  1843  				// more than one supported version of a language, operating
  1844  				// system, or tool. Each configuration is a copy of the job that
  1845  				// runs and reports a status.
  1846  				// You can specify a matrix by supplying an array for the
  1847  				// configuration options. For example, if the GitHub virtual
  1848  				// environment supports Node.js versions 6, 8, and 10 you could
  1849  				// specify an array of those versions in the matrix.
  1850  				// When you define a matrix of operating systems, you must set the
  1851  				// required runs-on keyword to the operating system of the
  1852  				// current job, rather than hard-coding the operating system
  1853  				// name. To access the operating system name, you can use the
  1854  				// matrix.os context parameter to set runs-on. For more
  1855  				// information, see
  1856  				// https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.
  1857  				matrix: ({
  1858  					...
  1859  				} | #expressionSyntax) & {
  1860  					{[=~"^(in|ex)clude$" & !~"^()$"]: [...{
  1861  										[string]: #configuration
  1862  					}] & [_, ...]}
  1863  					{[!~"^(in|ex)clude$" & !~"^()$"]: [...#configuration] & [_, ...]}
  1864  				}
  1865  
  1866  				// When set to true, GitHub cancels all in-progress jobs if any
  1867  				// matrix job fails. Default: true
  1868  				"fail-fast"?: bool | *true
  1869  
  1870  				// The maximum number of jobs that can run simultaneously when
  1871  				// using a matrix job strategy. By default, GitHub will maximize
  1872  				// the number of jobs run in parallel depending on the available
  1873  				// runners on GitHub-hosted virtual machines.
  1874  				"max-parallel"?: number
  1875  			}
  1876  
  1877  			// Prevents a workflow run from failing when a job fails. Set to
  1878  			// true to allow a workflow run to pass when this job fails.
  1879  			"continue-on-error"?: bool | #expressionSyntax
  1880  
  1881  			// A container to run any steps in a job that don't already
  1882  			// specify a container. If you have steps that use both script
  1883  			// and container actions, the container actions will run as
  1884  			// sibling containers on the same network with the same volume
  1885  			// mounts.
  1886  			// If you do not set a container, all steps will run directly on
  1887  			// the host specified by runs-on unless a step refers to an
  1888  			// action configured to run in a container.
  1889  			container?: string | #container
  1890  
  1891  			// Additional containers to host services for a job in a workflow.
  1892  			// These are useful for creating databases or cache services like
  1893  			// redis. The runner on the virtual machine will automatically
  1894  			// create a network and manage the life cycle of the service
  1895  			// containers.
  1896  			// When you use a service container for a job or your step uses
  1897  			// container actions, you don't need to set port information to
  1898  			// access the service. Docker automatically exposes all ports
  1899  			// between containers on the same network.
  1900  			// When both the job and the action run in a container, you can
  1901  			// directly reference the container by its hostname. The hostname
  1902  			// is automatically mapped to the service name.
  1903  			// When a step does not use a container action, you must access
  1904  			// the service using localhost and bind the ports.
  1905  			services?: {
  1906  				[string]: #container
  1907  			}
  1908  		}}
  1909  	}
  1910  }
  1911  
  1912  #architecture: "ARM32" | "x64" | "x86"
  1913  
  1914  #branch: #globs
  1915  
  1916  #configuration: string | number | bool | {
  1917  	[string]: #configuration
  1918  } | [...#configuration]
  1919  
  1920  #container: {
  1921  	// The Docker image to use as the container to run the action. The
  1922  	// value can be the Docker Hub image name or a registry name.
  1923  	image: string
  1924  
  1925  	// If the image's container registry requires authentication to
  1926  	// pull the image, you can use credentials to set a map of the
  1927  	// username and password. The credentials are the same values
  1928  	// that you would provide to the `docker login` command.
  1929  	credentials?: {
  1930  		username?: string
  1931  		password?: string
  1932  		...
  1933  	}
  1934  
  1935  	// Sets an array of environment variables in the container.
  1936  	env?: #env
  1937  
  1938  	// Sets an array of ports to expose on the container.
  1939  	ports?: [...number | string] & [_, ...]
  1940  
  1941  	// Sets an array of volumes for the container to use. You can use
  1942  	// volumes to share data between services or other steps in a
  1943  	// job. You can specify named Docker volumes, anonymous Docker
  1944  	// volumes, or bind mounts on the host.
  1945  	// To specify a volume, you specify the source and destination
  1946  	// path: <source>:<destinationPath>
  1947  	// The <source> is a volume name or an absolute path on the host
  1948  	// machine, and <destinationPath> is an absolute path in the
  1949  	// container.
  1950  	volumes?: [...=~"^[^:]+:[^:]+$"] & [_, ...]
  1951  
  1952  	// Additional Docker container resource options. For a list of
  1953  	// options, see
  1954  	// https://docs.docker.com/engine/reference/commandline/create/#options.
  1955  	options?: string
  1956  }
  1957  
  1958  #defaults: run?: {
  1959  	shell?:               #shell
  1960  	"working-directory"?: #["working-directory"]
  1961  }
  1962  
  1963  #env: [string]: bool | number | string
  1964  
  1965  #environment: {
  1966  	// The name of the environment configured in the repo.
  1967  	name: string
  1968  
  1969  	// A deployment URL
  1970  	url?: string
  1971  }
  1972  
  1973  #event: "check_run" | "check_suite" | "create" | "delete" | "deployment" | "deployment_status" | "fork" | "gollum" | "issue_comment" | "issues" | "label" | "member" | "milestone" | "page_build" | "project" | "project_card" | "project_column" | "public" | "pull_request" | "pull_request_review" | "pull_request_review_comment" | "pull_request_target" | "push" | "registry_package" | "release" | "status" | "watch" | "workflow_dispatch" | "workflow_run" | "repository_dispatch"
  1974  
  1975  #eventObject: null | {
  1976  	...
  1977  }
  1978  
  1979  #expressionSyntax: =~"^\\$\\{\\{.*\\}\\}$"
  1980  
  1981  #globs: [...strings.MinRunes(1)] & [_, ...]
  1982  
  1983  #machine: "linux" | "macos" | "windows"
  1984  
  1985  #name: =~"^[_a-zA-Z][a-zA-Z0-9_-]*$"
  1986  
  1987  #path: #globs
  1988  
  1989  #ref: null | {
  1990  	branches?:          #branch
  1991  	"branches-ignore"?: #branch
  1992  	tags?:              #branch
  1993  	"tags-ignore"?:     #branch
  1994  	paths?:             #path
  1995  	"paths-ignore"?:    #path
  1996  	...
  1997  }
  1998  
  1999  #shell: (string | ("bash" | "pwsh" | "python" | "sh" | "cmd" | "powershell")) & string
  2000  
  2001  #types: [_, ...]
  2002  
  2003  #: "working-directory": string