Skip to content

/AWS1/CL_PIP=>PUTWEBHOOK()

About PutWebhook

Defines a webhook and returns a unique webhook URL generated by CodePipeline. This URL can be supplied to third party source hosting providers to call every time there's a code change. When CodePipeline receives a POST request on this URL, the pipeline defined in the webhook is started as long as the POST request satisfied the authentication and filtering requirements supplied when defining the webhook. RegisterWebhookWithThirdParty and DeregisterWebhookWithThirdParty APIs can be used to automatically configure supported third parties to call the generated webhook URL.

When creating CodePipeline webhooks, do not use your own credentials or reuse the same secret token across multiple webhooks. For optimal security, generate a unique secret token for each webhook you create. The secret token is an arbitrary string that you provide, which GitHub uses to compute and sign the webhook payloads sent to CodePipeline, for protecting the integrity and authenticity of the webhook payloads. Using your own credentials or reusing the same token across multiple webhooks can lead to security vulnerabilities.

If a secret token was provided, it will be redacted in the response.

Method Signature

IMPORTING

Required arguments:

io_webhook TYPE REF TO /AWS1/CL_PIPWEBHOOKDEFINITION /AWS1/CL_PIPWEBHOOKDEFINITION

The detail provided in an input file to create the webhook, such as the webhook name, the pipeline name, and the action name. Give the webhook a unique name that helps you identify it. You might name the webhook after the pipeline and action it targets so that you can easily recognize what it's used for later.

Optional arguments:

it_tags TYPE /AWS1/CL_PIPTAG=>TT_TAGLIST TT_TAGLIST

The tags for the webhook.

RETURNING

oo_output TYPE REF TO /aws1/cl_pipputwebhookoutput /AWS1/CL_PIPPUTWEBHOOKOUTPUT

Domain /AWS1/RT_ACCOUNT_ID
Primitive Type NUMC

Examples

Syntax Example

This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.

DATA(lo_result) = lo_client->/aws1/if_pip~putwebhook(
  io_webhook = new /aws1/cl_pipwebhookdefinition(
    io_authntctnconfiguration = new /aws1/cl_pipwebhookauthconf(
      iv_allowediprange = |string|
      iv_secrettoken = |string|
    )
    it_filters = VALUE /aws1/cl_pipwebhookfilterrule=>tt_webhookfilters(
      (
        new /aws1/cl_pipwebhookfilterrule(
          iv_jsonpath = |string|
          iv_matchequals = |string|
        )
      )
    )
    iv_authentication = |string|
    iv_name = |string|
    iv_targetaction = |string|
    iv_targetpipeline = |string|
  )
  it_tags = VALUE /aws1/cl_piptag=>tt_taglist(
    (
      new /aws1/cl_piptag(
        iv_key = |string|
        iv_value = |string|
      )
    )
  )
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lo_listwebhookitem = lo_result->get_webhook( ).
  IF lo_listwebhookitem IS NOT INITIAL.
    lo_webhookdefinition = lo_listwebhookitem->get_definition( ).
    IF lo_webhookdefinition IS NOT INITIAL.
      lv_webhookname = lo_webhookdefinition->get_name( ).
      lv_pipelinename = lo_webhookdefinition->get_targetpipeline( ).
      lv_actionname = lo_webhookdefinition->get_targetaction( ).
      LOOP AT lo_webhookdefinition->get_filters( ) into lo_row.
        lo_row_1 = lo_row.
        IF lo_row_1 IS NOT INITIAL.
          lv_jsonpath = lo_row_1->get_jsonpath( ).
          lv_matchequals = lo_row_1->get_matchequals( ).
        ENDIF.
      ENDLOOP.
      lv_webhookauthenticationty = lo_webhookdefinition->get_authentication( ).
      lo_webhookauthconfiguratio = lo_webhookdefinition->get_authntctnconfiguration( ).
      IF lo_webhookauthconfiguratio IS NOT INITIAL.
        lv_webhookauthconfiguratio_1 = lo_webhookauthconfiguratio->get_allowediprange( ).
        lv_webhookauthconfiguratio_2 = lo_webhookauthconfiguratio->get_secrettoken( ).
      ENDIF.
    ENDIF.
    lv_webhookurl = lo_listwebhookitem->get_url( ).
    lv_webhookerrormessage = lo_listwebhookitem->get_errormessage( ).
    lv_webhookerrorcode = lo_listwebhookitem->get_errorcode( ).
    lv_webhooklasttriggered = lo_listwebhookitem->get_lasttriggered( ).
    lv_webhookarn = lo_listwebhookitem->get_arn( ).
    LOOP AT lo_listwebhookitem->get_tags( ) into lo_row_2.
      lo_row_3 = lo_row_2.
      IF lo_row_3 IS NOT INITIAL.
        lv_tagkey = lo_row_3->get_key( ).
        lv_tagvalue = lo_row_3->get_value( ).
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDIF.