Artifacts は、リポジトリのライフサイクル変更(作成、削除、フォーク、インポート、プッシュ、クローン、フェッチ、トークン変更)について、構造化イベントを発行します。イベントサブスクリプション でこれらのイベントを購読すると、Worker から消費して、コミット駆動の自動化を構築できます。
例:
- リポジトリが作成またはインポートされたときに、カスタムワークフローを実行する
- エージェントがリポジトリにプッシュしたときに、ビルドを開始して変更をデプロイする
- プッシュのたびにレビューエージェントを起動する
アカウントレベルのイベント — artifacts ソースを購読すると、アカウント内の任意のリポジトリのイベントを受け取れます。
リポジトリが作成されたときにトリガーされます。
例:
{
"type": "cf.artifacts.repo.created",
"source": {
"type": "artifacts",
"namespace": "my-namespace",
"repoName": "my-repo"
},
"payload": {
"repoId": "0tvugavnogssnwzk",
"defaultBranch": "main",
"description": "My Artifacts repository",
"readOnly": false,
"createdAt": "2026-05-18T15:53:46.833Z",
"updatedAt": "2026-05-18T15:53:46.833Z",
"lastPushAt": null
},
"metadata": {
"accountId": "f9f79265f388666de8122cfb508d7776",
"eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
"eventSchemaVersion": 1,
"eventTimestamp": "2026-05-18T15:53:48.187Z"
}
}リポジトリが削除されたときにトリガーされます。
例:
{
"type": "cf.artifacts.repo.deleted",
"source": {
"type": "artifacts",
"namespace": "my-namespace",
"repoName": "my-repo"
},
"payload": {
"repoId": "0tvugavnogssnwzk",
"defaultBranch": "main",
"description": "My Artifacts repository",
"readOnly": false,
"createdAt": "2026-05-18T15:53:46.833Z",
"updatedAt": "2026-05-18T15:53:46.833Z",
"lastPushAt": null
},
"metadata": {
"accountId": "f9f79265f388666de8122cfb508d7776",
"eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
"eventSchemaVersion": 1,
"eventTimestamp": "2026-05-18T15:53:59.914Z"
}
}リポジトリがフォークされたときにトリガーされます。
例:
{
"type": "cf.artifacts.repo.forked",
"source": {
"type": "artifacts",
"namespace": "source-namespace",
"repoName": "source-repo"
},
"payload": {
"namespace": "target-namespace",
"repoName": "target-repo",
"repoId": "5ankv1vhl4xnw7wq",
"defaultBranch": "main",
"description": "Fork of source-repo",
"readOnly": false,
"createdAt": "2026-05-18T15:53:52.384Z",
"updatedAt": "2026-05-18T15:53:54.579Z",
"lastPushAt": null
},
"metadata": {
"accountId": "f9f79265f388666de8122cfb508d7776",
"eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
"eventSchemaVersion": 1,
"eventTimestamp": "2026-05-18T15:53:54.641Z"
}
}外部の Git リモートからリポジトリがインポートされたときにトリガーされます。
例:
{
"type": "cf.artifacts.repo.imported",
"source": {
"type": "artifacts",
"namespace": "my-namespace",
"repoName": "my-repo"
},
"payload": {
"repoId": "d7nd72k964cv9kub",
"defaultBranch": "main",
"description": null,
"readOnly": false,
"createdAt": "2026-05-18T15:53:54.864Z",
"updatedAt": "2026-05-18T15:53:57.737Z",
"lastPushAt": null,
"sourceUrl": "https://github.com/example/repo.git",
"branch": "main"
},
"metadata": {
"accountId": "f9f79265f388666de8122cfb508d7776",
"eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
"eventSchemaVersion": 1,
"eventTimestamp": "2026-05-18T15:53:58.195Z"
}
}リポジトリレベルのイベント — namespace と repo_name を指定して artifacts.repo ソースを購読すると、1 つのリポジトリにスコープされたイベントを受け取れます。
リポジトリにコミットがプッシュされたときにトリガーされます。
例:
{
"type": "cf.artifacts.repo.pushed",
"source": {
"type": "artifacts.repo",
"namespace": "my-namespace",
"repoName": "my-repo"
},
"payload": {
"ref": "refs/heads/main",
"before": "abc123def456abc123def456abc123def456abc1",
"after": "def789ghi012def789ghi012def789ghi012def7",
"commits": [
{
"id": "def789ghi012def789ghi012def789ghi012def7",
"message": "Fix bug in authentication",
"messageTruncated": false,
"timestamp": "2025-05-01T02:48:57.000Z",
"author": {
"name": "Developer Name",
"email": "developer@example.com"
},
"committer": {
"name": "Developer Name",
"email": "developer@example.com"
},
"parents": [
"abc123def456abc123def456abc123def456abc1"
]
}
],
"totalCommitsCount": 1,
"commitsTruncated": false
},
"metadata": {
"accountId": "f9f79265f388666de8122cfb508d7776",
"eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
"eventSchemaVersion": 1,
"eventTimestamp": "2025-05-01T02:48:57.132Z"
}
}リポジトリがクローンされたときにトリガーされます。
例:
{
"type": "cf.artifacts.repo.cloned",
"source": {
"type": "artifacts.repo",
"namespace": "my-namespace",
"repoName": "my-repo"
},
"payload": {},
"metadata": {
"accountId": "f9f79265f388666de8122cfb508d7776",
"eventSubscriptionId": "0ab4c7b45a39491ba5da2973f3d093a6",
"eventSchemaVersion": 1,
"eventTimestamp": "2026-05-18T15:53:51.358Z"
}
}リポジトリから更新がフェッチされたときにトリガーされます。
例:
{
"type": "cf.artifacts.repo.fetched",
"source": {
"type": "artifacts.repo",
"namespace": "my-namespace",
"repoName": "my-repo"
},
"payload": {},
"metadata": {
"accountId": "f9f79265f388666de8122cfb508d7776",
"eventSubscriptionId": "0ab4c7b45a39491ba5da2973f3d093a6",
"eventSchemaVersion": 1,
"eventTimestamp": "2026-05-18T15:53:51.358Z"
}
}リポジトリスコープのトークンが作成されたときにトリガーされます。トークン ID、スコープ、有効期限が含まれます。
例:
{
"type": "cf.artifacts.repo.token.created",
"source": {
"type": "artifacts.repo",
"namespace": "default",
"repoName": "token-evt-repo"
},
"payload": {
"tokenId": "7ngdf3ww3u84t33x",
"scope": "read",
"expiresAt": "2026-05-20T16:58:14.548Z"
},
"metadata": {
"accountId": "f9f79265f388666de8122cfb508d7776",
"eventSubscriptionId": "0ab4c7b45a39491ba5da2973f3d093a6",
"eventSchemaVersion": 1,
"eventTimestamp": "2026-05-20T16:58:14.548Z"
}
}リポジトリスコープのトークンが取り消されたときにトリガーされます。トークン ID が含まれます。
例:
{
"type": "cf.artifacts.repo.token.revoked",
"source": {
"type": "artifacts.repo",
"namespace": "default",
"repoName": "token-evt-repo"
},
"payload": {
"tokenId": "7ngdf3ww3u84t33x"
},
"metadata": {
"accountId": "f9f79265f388666de8122cfb508d7776",
"eventSubscriptionId": "0ab4c7b45a39491ba5da2973f3d093a6",
"eventSchemaVersion": 1,
"eventTimestamp": "2026-05-20T16:58:14.548Z"
}
}