gitlab 3.5.0 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -1
  3. data/README.md +17 -0
  4. data/Rakefile +1 -1
  5. data/exe/gitlab +1 -1
  6. data/lib/gitlab.rb +5 -3
  7. data/lib/gitlab/cli.rb +1 -1
  8. data/lib/gitlab/cli_helpers.rb +24 -26
  9. data/lib/gitlab/client.rb +1 -1
  10. data/lib/gitlab/client/branches.rb +2 -5
  11. data/lib/gitlab/client/commits.rb +5 -5
  12. data/lib/gitlab/client/groups.rb +8 -9
  13. data/lib/gitlab/client/issues.rb +7 -7
  14. data/lib/gitlab/client/labels.rb +3 -3
  15. data/lib/gitlab/client/merge_requests.rb +7 -7
  16. data/lib/gitlab/client/milestones.rb +5 -5
  17. data/lib/gitlab/client/namespaces.rb +1 -1
  18. data/lib/gitlab/client/notes.rb +7 -7
  19. data/lib/gitlab/client/projects.rb +22 -21
  20. data/lib/gitlab/client/repositories.rb +7 -7
  21. data/lib/gitlab/client/repository_files.rb +10 -10
  22. data/lib/gitlab/client/snippets.rb +6 -6
  23. data/lib/gitlab/client/system_hooks.rb +1 -1
  24. data/lib/gitlab/client/users.rb +5 -6
  25. data/lib/gitlab/configuration.rb +1 -1
  26. data/lib/gitlab/help.rb +19 -15
  27. data/lib/gitlab/objectified_hash.rb +2 -2
  28. data/lib/gitlab/page_links.rb +33 -0
  29. data/lib/gitlab/paginated_response.rb +97 -0
  30. data/lib/gitlab/request.rb +24 -26
  31. data/lib/gitlab/shell.rb +4 -5
  32. data/lib/gitlab/shell_history.rb +3 -5
  33. data/lib/gitlab/version.rb +1 -1
  34. data/spec/gitlab/cli_helpers_spec.rb +8 -9
  35. data/spec/gitlab/cli_spec.rb +0 -2
  36. data/spec/gitlab/client/branches_spec.rb +2 -2
  37. data/spec/gitlab/client/commits_spec.rb +16 -16
  38. data/spec/gitlab/client/groups_spec.rb +11 -14
  39. data/spec/gitlab/client/issues_spec.rb +9 -9
  40. data/spec/gitlab/client/labels_spec.rb +6 -6
  41. data/spec/gitlab/client/merge_requests_spec.rb +23 -23
  42. data/spec/gitlab/client/milestones_spec.rb +9 -9
  43. data/spec/gitlab/client/namespaces_spec.rb +2 -2
  44. data/spec/gitlab/client/notes_spec.rb +10 -10
  45. data/spec/gitlab/client/projects_spec.rb +29 -28
  46. data/spec/gitlab/client/repositories_spec.rb +7 -7
  47. data/spec/gitlab/client/snippets_spec.rb +7 -7
  48. data/spec/gitlab/client/system_hooks_spec.rb +2 -2
  49. data/spec/gitlab/client/users_spec.rb +20 -21
  50. data/spec/gitlab/help_spec.rb +1 -4
  51. data/spec/gitlab/objectified_hash_spec.rb +2 -2
  52. data/spec/gitlab/page_links_spec.rb +16 -0
  53. data/spec/gitlab/paginated_response_spec.rb +60 -0
  54. data/spec/gitlab/request_spec.rb +12 -13
  55. data/spec/gitlab/shell_history_spec.rb +1 -1
  56. data/spec/gitlab/shell_spec.rb +6 -6
  57. data/spec/spec_helper.rb +12 -12
  58. metadata +8 -2
@@ -60,7 +60,6 @@ describe Gitlab::CLI do
60
60
  end
61
61
  end
62
62
 
63
-
64
63
  context "when command with json output" do
65
64
  before do
66
65
  stub_get("/user", "user")
@@ -74,7 +73,6 @@ describe Gitlab::CLI do
74
73
  end
75
74
  end
76
75
 
77
-
78
76
  context "when command with required fields" do
79
77
  before do
