Class RequestDeploymentApprovalSkill

java.lang.Object
com.xebialabs.xlrelease.a2a.server.RequestDeploymentApprovalSkill
All Implemented Interfaces:
A2aServerSkill

public class RequestDeploymentApprovalSkill extends Object
The flagship governance skill: an external agent asks Release to run an approval workflow and only sees TASK_STATE_COMPLETED once policy — and any humans the workflow pulls in — approve. While an approval gate is open, the task reports TASK_STATE_INPUT_REQUIRED: the caller knows, in its own protocol's terms, that a human is deciding.

Mechanically identical to OrchestrateReleaseSkill (both run a template as a release); advertised separately because the contract differs — this skill's template is expected to embody an approval decision, and agents choose skills by reading descriptions.

  • Constructor Details

    • RequestDeploymentApprovalSkill

      public RequestDeploymentApprovalSkill(com.xebialabs.xlrelease.api.v1.TemplateApi templateApi)
  • Method Details

    • id

      public String id()
      Description copied from interface: A2aServerSkill
      Skill id as advertised on the Agent Card and addressed via message metadata skillId.
    • name

      public String name()
      Description copied from interface: A2aServerSkill
      Human-readable name for the Agent Card.
    • description

      public String description()
      Description copied from interface: A2aServerSkill
      What the skill does and what input it expects — agents read this to decide what to send.
    • readOnly

      public final boolean readOnly()
      Description copied from interface: A2aServerSkill
      Whether the skill only reads Release state. When the A2A feature's read-only mode is on, skills returning false are hidden from the Agent Card and rejected if called anyway.
      Specified by:
      readOnly in interface A2aServerSkill
    • invoke

      public final A2aSkillOutcome invoke(String text, Map<String,String> metadata)
      Description copied from interface: A2aServerSkill
      Executes the skill.

      Runs on the HTTP request thread under the caller's authenticated identity, so host API calls are permission-checked as that caller. Return A2aSkillOutcome.text(String) for an immediately-complete result, or A2aSkillOutcome.release(String) for work delegated to a release, whose live state becomes the A2A task from then on. Throw IllegalArgumentException for bad input (becomes a failed A2A task with the message as explanation), A2aContractViolationException for a governance handoff-contract violation (becomes a rejected task); any other exception is reported as a failed task without internal detail.

      Specified by:
      invoke in interface A2aServerSkill
      Parameters:
      text - the concatenated text parts of the incoming message
      metadata - the incoming message's metadata values, stringified