> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mesa.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# changes.list()

> List changes reachable from a repository bookmark.

List changes in a repository using cursor pagination.

**Required scope: `write`**

```ts theme={null}
const changes = await mesa.changes.list({ repo: 'app', bookmark: 'main' });

for (const change of changes.changes) {
  console.log(change.id, change.message);
}
```

## Options

<ParamField path="repo" type="string" required>
  Repository name.
</ParamField>

<ParamField path="org" type="string | undefined">
  Organization override.
</ParamField>

<ParamField path="bookmark" type="string | undefined">
  Bookmark whose reachable changes should be listed. Defaults to the repository default bookmark.
</ParamField>

<ParamField path="cursor" type="string | undefined">
  Opaque pagination cursor from a previous response.
</ParamField>

<ParamField path="limit" type="number | undefined">
  Maximum number of changes to return. The server maximum is `100`.
</ParamField>

## Response

<ResponseField name="next_cursor" type="string | null">
  Cursor for the next page, or null when no more results remain.
</ResponseField>

<ResponseField name="has_more" type="boolean">
  Whether another page of results is available.
</ResponseField>

<ResponseField name="changes" type="Change[]">
  Change objects.
</ResponseField>

### Change

<ResponseField name="id" type="string">
  Change ID.
</ResponseField>

<ResponseField name="current_commit_oid" type="string">
  Current commit OID for the change.
</ResponseField>

<ResponseField name="is_conflicted" type="boolean">
  Whether the current commit still contains unresolved conflicts.
</ResponseField>

<ResponseField name="message" type="string">
  Current change description. Empty string means the change has no description.
</ResponseField>

<ResponseField name="author" type="CommitIdentity">
  Commit author identity.
</ResponseField>

<ResponseField name="committer" type="CommitIdentity">
  Committer identity.
</ResponseField>

<ResponseField name="parents" type="string[]">
  Parent change IDs for this change.
</ResponseField>

<ResponseField name="created_at" type="string">
  Creation time.
</ResponseField>

<ResponseField name="updated_at" type="string">
  Last update time.
</ResponseField>

### CommitIdentity

<ResponseField name="name" type="string">
  Author or committer display name.
</ResponseField>

<ResponseField name="email" type="string">
  Author or committer email address.
</ResponseField>

<ResponseField name="date" type="string | undefined">
  Timestamp for this identity when provided.
</ResponseField>