80
78
  stub_get("/user", "user")
@@ -16,8 +16,8 @@ describe Gitlab::Client do
16
16
  expect(a_get("/projects/3/repository/branches")).to have_been_made
17
17
  end
18
18
 
19
- it "should return an array of repository branches" do
20
- expect(@branches).to be_an Array
19
+ it "should return a paginated response of repository branches" do
20
+ expect(@branches).to be_a Gitlab::PaginatedResponse
21
21
  expect(@branches.first.name).to eq("api")
22
22
  end
23
23
  end
@@ -12,17 +12,17 @@ describe Gitlab::Client do
12
12
  describe ".commits" do
13
13
  before do
14
14
  stub_get("/projects/3/repository/commits", "project_commits").
15
- with(:query => {:ref_name => "api"})
16
- @commits = Gitlab.commits(3, :ref_name => "api")
15
+ with(query: { ref_name: "api" })
16
+ @commits = Gitlab.commits(3, ref_name: "api")
17
17
  end
18
18
 
19
19
  it "should get the correct resource" do
20
20
  expect(a_get("/projects/3/repository/commits").
21
- with(:query => {:ref_name => "api"})).to have_been_made
21
+ with(query: { ref_name: "api" })).to have_been_made
22
22
  end
23
23
 
24
- it "should return an array of repository commits" do
25
- expect(@commits).to be_an Array
24
+ it "should return a paginated response of repository commits" do
25
+ expect(@commits).to be_a Gitlab::PaginatedResponse
26
26
  expect(@commits.first.id).to eq("f7dd067490fe57505f7226c3b54d3127d2f7fd46")
27
27
  end
28
28
  end
@@ -34,8 +34,8 @@ describe Gitlab::Client do
34
34
  end
35
35
 
36
36
  it "should get the correct resource" do
