To integrate efficiently, we would like to be able to register endpoints to be called with Harness events (like how we register webhooks with GitHub to receive GitHub events).
WebHook endpoints will be internal and should be called via delegate (or have the option to be called from the delegate).
Minimum events needed:
Pipeline start/end (include all details in payload)
Stage start/end (include all stage details in payload)
Pipeline/stage interrupt/resume events (pause, approval needed, timeout, abort, reject, approval resume, etc.)
Pipeline created/updated
Solution:
Solution is describe above: webhooks for pipeline events.
Additionally, we would be fine with consuming events delivered to any type of pub/sub bus as well (SNS Topic, Redis pub/sub, SQS queue, etc.).
Having more data on the events would be useful, so we can avoid having to query the API for the key data that make user-friendly notifications and automated actions feasible.
  • the name and tags of the pipeline, and the variable inputs of the pipeline execution
  • the name of the stage, and the variable inputs of the stage execution
  • for failed or rejected pipelines and stages, the name and id of the failed stage and step, and the error or rejection message
If these add on requests can't be accommodated, I would look to using the APIs to shim the feature.
  • for #1, calling the audit API at short periodic intervals in order to simulate the events.
  • for #2, calling the pipeline execution details API to get the needed values (once for each event. yikes)
Created by Usheer Fotedar
August 16, 2023