リファレンス
これは ONEScript スクリプトを書くための構文とヘルパーのリファレンスです。タスクベースのガイダンスについては、まずはじめにとガイドをご覧ください。すぐに応用できるレシピについては、クックブックを参照してください。
トリガー
スクリプトのトリガーは、いつ実行されるか、そして何が許可されるかを決めます。ONEScript は 7 種類のトリガータイプを提供します。
| トリガー | レベル | 実行されるタイミング | 設定場所 |
|---|---|---|---|
console | L1(読み取り専用) | スクリプトエディターから手動で | —(ドライランで実行) |
taskPreAction | L0 | 変更がコミットされる前。拒否できる | 自動化 → トリガーバインディング |
taskActionDone | L1 | 変更がコミットされた後 | 自動化 → トリガーバインディング |
event | L1 | 課題イベント(作成 / 更新)時 | 自動化 → トリガーバインディング |
timer | L1 | スケジュール時 | 自動化 → タイマールール |
scriptedField | L0 | 数値(float)フィールドを算出するため | リソース → スクリプトフィールド |
httpEndpoint | L1 | 認証付きのインバウンド HTTP リクエスト時(POST /hooks/<slug>) | REST エンドポイント |
トリガーポリシーマトリクス
L0 トリガーは同期的で高頻度のため、ネットワークもストレージも使えません。L1 トリガーは、読み取り/書き込みルールに従う範囲で、制御されたアダプターを使えます。
| トリガー | レベル | ネットワーク | 書き込み | ストレージ | 典型的な用途 |
|---|---|---|---|---|---|
console | L1 | あり | なし | get のみ | 一回限りの読み取りチェック、メタデータ参照、安全なクエリ |
taskPreAction | L0 | なし | 課題フィールド / 拒否のみ | なし | 送信前のバリデーターとガード |
taskActionDone | L1 | あり | あり | get/set/delete | アクション後の更新、コメント、同期 |
event | L1 | あり | あり | get/set/delete | 非同期リスナー、冪等な自動化 |
timer | L1 | あり | あり | get/set/delete | スケジュールされたクエリ/バッチ処理 |
scriptedField | L0 | なし | なし | なし | 数値(float)フィールドの計算(オンプレミス) |
httpEndpoint | L1 | あり | あり | get/set/delete | 認証付きのインバウンド REST エンドポイント |
現在のトリガーで許可されていないヘルパーは、公開前にエディターのインライン診断によってフラグが付けられます。
スクリプトコンテキストオブジェクト
スクリプト内では、次のオブジェクトを利用できます。
| オブジェクト | 内容 |
|---|---|
issue | コンテキストにある課題。フィールド、ステータス、担当者の読み取り・変更、コメントの追加ができる |
event | トリガーとなったイベント(例:event.eventID、event.changedField(...)) |
context | より低レベルのトリガーコンテキスト(context.taskUUID、context.action、変更フィールドの生スナップショット) |
api | ヘルパー:api.log、api.reject、api.queryIssues、api.storage、api.fetchExternal |
vars | リソース → 変数で定義した再利用可能な値とシークレット(vars.get("NAME")) |
openapi | カタログに基づく ONES OpenAPI ヘルパー(openapi.issue.*、openapi.workflow.transit など) |
セマンティックフィールド構文
読みやすい構文は、フィールド、ステータス、プロジェクト、課題タイプ、オプションを表示名で解決します。名前と値は大文字小文字を区別し、完全一致します。User Story と User story は別の値であり、ランタイムが小文字化したりあいまい一致したりすることは決してありません。