37
- expect(a_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6"))
38
- .to have_been_made
37
+ expect(a_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6")).
38
+ to have_been_made
39
39
  end
40
40
 
41
41
  it "should return a repository commit" do
@@ -50,8 +50,8 @@ describe Gitlab::Client do
50
50
  end
51
51
 
52
52
  it "should get the correct resource" do
53
- expect(a_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6/diff"))
54
- .to have_been_made
53
+ expect(a_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6/diff")).
54
+ to have_been_made
55
55
  end
56
56
 
57
57
  it "should return a diff of a commit" do
@@ -66,12 +66,12 @@ describe Gitlab::Client do
66
66
  end
67
67
 
68
68
  it "should get the correct resource" do
69
- expect(a_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6/comments"))
70
- .to have_been_made
69
+ expect(a_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6/comments")).
70
+ to have_been_made
71
71
  end
72
72
 
73
73
  it "should return commit's comments" do
74
- expect(@commit_comments).to be_an Array
74
+ expect(@commit_comments).to be_a Gitlab::PaginatedResponse
75
75
  expect(@commit_comments.length).to eq(2)
76
76
  expect(@commit_comments[0].note).to eq("this is the 1st comment on commit 6104942438c14ec7bd21c6cd5bd995272b3faff6")
77
77
  expect(@commit_comments[0].author.id).to eq(11)
@@ -101,11 +101,11 @@ describe Gitlab::Client do
101
101
 
102
102
  it "should get the correct resource" do
103
103
  expect(a_get("/projects/6/repository/commits/7d938cb8ac15788d71f4b67c035515a160ea76d8/statuses").
104
- with(query: {all: true}))
104
+ with(query: { all: true }))
105
105
  end
106
106
 
107
107
  it "should get statuses of a commit" do
108
- expect(@statuses).to be_kind_of Array
108
+ expect(@statuses).to be_kind_of Gitlab::PaginatedResponse
109
109
  expect(@statuses.first.sha).to eq('7d938cb8ac15788d71f4b67c035515a160ea76d8')
110
110
  expect(@statuses.first.ref).to eq('decreased-spec')
111
111
  expect(@statuses.first.status).to eq('failed')
@@ -117,13 +117,13 @@ describe Gitlab::Client do
117
117
  describe ".update_commit_status" do
118
118
  before do
119
119
  stub_post("/projects/6/statuses/7d938cb8ac15788d71f4b67c035515a160ea76d8", 'project_update_commit_status').
120
- with(query: {name: 'test', ref: 'decreased-spec', state: 'failed'})
120
+ with(query: { name: 'test', ref: 'decreased-spec', state: 'failed' })
121
121
  @status = Gitlab.update_commit_status(6, '7d938cb8ac15788d71f4b67c035515a160ea76d8', 'failed', name: 'test', ref: 'decreased-spec')
122
122
  end
123
123
 
124
124
  it "should get the correct resource" do
125
125
  expect(a_post('/projects/6/statuses/7d938cb8ac15788d71f4b67c035515a160ea76d8').
126
- with(query: {name: 'test', ref: 'decreased-spec', state: 'failed'}))
126
+ with(query: { name: 'test', ref: 'decreased-spec', state: 'failed' }))
127
127
  end
128
128
 
129
129
  it "should information about the newly created status" do
@@ -14,8 +14,8 @@ describe Gitlab::Client do
14
14
  expect(a_get("/groups/3")).to have_been_made
15
15
  end
16
16
 
17
- it "should return an array of Groups" do
18
- expect(@groups).to be_an Array
17
+ it "should return a paginated response of groups" do
18
+ expect(@groups).to be_a Gitlab::PaginatedResponse
19
19
  expect(@groups.first.path).to eq("threegroup")
20
20
  end
21
21
  end
@@ -29,7 +29,7 @@ describe Gitlab::Client do
29
29
 
30
30
  it "should get the correct resource" do
31
31
  expect(a_post("/groups").
32
- with(:body => {:path => 'gitlab-path', :name => 'GitLab-Group'})).to have_been_made
32
+ with(body: { path: 'gitlab-path', name: 'GitLab-Group' })).to have_been_made
33
33
  end
34
34
 
35
35
  it "should return information about a created group" do
@@ -41,13 +41,13 @@ describe Gitlab::Client do
41
41
  context "with description" do
42
42
  before do
43
43
  stub_post("/groups", "group_create_with_description")
44
- @group = Gitlab.create_group('GitLab-Group', 'gitlab-path', :description => 'gitlab group description')
44
+ @group = Gitlab.create_group('GitLab-Group', 'gitlab-path', description: 'gitlab group description')
45
45
  end
46
46
 
47
47
  it "should get the correct resource" do
48
48
  expect(a_post("/groups").
49
- with(:body => {:path => 'gitlab-path', :name => 'GitLab-Group',
50
- :description => 'gitlab group description'})).to have_been_made
49
+ with(body: { path: 'gitlab-path', name: 'GitLab-Group',
50
+ description: 'gitlab group description' })).to have_been_made
51
51
  end
52
52
 
53
53
  it "should return information about a created group" do
@@ -66,11 +66,11 @@ describe Gitlab::Client do
66
66
  @group = Gitlab.create_group('GitLab-Group', 'gitlab-path')
67
67
 
68
68
  stub_post("/groups/#{@group.id}/projects/#{@project.id}", "group_create")
69
- @group_transfer = Gitlab.transfer_project_to_group(@group.id,@project.id)
69
+ @group_transfer = Gitlab.transfer_project_to_group(@group.id, @project.id)
70
70
  end
71
71
 
72
72
  it "should post to the correct resource" do
73
- expect(a_post("/groups/#{@group.id}/projects/#{@project.id}").with(:body => {:id => @group.id.to_s, :project_id => @project.id.to_s})).to have_been_made
73
+ expect(a_post("/groups/#{@group.id}/projects/#{@project.id}").with(body: { id: @group.id.to_s, project_id: @project.id.to_s })).to have_been_made
74
74
  end
75
75
 
76
76
  it "should return information about the group" do
@@ -91,7 +91,7 @@ describe Gitlab::Client do
91
91
  end
92
92
 
93
93
  it "should return information about a group members" do
94
- expect(@members).to be_an Array
94
+ expect(@members).to be_a Gitlab::PaginatedResponse
95
95
  expect(@members.size).to eq(2)
96
96
  expect(@members[1].name).to eq("John Smith")
97
97
  end
@@ -105,10 +105,10 @@ describe Gitlab::Client do
105
105
 
106
106
  it "should get the correct resource" do
107
107
  expect(a_post("/groups/3/members").
108
- with(:body => {:user_id => '1', :access_level => '40'})).to have_been_made
108
+ with(body: { user_id: '1', access_level: '40' })).to have_been_made
109
109
  end
110
110
 
111
- it "should return information about an added member" do
111
+ it "should return information about the added member" do
112
112
  expect(@member.name).to eq("John Smith")
113
113
  end
114
114
  end
@@ -128,7 +128,6 @@ describe Gitlab::Client do
128
128
  end
129
129
  end
130
130
 
131
-
132
131
  describe ".group_search" do
133
132
  before do
134
133
  stub_get("/groups?search=Group", "group_search")
@@ -144,6 +143,4 @@ describe Gitlab::Client do
144
143
  expect(@groups.last.id).to eq(8)
145
144
  end
146
145
  end
147
-
148
-
149
146
  end
@@ -12,8 +12,8 @@ describe Gitlab::Client do
12
12
  expect(a_get("/projects/3/issues")).to have_been_made
13
13
  end
14
14
 
15
- it "should return an array of project's issues" do
16
- expect(@issues).to be_an Array
15
+ it "should return a paginated response of project's issues" do
16
+ expect(@issues).to be_a Gitlab::PaginatedResponse
17
17
  expect(@issues.first.project_id).to eq(3)
18
18
  end
19
19
  end
@@ -28,8 +28,8 @@ describe Gitlab::Client do
28
28
  expect(a_get("/issues")).to have_been_made
29
29
  end
30
30
 
31
- it "should return an array of user's issues" do
32
- expect(@issues).to be_an Array
31
+ it "should return a paginated response of user's issues" do
32
+ expect(@issues).to be_a Gitlab::PaginatedResponse
33
33
  expect(@issues.first.closed).to be_falsey
34
34
  expect(@issues.first.author.name).to eq("John Smith")
35
35
  end
@@ -60,7 +60,7 @@ describe Gitlab::Client do
60
60
 
61
61
  it "should get the correct resource" do
62
62
  expect(a_post("/projects/3/issues").
63
- with(:body => {:title => 'title'})).to have_been_made
63
+ with(body: { title: 'title' })).to have_been_made
64
64
  end
