Webhooks Configuration
Appcircle will notify external services via webhooks when a certain event occurs. When the events you specified happen, we'll send a POST request in JSON format to the URLs you provide.
Creating Webhook
Multiple webhooks can be created for different events and build profiles. To start, go to My Organization Notifications screen and press the Manage button next to Webhook under the Notification Providers section.
- Click Add Webhook button to create your webhook
- Fill in the details of your webhook
Webhook Scope:
Type of events that you want to be notified. The following scopes are supported
- Build
- Signing Identity
- Distribution
- Store Submit
- Enterprise App Store
Each scope has different events. You can select the events you want to get notified about. For example for the Build scope, you may get the following events
- Build Started
- Build Successful
- Build Failed
- Build Canceled
- Build Timeout
- Fetch Started
Profile:
Some scopes support getting events for the selected build profile. You can choose the build profile from the list to get notified for that specific build profile.
Payload URL:
Appcircle will post events to this URL. It is highly recommended to choose the HTTPS URL.
Secret:
To verify that a Webhook post is coming from Appcircle, you may use this secret to verify the message body. HMAC-SHA256 of payload with your secret key should be the same as the hexadecimal signature you get in the ac_signature
header
For example, if you used test as your secret and Appcircle sends you a webhook with following body,
{"deliveryId":"ee81f55b-fd14-4f95-9e1f-f5bce3ad29e4","timestamp":"2022-10-26T14:55:08.4622757+00:00","action":"Build|BuildStart","message":"Build started for the develop branch for the profile pr_mr_tag_test https://my.appcircle.io/build/detail/7f17fdb4-46e7-40c3-a01d-1ef18de06890","title":"Build Started","item":{"id":"9e3c7dcd-d292-4144-9844-ca07df6a8924","agentId":"4026b6f2-d298-4b54-aa31-64726ad076fc","organizationId":"6fbd094c-18cb-4bcd-bc6f-cf2aee752982","userId":"6320a79e-d1f0-45d0-a38e-920dc4c30644","profileId":"7f17fdb4-46e7-40c3-a01d-1ef18de06890","branchId":"3779c7d2-c826-4596-95f2-52486bf75471","buildId":"00000000-0000-0000-0000-000000000000","commitId":"ba50d2d6-bfcc-49a1-8fa6-6e00711b4d5b","taskId":"9e3c7dcd-d292-4144-9844-ca07df6a8924","purpose":1,"triggerReason":0,"cancelling":false,"queueItemStatus":1,"xcodeVersion":""},"links":{"detail":"https://my.appcircle.io/build/detail/7f17fdb4-46e7-40c3-a01d-1ef18de06890","viewlogs":"https://my.appcircle.io/build/detail/7f17fdb4-46e7-40c3-a01d-1ef18de06890?modal=/build/modal/Logs&profileId=7f17fdb4-46e7-40c3-a01d-1ef18de06890&commitId=ba50d2d6-bfcc-49a1-8fa6-6e00711b4d5b&buildId=9e3c7dcd-d292-4144-9844-ca07df6a8924&scope=build&method=get"}}
Calculating HMAC-256 of this payload with test should give you
8470172a1c60447abd7dce97227448da2b369b17d54d128306625979eca6476b
This value must be the same as the value of ac_signature
header of the request.
You may also check the timestamp
of the payload to prevent replay attacks. You may give 5-10 minutes of a threshold for the timestamp for late webhook deliveries.
Request History
You can check all the webhooks Appcircle sends to your endpoint by clicking the... button and then clicking the Request History section.
You can see all the requests and their results by clicking on them.
After completing the specified action in Appcircle, you have the option to share release notes via Webhooks. To enable this feature, ensure you include the Publish Release Notes step in your workflow.
Additionally, note that you can access download links for the release notes for a duration of 90 days.
After completing the specified action in Appcircle, you have the option to share the test results via Webhooks. To enable this feature, ensure you include the Test Reports step in your workflow.
Editing Webhook
You can edit your webhook by clicking the... button and then clicking the Edit section.
Deleting Webhook
You can edit your webhook by clicking the... button and then clicking the Delete section.