@atollhq/skill-codex 0.4.28 → 0.4.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -38,11 +38,14 @@ Read only the references required for the current task:
|
|
|
38
38
|
- Request and response fields, enums, and validation:
|
|
39
39
|
[api-fields.md](references/api-fields.md)
|
|
40
40
|
|
|
41
|
-
For automation rule V1 actions (including create issue), explicit project or
|
|
42
|
-
organization scope, CI create-
|
|
41
|
+
For automation rule V1 actions (including create issue and send webhook), explicit project or
|
|
42
|
+
organization scope, CI create-or-webhook rules, event conditions, validation, safe
|
|
43
43
|
disabling, repair, and example-only CI dry runs, read [Automation Rule Fields](references/api-fields.md#automation-rule-fields).
|
|
44
44
|
Use `atoll automation` for rule management, previews, and run history; see
|
|
45
45
|
[CLI operations](references/cli-operations.md#automation-rules).
|
|
46
|
+
REST rule lists accept `?project_id=<UUID>` for exact project rules or
|
|
47
|
+
`?project_id=none` for organization-wide rules only. Omission lists all rules
|
|
48
|
+
in the organization. See [list filter access and validation](references/api-endpoints.md#automation-rules).
|
|
46
49
|
Rule creates require an explicit `project_id`: use a project UUID for project
|
|
47
50
|
scope or `null` for organization scope. Partial updates preserve the saved
|
|
48
51
|
scope when `project_id` is omitted; include it only when intentionally changing
|
|
@@ -719,6 +719,18 @@ receive projectless work. An inaccessible explicit `projectId` is concealed as
|
|
|
719
719
|
|
|
720
720
|
## Automation Rules
|
|
721
721
|
|
|
722
|
+
**List filter:** `GET /api/orgs/{id}/automation-rules` accepts optional
|
|
723
|
+
`project_id`. A project UUID returns only rules assigned to that exact project;
|
|
724
|
+
it does not include organization-wide rules. Use `project_id=none` for only
|
|
725
|
+
organization-wide rules (`project_id IS NULL`). Omit the parameter to preserve
|
|
726
|
+
the existing list of all rules in the organization. Empty or invalid values
|
|
727
|
+
return `400`. A project UUID requires both organization membership and caller
|
|
728
|
+
read access to that project; cross-organization, inaccessible, or missing
|
|
729
|
+
projects return `404`. Organization-wide and unfiltered requests retain existing
|
|
730
|
+
organization-member access. Results remain newest first and include disabled
|
|
731
|
+
or invalid rules with their validation diagnostics. This REST filter does not
|
|
732
|
+
add CLI flags or public MCP tool parameters.
|
|
733
|
+
|
|
722
734
|
| Method | Endpoint | Description |
|
|
723
735
|
|--------|----------|-------------|
|
|
724
736
|
| GET | `/api/orgs/{id}/automation-rules` | List rules |
|
|
@@ -772,6 +784,7 @@ failed without executing its actions.
|
|
|
772
784
|
|--------|----------|-------------|
|
|
773
785
|
| GET | `/api/webhooks?orgId=...` | List redacted webhooks (owner/admin) |
|
|
774
786
|
| POST | `/api/webhooks?orgId=...` | Create webhook (owner/admin) |
|
|
787
|
+
| PATCH | `/api/webhooks/{id}` | Update webhook metadata or private auth (owner/admin) |
|
|
775
788
|
| DELETE | `/api/webhooks/{id}` | Delete webhook (owner/admin) |
|
|
776
789
|
| GET | `/api/webhooks/{id}/deliveries` | List safe delivery metadata (owner/admin, last 50) |
|
|
777
790
|
| POST | `/api/webhooks/{id}/redeliver/{deliveryId}` | Redeliver a past payload (owner/admin) |
|
|
@@ -499,6 +499,11 @@ clear it), `add_assignee` (add a member UUID without removing others), `unassign
|
|
|
499
499
|
(omit `value`), `set_priority` (integer `0` through `3`), `add_label` and
|
|
500
500
|
`remove_label` (label UUID), `post_comment` (non-empty text, at most 10,000
|
|
501
501
|
characters), and legacy `close_issue` (omit `value`, targets the valid `done` key).
|
|
502
|
+
`send_webhook` accepts only `{ "type": "send_webhook", "webhook_id": "webhook-uuid" }`.
|
|
503
|
+
The destination must be enabled, same-org, and purpose `automation` or `both`.
|
|
504
|
+
Queued transport retries do not re-run the automation action. Activity exposes
|
|
505
|
+
`webhook_delivery_id` plus safe latest-attempt `webhook_delivery` state.
|
|
506
|
+
Manual redelivery uses a new header and payload delivery ID.
|
|
502
507
|
Already satisfied assignments, priorities, statuses, and label relationships
|
|
503
508
|
succeed without duplicate mutation events. Invalid references still fail.
|
|
504
509
|
Unsupported action types or malformed values return `400` and are not saved.
|
|
@@ -517,7 +522,7 @@ oversized rendered content fail before creation. Current issue triggers do not
|
|
|
517
522
|
provide those external fields; use fixed text for issue triggers. The
|
|
518
523
|
`ci.run.completed` trigger supplies them from a signed GitHub completion event.
|
|
519
524
|
CI rules require organization scope (`project_id: null`) and support only
|
|
520
|
-
`create_issue`. CI rules accept only event conditions. Issue triggers reject event conditions.
|
|
525
|
+
`create_issue` and `send_webhook`. CI rules accept only event conditions. Issue triggers reject event conditions.
|
|
521
526
|
Event conditions use `kind: "event"`, `eq` or `neq`, and fields
|
|
522
527
|
`conclusion`, `repository`, `workflow`, `branch` (strings), `has_pr`, or
|
|
523
528
|
`has_linked_issue` (booleans). Use conclusion `failure` and
|
|
@@ -564,6 +569,18 @@ to the organization. A request containing only `{ "enabled": false }` can
|
|
|
564
569
|
disable an invalid rule without changing its definition; owner/admin access
|
|
565
570
|
is still required. Enabling requires a valid definition.
|
|
566
571
|
|
|
572
|
+
**List filter:** `GET /api/orgs/{id}/automation-rules` accepts optional
|
|
573
|
+
`project_id`. A project UUID returns only rules assigned to that exact project;
|
|
574
|
+
it does not include organization-wide rules. Use `project_id=none` for only
|
|
575
|
+
organization-wide rules (`project_id IS NULL`). Omit the parameter to preserve
|
|
576
|
+
the existing list of all rules in the organization. Empty or invalid values
|
|
577
|
+
return `400`. A project UUID requires both organization membership and caller
|
|
578
|
+
read access to that project; cross-organization, inaccessible, or missing
|
|
579
|
+
projects return `404`. Organization-wide and unfiltered requests retain existing
|
|
580
|
+
organization-member access. Results remain newest first and include disabled
|
|
581
|
+
or invalid rules with their validation diagnostics. This REST filter does not
|
|
582
|
+
add CLI flags or public MCP tool parameters.
|
|
583
|
+
|
|
567
584
|
GET/list rules can include `validation: { valid, issues: [{ path, code, message }] }`.
|
|
568
585
|
Invalid saved rows remain readable. Runtime validation rejects the whole invalid
|
|
569
586
|
rule before any action; valid actions are not salvaged from a malformed rule.
|
|
@@ -693,15 +710,23 @@ reject `position`.
|
|
|
693
710
|
|
|
694
711
|
## Webhook Fields
|
|
695
712
|
|
|
713
|
+
Bearer secrets must contain only printable ASCII characters. Switching from none to Bearer requires a token and returns HTTP 400 if it is missing.
|
|
714
|
+
|
|
715
|
+
`PATCH /api/webhooks/{id}` preserves omitted fields. A blank or omitted Bearer
|
|
716
|
+
secret preserves the token; `auth.type: none` clears it. URL/auth changes create
|
|
717
|
+
a new private destination version; pending deliveries retain their pinned version.
|
|
718
|
+
|
|
696
719
|
```json
|
|
697
720
|
{
|
|
698
721
|
"url": "https://example.com/webhook",
|
|
699
722
|
"events": ["issue.created", "issue.updated"],
|
|
700
|
-
"enabled": true
|
|
723
|
+
"enabled": true,
|
|
724
|
+
"purpose": "subscription",
|
|
725
|
+
"auth": { "type": "none" }
|
|
701
726
|
}
|
|
702
727
|
```
|
|
703
728
|
|
|
704
|
-
URL must be an HTTPS DNS hostname. IP literals, `localhost`, and `.local` hosts are rejected at creation; delivery refuses non-public DNS results and does not follow redirects. The create response includes a `secret` for HMAC signature verification. Store it immediately; it is shown only once.
|
|
729
|
+
URL must be an HTTPS DNS hostname. IP literals, `localhost`, and `.local` hosts are rejected at creation; delivery refuses non-public DNS results and does not follow redirects. The create response includes a `secret` for HMAC signature verification. Store it immediately; it is shown only once. Use purpose `automation` or `both` with `auth: { "type": "bearer", "secret": "..." }` for automation destinations; responses expose only `auth.type` and `auth.configured`.
|
|
705
730
|
|
|
706
731
|
List responses include `destination_display` and a deprecated `url` compatibility field containing only the origin plus `/…`. Payload schema version `2` is allowlisted. Delivery requests include `X-Atoll-Signature`, `X-Atoll-Signature-Version`, versioned `X-Atoll-Signatures`, and `X-Atoll-Delivery-Id`. Delivery history includes `delivery_id`, `status`, `status_code`, `error_code`, `delivered_at`, and `next_retry_at`, never payloads, receiver response bodies, or raw errors.
|
|
707
732
|
|
|
@@ -208,7 +208,7 @@ List uses the selected organization and applies a project filter only with
|
|
|
208
208
|
explicit `--project`; it does not inherit the default project.
|
|
209
209
|
|
|
210
210
|
Rule files use the canonical Automation Rule Fields contract. CI rules require
|
|
211
|
-
`project_id: null`, only `create_issue` actions, and event conditions. Use
|
|
211
|
+
`project_id: null`, only `create_issue` or `send_webhook` actions, and event conditions. Use
|
|
212
212
|
conclusion `failure` and `has_linked_issue: false` for unlinked CI failures.
|
|
213
213
|
The action chooses its target project/status and accepts approved
|
|
214
214
|
`{{repository}}`, `{{workflow}}`, `{{conclusion}}`, `{{run_url}}` substitutions.
|