65
65
 
66
66
  it "should return information about a created issue" do
@@ -72,12 +72,12 @@ describe Gitlab::Client do
72
72
  describe ".edit_issue" do
73
73
  before do
74
74
  stub_put("/projects/3/issues/33", "issue")
75
- @issue = Gitlab.edit_issue(3, 33, :title => 'title')
75
+ @issue = Gitlab.edit_issue(3, 33, title: 'title')
76
76
  end
77
77
 
78
78
  it "should get the correct resource" do
79
79
  expect(a_put("/projects/3/issues/33").
80
- with(:body => {:title => 'title'})).to have_been_made
80
+ with(body: { title: 'title' })).to have_been_made
81
81
  end
82
82
 
83
83
  it "should return information about an edited issue" do
@@ -94,7 +94,7 @@ describe Gitlab::Client do
94
94
 
95
95
  it "should get the correct resource" do
96
96
  expect(a_put("/projects/3/issues/33").
97
- with(:body => {:state_event => 'close'})).to have_been_made
97
+ with(body: { state_event: 'close' })).to have_been_made
98
98
  end
99
99
 
100
100
  it "should return information about an closed issue" do
@@ -111,7 +111,7 @@ describe Gitlab::Client do
111
111
 
112
112
  it "should get the correct resource" do
113
113
  expect(a_put("/projects/3/issues/33").
114
- with(:body => {:state_event => 'reopen'})).to have_been_made
114
+ with(body: { state_event: 'reopen' })).to have_been_made
115
115
  end
116
116
 
117
117
  it "should return information about an reopened issue" do
@@ -11,8 +11,8 @@ describe Gitlab::Client do
11
11
  expect(a_get("/projects/3/labels")).to have_been_made
12
12
  end
13
13
 
