Skip to content
This repository has been archived by the owner on Mar 18, 2024. It is now read-only.

Implement the history API #150

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
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
15 changes: 15 additions & 0 deletions dockerclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -738,3 +738,18 @@ func (client *DockerClient) BuildImage(image *BuildImage) (io.ReadCloser, error)
uri := fmt.Sprintf("/%s/build?%s", APIVersion, v.Encode())
return client.doStreamRequest("POST", uri, image.Context, headers)
}

func (client *DockerClient) History(id string) ([]ImageLayer, error) {
uri := fmt.Sprintf("/%s/images/%s/history", APIVersion, id)
data, err := client.doRequest("GET", uri, nil, nil)
if err != nil {
return []ImageLayer{}, err
}

layers := []ImageLayer{}
err = json.Unmarshal(data, &layers)
if err != nil {
return []ImageLayer{}, err
}
return layers, nil
}
5 changes: 5 additions & 0 deletions mockclient/mock.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,3 +170,8 @@ func (client *MockClient) BuildImage(image *dockerclient.BuildImage) (io.ReadClo
args := client.Mock.Called(image)
return args.Get(0).(io.ReadCloser), args.Error(1)
}

func (client *MockClient) History(id string) ([]dockerclient.ImageLayer, error) {
args := client.Mock.Called(id)
return args.Get(0).([]dockerclient.ImageLayer), args.Error(1)
}
9 changes: 9 additions & 0 deletions types.go
Original file line number Diff line number Diff line change
Expand Up @@ -442,3 +442,12 @@ type BuildImage struct {
CpuSetMems string
CgroupParent string
}

type ImageLayer struct {
Id string
Created int64
CreatedBy string
Comment string
Size int64
Tags []string
}