> ## 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 reachable changes for a repository.

List current reachable changes, optionally restricted to a bookmark.

**Required scope: `write`**

```python theme={null}
changes = await mesa.changes.list(repo="app", bookmark="main")

for change in changes.changes:
    print(change.id, change.current_commit_oid, change.message)
```

## Options

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

<ParamField path="org" type="str | None">
  Organization override.
</ParamField>

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

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

<ParamField path="bookmark" type="str | None">
  Restrict results to changes reachable from this bookmark.
</ParamField>

## Response

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

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

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

### Change

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

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

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

<ResponseField name="message" type="str">
  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="list[str]">
  Parent change IDs for this change.
</ResponseField>

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

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

### CommitIdentity

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

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

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