14
- it "should return an array of project's labels" do
15
- expect(@labels).to be_an Array
14
+ it "should return a paginated response of project's labels" do
15
+ expect(@labels).to be_a Gitlab::PaginatedResponse
16
16
  expect(@labels.first.name).to eq("Backlog")
17
17
  end
18
18
  end
@@ -25,7 +25,7 @@ describe Gitlab::Client do
25
25
 
26
26
  it "should get the correct resource" do
27
27
  expect(a_delete("/projects/3/labels").
28
- with(:body => {:name => 'Backlog'})).to have_been_made
28
+ with(body: { name: 'Backlog' })).to have_been_made
29
29
  end
30
30
 
31
31
  it "should return information about a deleted snippet" do
@@ -36,12 +36,12 @@ describe Gitlab::Client do
36
36
  describe ".edit_label" do
37
37
  before do
38
38
  stub_put("/projects/3/labels", "label")
39
- @label = Gitlab.edit_label(3, "TODO", :new_name => 'Backlog')
39
+ @label = Gitlab.edit_label(3, "TODO", new_name: 'Backlog')
40
40
  end
41
41
 
42
42
  it "should get the correct resource" do
43
43
  expect(a_put("/projects/3/labels").
44
- with(:body => {:name => 'TODO', :new_name => "Backlog"})).to have_been_made
44
+ with(body: { name: 'TODO', new_name: "Backlog" })).to have_been_made
45
45
  end
46
46
 
47
47
  it "should return information about an edited label" do
@@ -57,7 +57,7 @@ describe Gitlab::Client do
57
57
 
58
58
  it "should get the correct resource" do
59
59
  expect(a_post("/projects/3/labels").
60
- with(:body => {:name => 'Backlog', :color => '#DD10AA'})).to have_been_made
60
+ with(body: { name: 'Backlog', color: '#DD10AA' })).to have_been_made
61
61
  end
62
62
 
63
63
  it "should return information about a created label" do
@@ -11,8 +11,8 @@ describe Gitlab::Client do
11
11
  expect(a_get("/projects/3/merge_requests")).to have_been_made
12
12
  end
13
13
 
14
- it "should return an array of project's merge requests" do
15
- expect(@merge_requests).to be_an Array
14
+ it "should return a paginated response of project's merge requests" do
15
+ expect(@merge_requests).to be_a Gitlab::PaginatedResponse
16
16
  expect(@merge_requests.first.project_id).to eq(3)
17
17
  end
18
18
  end
@@ -40,9 +40,9 @@ describe Gitlab::Client do
40
40
 
41
41
  it "should return information about a merge request" do
42
42
  @merge_request = Gitlab.create_merge_request(3, 'New feature',
43
- :source_branch => 'api',
44
- :target_branch => 'master'
45
- )
43
+ source_branch: 'api',
44
+ target_branch: 'master'
45
+ )
46
46
  expect(@merge_request.project_id).to eq(3)
47
47
  expect(@merge_request.assignee.name).to eq("Jack Smith")
48
48
  end
@@ -51,25 +51,25 @@ describe Gitlab::Client do
51
51
  describe ".update_merge_request" do
52
52
  before do
53
53
  stub_put("/projects/3/merge_request/2", "merge_request").
54
- with(:body => {
55
- :assignee_id => '1',
56
- :target_branch => 'master',
57
- :title => 'A different new feature'
58
- })
54
+ with(body: {
55
+ assignee_id: '1',
56
+ target_branch: 'master',
57
+ title: 'A different new feature'
58
+ })
59
59
  @merge_request = Gitlab.update_merge_request(3, 2,
60
- :assignee_id => '1',
61
- :target_branch => 'master',
62
- :title => 'A different new feature'
63
- )
60
+ assignee_id: '1',
61
+ target_branch: 'master',
62
+ title: 'A different new feature'
63
+ )
64
64
  end
65
65
 
66
66
  it "should get the correct resource" do
67
67
  expect(a_put("/projects/3/merge_request/2").
68
- with(:body => {
69
- :assignee_id => '1',
70
- :target_branch => 'master',
71
- :title => 'A different new feature'
72
- })).to have_been_made
68
+ with(body: {
69
+ assignee_id: '1',
70
+ target_branch: 'master',
71
+ title: 'A different new feature'
72
+ })).to have_been_made
73
73
  end
