Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@ All notable changes to the Apify Go client are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.9.0] - 2026-09-04

### Added

- `Task.Description`, the human-readable summary shown on a task's public landing page
(required, along with `Title`, to publish it).

### Changed

- Bumped `APISpecVersion` to `v2-2026-09-02T154542Z` and `ClientVersion` to `0.9.0`.
- Updated `README.md`'s documented `APISpecVersion` example to match.

## [0.8.3] - 2026-08-28

### Changed
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ func main() {

- `apify.ClientVersion` — the semantic version of this library.
- `apify.APISpecVersion` — the Apify OpenAPI spec version this client was built against
(`v2-2026-08-27T071624Z`).
(`v2-2026-09-02T154542Z`).

### Releasing

Expand Down
1 change: 1 addition & 0 deletions docs/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ A task is a pre-configured Actor run with stored input. Access the task collecti
| `UserID` | `string` | ID of the user who owns the task. |
| `Name` | `string` | Technical name of the task. |
| `Title` | `string` | Human-readable title shown in the UI. |
| `Description` | `string` | Human-readable summary shown on the task's public landing page. Required, along with `Title`, to publish the task. |
| `CreatedAt` | `*time.Time` | When the task was created. |
| `ModifiedAt` | `*time.Time` | When the task was last modified. |
| `IsPublic` | `*bool` | Whether the task is published on its public landing page, derived from `PublicConfig.PublishedAt`; use `Publish`/`Unpublish` to change it. |
Expand Down
3 changes: 3 additions & 0 deletions models.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,9 @@ type Task struct {
Name string `json:"name"`
// Title is the human-readable title shown in the UI.
Title string `json:"title"`
// Description is the human-readable summary shown on the task's public landing page.
// Required, along with Title, to publish the task.
Description string `json:"description"`
// CreatedAt is when the task was created.
CreatedAt *time.Time `json:"createdAt"`
// ModifiedAt is when the task was last modified.
Expand Down
23 changes: 18 additions & 5 deletions tests/task_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@ import (

func taskDef(name string) map[string]any {
return map[string]any{
"actId": "apify/hello-world",
"name": name,
"options": map[string]any{"build": "latest", "memoryMbytes": 256, "timeoutSecs": 60},
"input": map[string]any{"message": "hello"},
"actId": "apify/hello-world",
"name": name,
"title": name,
"description": "Integration test task for the Go client.",
"options": map[string]any{"build": "latest", "memoryMbytes": 256, "timeoutSecs": 60},
"input": map[string]any{"message": "hello"},
}
}

Expand Down Expand Up @@ -44,6 +46,9 @@ func TestGetTask(t *testing.T) {
if err != nil || !ok || got.ID != task.ID {
t.Fatalf("get: ok=%v err=%v", ok, err)
}
if got.Description != "Integration test task for the Go client." {
t.Fatalf("get: unexpected description %q", got.Description)
}
}

func TestTaskCRUDFlow(t *testing.T) {
Expand All @@ -67,9 +72,17 @@ func TestTaskCRUDFlow(t *testing.T) {
if _, ok, err := tc.GetInput(ctx); err != nil || !ok {
t.Fatalf("get input: ok=%v err=%v", ok, err)
}
if _, err := tc.Update(ctx, map[string]any{"name": uniqueName("task-renamed")}); err != nil {
renamed := uniqueName("task-renamed")
updated, err := tc.Update(ctx, map[string]any{"name": renamed, "description": "Updated description."})
if err != nil {
t.Fatalf("update: %v", err)
}
if updated.Name != renamed {
t.Fatalf("update: unexpected name %q", updated.Name)
}
if updated.Description != "Updated description." {
t.Fatalf("update: unexpected description %q", updated.Description)
}
if _, err := tc.Runs().List(ctx, apify.ListOptions{}, apify.RunListOptions{}); err != nil {
t.Fatalf("runs list: %v", err)
}
Expand Down
4 changes: 2 additions & 2 deletions version.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ package apify
//
// It follows Semantic Versioning (https://semver.org/). Changes to the public
// interface (other than additive ones) are considered breaking changes.
const ClientVersion = "0.8.3"
const ClientVersion = "0.9.0"

// APISpecVersion is the version of the Apify OpenAPI specification that this
// client was generated and verified against.
//
// It corresponds to the `info.version` field of the Apify OpenAPI document.
const APISpecVersion = "v2-2026-08-27T071624Z"
const APISpecVersion = "v2-2026-09-02T154542Z"
Loading