---
title: Event subscriptions
description: Subscribe to Artifacts events for repo lifecycle changes.
image: https://edgetunnel-b2h.pages.dev/dev-products-preview.png
---

> Documentation Index  
> Fetch the complete documentation index at: https://edgetunnel-b2h.pages.dev/artifacts/llms.txt  
> Use this file to discover all available pages before exploring further. 

[Skip to content](#%5Ftop) 

# Event subscriptions

Artifacts emits structured events for repository lifecycle changes — creates, deletes, forks, imports, pushes, clones, fetches, and token changes. By subscribing to these events through [event subscriptions](https://edgetunnel-b2h.pages.dev/queues/event-subscriptions/), you can consume them from a Worker to build commit-driven automation.

For example:

* Run custom workflows when a repository is created or imported
* Kick off a build and deploy a change when an agent pushes to a repo
* Trigger a review agent on every push

## Available Artifacts events

**Account-level events** — Subscribe to the `artifacts` source to receive events for any repository in your account.

#### `repo.created`

Triggered when a repository is created.

**Example:**

```json
{
  "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"
  }
}
```

#### `repo.deleted`

Triggered when a repository is deleted.

**Example:**

```json
{
  "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"
  }
}
```

#### `repo.forked`

Triggered when a repository is forked.

**Example:**

```json
{
  "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"
  }
}
```

#### `repo.imported`

Triggered when a repository is imported from an external Git remote.

**Example:**

```json
{
  "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"
  }
}
```

**Repository-level events** — Subscribe to the `artifacts.repo` source with a `namespace` and `repo_name` to receive events scoped to a single repository.

#### `pushed`

Triggered when commits are pushed to a repository.

**Example:**

```json
{
  "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"
  }
}
```

#### `cloned`

Triggered when a repository is cloned.

**Example:**

```json
{
  "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"
  }
}
```

#### `fetched`

Triggered when updates are fetched from a repository.

**Example:**

```json
{
  "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"
  }
}
```

#### `token.created`

Triggered when a repo-scoped token is created. Includes the token ID, scope, and expiration time.

**Example:**

```json
{
  "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"
  }
}
```

#### `token.revoked`

Triggered when a repo-scoped token is revoked. Includes the token ID.

**Example:**

```json
{
  "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"
  }
}
```

```json
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://edgetunnel-b2h.pages.dev/artifacts/guides/event-subscriptions/#page","headline":"Event subscriptions · Cloudflare Artifacts docs","description":"Subscribe to Artifacts events for repo lifecycle changes.","url":"https://edgetunnel-b2h.pages.dev/artifacts/guides/event-subscriptions/","inLanguage":"en","image":"https://edgetunnel-b2h.pages.dev/dev-products-preview.png","dateModified":"2026-05-21","publisher":{"@type":"Organization","name":"Cloudflare","url":"https://www.cloudflare.com/"},"isPartOf":{"@type":"WebSite","@id":"https://edgetunnel-b2h.pages.dev/#website","name":"Cloudflare Docs","url":"https://edgetunnel-b2h.pages.dev/"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"/directory/","name":"Directory"}},{"@type":"ListItem","position":2,"item":{"@id":"/artifacts/","name":"Artifacts"}},{"@type":"ListItem","position":3,"item":{"@id":"/artifacts/guides/","name":"Guides"}},{"@type":"ListItem","position":4,"item":{"@id":"/artifacts/guides/event-subscriptions/","name":"Event subscriptions"}}]}
```