74
74
 
75
75
  it "should return information about a merge request" do
@@ -81,13 +81,13 @@ describe Gitlab::Client do
81
81
  describe ".accept_merge_request" do
82
82
  before do
83
83
  stub_put("/projects/5/merge_request/42/merge", "merge_request").
84
- with(:body => {:merge_commit_message => 'Nice!'})
85
- @merge_request = Gitlab.accept_merge_request(5, 42, :merge_commit_message => 'Nice!')
84
+ with(body: { merge_commit_message: 'Nice!' })
85
+ @merge_request = Gitlab.accept_merge_request(5, 42, merge_commit_message: 'Nice!')
86
86
  end
87
87
 
88
88
  it "should get the correct resource" do
89
89
  expect(a_put("/projects/5/merge_request/42/merge").
90
- with(:body => {:merge_commit_message => 'Nice!'})).to have_been_made
90
+ with(body: { merge_commit_message: 'Nice!' })).to have_been_made
91
91
  end
92
92
 
93
93
  it "should return information about merged merge request" do
@@ -107,7 +107,7 @@ describe Gitlab::Client do
107
107
  end
108
108
 
109
109
  it "should return merge request's comments" do
110
- expect(@merge_request).to be_an Array
110
+ expect(@merge_request).to be_an Gitlab::PaginatedResponse
111
111
  expect(@merge_request.length).to eq(2)
112
112
  expect(@merge_request[0].note).to eq("this is the 1st comment on the 2merge merge request")
113
113
  expect(@merge_request[0].author.id).to eq(11)
@@ -11,8 +11,8 @@ describe Gitlab::Client do
11
11
  expect(a_get("/projects/3/milestones")).to have_been_made
12
12
  end
13
13
 
14
- it "should return an array of project's milestones" do
15
- expect(@milestones).to be_an Array
14
+ it "should return a paginated response of project's milestones" do
15
+ expect(@milestones).to be_a Gitlab::PaginatedResponse
16
16
  expect(@milestones.first.project_id).to eq(3)
17
17
  end
18
18
  end
@@ -31,19 +31,19 @@ describe Gitlab::Client do
31
31
  expect(@milestone.project_id).to eq(3)
32
32
  end
33
33
  end
34
-
34
+
35
35
  describe ".milestone_issues" do
36
36
  before do
37
37
  stub_get("/projects/3/milestones/1/issues", "milestone_issues")
38
38
  @milestone_issues = Gitlab.milestone_issues(3, 1)
39
39
  end
40
-
40
+
41
41
  it "should get the correct resource" do
42
42
  expect(a_get("/projects/3/milestones/1/issues")).to have_been_made
43
43
  end
44
44
 
45
- it "should return an array of milestone's issues" do
46
- expect(@milestone_issues).to be_an Array
45
+ it "should return a paginated response of milestone's issues" do
46
+ expect(@milestone_issues).to be_a Gitlab::PaginatedResponse
47
47
  expect(@milestone_issues.first.milestone.id).to eq(1)
48
48
  end
49
49
  end
@@ -56,7 +56,7 @@ describe Gitlab::Client do
56
56
 
57
57
  it "should get the correct resource" do
58
58
  expect(a_post("/projects/3/milestones").
59
- with(:body => {:title => 'title'})).to have_been_made
59
+ with(body: { title: 'title' })).to have_been_made
60
60
  end
61
61
 
62
62
  it "should return information about a created milestone" do
@@ -67,12 +67,12 @@ describe Gitlab::Client do
67
67
  describe ".edit_milestone" do
68
68
  before do
69
69
  stub_put("/projects/3/milestones/33", "milestone")
70
- @milestone = Gitlab.edit_milestone(3, 33, :title => 'title')
70
+ @milestone = Gitlab.edit_milestone(3, 33, title: 'title')
71
71
  end
72
72
 
73
73
  it "should get the correct resource" do
74
74
  expect(a_put("/projects/3/milestones/33").
75
- with(:body => {:title => 'title'})).to have_been_made
75
+ with(body: { title: 'title' })).to have_been_made
76
76
  end
77
77
 
78
78
  it "should return information about an edited milestone" do