gitlab 3.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/.travis.yml +6 -2
- data/CHANGELOG.md +244 -0
- data/CONTRIBUTING.md +195 -0
- data/LICENSE.txt +1 -1
- data/README.md +122 -10
- data/Rakefile +1 -1
- data/bin/console +10 -0
- data/bin/setup +6 -0
- data/exe/gitlab +7 -0
- data/gitlab.gemspec +9 -3
- data/lib/gitlab.rb +18 -2
- data/lib/gitlab/api.rb +6 -4
- data/lib/gitlab/cli.rb +89 -0
- data/lib/gitlab/cli_helpers.rb +241 -0
- data/lib/gitlab/client.rb +42 -6
- data/lib/gitlab/client/branches.rb +91 -0
- data/lib/gitlab/client/build_triggers.rb +51 -0
- data/lib/gitlab/client/build_variables.rb +66 -0
- data/lib/gitlab/client/builds.rb +106 -0
- data/lib/gitlab/client/commits.rb +146 -0
- data/lib/gitlab/client/groups.rb +66 -10
- data/lib/gitlab/client/issues.rb +61 -16
- data/lib/gitlab/client/labels.rb +57 -0
- data/lib/gitlab/client/merge_requests.rb +137 -26
- data/lib/gitlab/client/milestones.rb +44 -9
- data/lib/gitlab/client/namespaces.rb +20 -0
- data/lib/gitlab/client/notes.rb +71 -16
- data/lib/gitlab/client/pipelines.rb +68 -0
- data/lib/gitlab/client/projects.rb +236 -27
- data/lib/gitlab/client/repositories.rb +39 -45
- data/lib/gitlab/client/repository_files.rb +107 -0
- data/lib/gitlab/client/runners.rb +115 -0
- data/lib/gitlab/client/services.rb +50 -0
- data/lib/gitlab/client/snippets.rb +26 -21
- data/lib/gitlab/client/system_hooks.rb +59 -0
- data/lib/gitlab/client/tags.rb +96 -0
- data/lib/gitlab/client/users.rb +151 -7
- data/lib/gitlab/configuration.rb +20 -4
- data/lib/gitlab/error.rb +55 -12
- data/lib/gitlab/file_response.rb +46 -0
- data/lib/gitlab/help.rb +95 -0
- data/lib/gitlab/objectified_hash.rb +19 -3
- data/lib/gitlab/page_links.rb +33 -0
- data/lib/gitlab/paginated_response.rb +97 -0
- data/lib/gitlab/request.rb +65 -33
- data/lib/gitlab/shell.rb +84 -0
- data/lib/gitlab/shell_history.rb +59 -0
- data/lib/gitlab/version.rb +1 -1
- data/spec/fixtures/{project_branch.json → branch.json} +1 -1
- data/spec/fixtures/branch_delete.json +3 -0
- data/spec/fixtures/{project_branches.json → branches.json} +0 -0
- data/spec/fixtures/build.json +38 -0
- data/spec/fixtures/build_artifacts.json +0 -0
- data/spec/fixtures/build_cancel.json +24 -0
- data/spec/fixtures/build_erase.json +24 -0
- data/spec/fixtures/build_retry.json +24 -0
- data/spec/fixtures/builds.json +78 -0
- data/spec/fixtures/builds_commits.json +64 -0
- data/spec/fixtures/compare_merge_request_diff.json +31 -0
- data/spec/fixtures/error_project_not_found.json +1 -0
- data/spec/fixtures/get_repository_file.json +1 -0
- data/spec/fixtures/group_create_with_description.json +1 -0
- data/spec/fixtures/group_delete.json +1 -0
- data/spec/fixtures/group_member_edit.json +1 -0
- data/spec/fixtures/group_projects.json +44 -0
- data/spec/fixtures/group_search.json +2 -0
- data/spec/fixtures/label.json +1 -0
- data/spec/fixtures/labels.json +1 -0
- data/spec/fixtures/merge_request_changes.json +1 -0
- data/spec/fixtures/merge_request_closes_issues.json +1 -0
- data/spec/fixtures/{comment_merge_request.json → merge_request_comment.json} +0 -0
- data/spec/fixtures/merge_request_comments.json +1 -0
- data/spec/fixtures/merge_request_commits.json +1 -0
- data/spec/fixtures/milestone_issues.json +1 -0
- data/spec/fixtures/milestone_merge_requests.json +1 -0
- data/spec/fixtures/namespaces.json +1 -0
- data/spec/fixtures/pipeline.json +23 -0
- data/spec/fixtures/pipeline_cancel.json +23 -0
- data/spec/fixtures/pipeline_create.json +23 -0
- data/spec/fixtures/pipeline_retry.json +23 -0
- data/spec/fixtures/pipelines.json +48 -0
- data/spec/fixtures/project_commit.json +13 -0
- data/spec/fixtures/project_commit_comment.json +1 -0
- data/spec/fixtures/project_commit_comments.json +1 -0
- data/spec/fixtures/project_commit_create.json +22 -0
- data/spec/fixtures/project_commit_diff.json +10 -0
- data/spec/fixtures/project_commit_status.json +42 -0
- data/spec/fixtures/project_edit.json +21 -0
- data/spec/fixtures/project_events.json +1 -0
- data/spec/fixtures/project_fork.json +50 -0
- data/spec/fixtures/project_forked_for_user.json +50 -0
- data/spec/fixtures/project_runner_enable.json +7 -0
- data/spec/fixtures/project_runners.json +16 -0
- data/spec/fixtures/project_search.json +1 -0
- data/spec/fixtures/project_star.json +44 -0
- data/spec/fixtures/project_tag_annotated.json +1 -0
- data/spec/fixtures/project_tag_lightweight.json +1 -0
- data/spec/fixtures/project_unstar.json +44 -0
- data/spec/fixtures/project_update_commit_status.json +20 -0
- data/spec/fixtures/push_rule.json +1 -0
- data/spec/fixtures/raw_file.json +2 -0
- data/spec/fixtures/release_create.json +1 -0
- data/spec/fixtures/release_update.json +1 -0
- data/spec/fixtures/repository_file.json +1 -0
- data/spec/fixtures/runner.json +26 -0
- data/spec/fixtures/runner_delete.json +7 -0
- data/spec/fixtures/runner_edit.json +26 -0
- data/spec/fixtures/runners.json +16 -0
- data/spec/fixtures/runners_all.json +30 -0
- data/spec/fixtures/service.json +1 -0
- data/spec/fixtures/shell_history.json +2 -0
- data/spec/fixtures/snippet_content.json +3 -0
- data/spec/fixtures/system_hook.json +1 -0
- data/spec/fixtures/system_hooks.json +1 -0
- data/spec/fixtures/tag.json +1 -0
- data/spec/fixtures/tag_create.json +1 -0
- data/spec/fixtures/tag_create_with_description.json +1 -0
- data/spec/fixtures/tag_delete.json +1 -0
- data/spec/fixtures/tags.json +1 -0
- data/spec/fixtures/tree.json +1 -0
- data/spec/fixtures/trigger.json +7 -0
- data/spec/fixtures/triggers.json +16 -0
- data/spec/fixtures/user.json +1 -1
- data/spec/fixtures/user_block_unblock.json +1 -0
- data/spec/fixtures/user_email.json +1 -0
- data/spec/fixtures/user_emails.json +1 -0
- data/spec/fixtures/user_search.json +1 -0
- data/spec/fixtures/users.json +1 -1
- data/spec/fixtures/variable.json +4 -0
- data/spec/fixtures/variables.json +10 -0
- data/spec/gitlab/cli_helpers_spec.rb +57 -0
- data/spec/gitlab/cli_spec.rb +119 -0
- data/spec/gitlab/client/branches_spec.rb +99 -0
- data/spec/gitlab/client/build_triggers_spec.rb +67 -0
- data/spec/gitlab/client/build_variables_spec.rb +86 -0
- data/spec/gitlab/client/builds_spec.rb +148 -0
- data/spec/gitlab/client/client_spec.rb +11 -0
- data/spec/gitlab/client/commits_spec.rb +168 -0
- data/spec/gitlab/client/groups_spec.rb +116 -30
- data/spec/gitlab/client/issues_spec.rb +93 -29
- data/spec/gitlab/client/labels_spec.rb +68 -0
- data/spec/gitlab/client/merge_requests_spec.rb +171 -39
- data/spec/gitlab/client/milestones_spec.rb +45 -13
- data/spec/gitlab/client/namespaces_spec.rb +22 -0
- data/spec/gitlab/client/notes_spec.rb +82 -33
- data/spec/gitlab/client/pipelines_spec.rb +95 -0
- data/spec/gitlab/client/projects_spec.rb +371 -71
- data/spec/gitlab/client/repositories_spec.rb +51 -30
- data/spec/gitlab/client/repository_files_spec.rb +77 -0
- data/spec/gitlab/client/runners_spec.rb +185 -0
- data/spec/gitlab/client/services_spec.rb +55 -0
- data/spec/gitlab/client/snippets_spec.rb +35 -20
- data/spec/gitlab/client/system_hooks_spec.rb +69 -0
- data/spec/gitlab/client/tags_spec.rb +109 -0
- data/spec/gitlab/client/users_spec.rb +296 -34
- data/spec/gitlab/error_spec.rb +45 -0
- data/spec/gitlab/file_response_spec.rb +33 -0
- data/spec/gitlab/help_spec.rb +46 -0
- data/spec/gitlab/objectified_hash_spec.rb +48 -0
- data/spec/gitlab/page_links_spec.rb +16 -0
- data/spec/gitlab/paginated_response_spec.rb +60 -0
- data/spec/gitlab/request_spec.rb +73 -0
- data/spec/gitlab/shell_history_spec.rb +53 -0
- data/spec/gitlab/shell_spec.rb +80 -0
- data/spec/gitlab_spec.rb +48 -7
- data/spec/spec_helper.rb +24 -13
- metadata +287 -33
- data/spec/fixtures/create_merge_request.json +0 -1
- data/spec/fixtures/project_delete_key.json +0 -8
- data/spec/fixtures/update_merge_request.json +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Gitlab::Client do
|
|
4
|
+
it { should respond_to :repo_branches }
|
|
5
|
+
it { should respond_to :repo_branch }
|
|
6
|
+
it { should respond_to :repo_protect_branch }
|
|
7
|
+
it { should respond_to :repo_unprotect_branch }
|
|
8
|
+
|
|
9
|
+
describe ".branches" do
|
|
10
|
+
before do
|
|
11
|
+
stub_get("/projects/3/repository/branches", "branches")
|
|
12
|
+
@branches = Gitlab.branches(3)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should get the correct resource" do
|
|
16
|
+
expect(a_get("/projects/3/repository/branches")).to have_been_made
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should return a paginated response of repository branches" do
|
|
20
|
+
expect(@branches).to be_a Gitlab::PaginatedResponse
|
|
21
|
+
expect(@branches.first.name).to eq("api")
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe ".branch" do
|
|
26
|
+
before do
|
|
27
|
+
stub_get("/projects/3/repository/branches/api", "branch")
|
|
28
|
+
@branch = Gitlab.branch(3, "api")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should get the correct resource" do
|
|
32
|
+
expect(a_get("/projects/3/repository/branches/api")).to have_been_made
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should return information about a repository branch" do
|
|
36
|
+
expect(@branch.name).to eq("api")
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe ".protect_branch" do
|
|
41
|
+
before do
|
|
42
|
+
stub_put("/projects/3/repository/branches/api/protect", "branch")
|
|
43
|
+
@branch = Gitlab.protect_branch(3, "api")
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should get the correct resource" do
|
|
47
|
+
expect(a_put("/projects/3/repository/branches/api/protect")).to have_been_made
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "should return information about a protected repository branch" do
|
|
51
|
+
expect(@branch.name).to eq("api")
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
describe ".unprotect_branch" do
|
|
56
|
+
before do
|
|
57
|
+
stub_put("/projects/3/repository/branches/api/unprotect", "branch")
|
|
58
|
+
@branch = Gitlab.unprotect_branch(3, "api")
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it "should get the correct resource" do
|
|
62
|
+
expect(a_put("/projects/3/repository/branches/api/unprotect")).to have_been_made
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "should return information about an unprotected repository branch" do
|
|
66
|
+
expect(@branch.name).to eq("api")
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
describe ".create_branch" do
|
|
71
|
+
before do
|
|
72
|
+
stub_post("/projects/3/repository/branches", "branch")
|
|
73
|
+
@branch = Gitlab.create_branch(3, "api", "master")
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it "should get the correct resource" do
|
|
77
|
+
expect(a_post("/projects/3/repository/branches")).to have_been_made
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it "should return information about a new repository branch" do
|
|
81
|
+
expect(@branch.name).to eq("api")
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
describe ".delete_branch" do
|
|
86
|
+
before do
|
|
87
|
+
stub_delete("/projects/3/repository/branches/api", "branch_delete")
|
|
88
|
+
@branch = Gitlab.delete_branch(3, "api")
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it "should get the correct resource" do
|
|
92
|
+
expect(a_delete("/projects/3/repository/branches/api")).to have_been_made
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
it "should return information about the deleted repository branch" do
|
|
96
|
+
expect(@branch.branch_name).to eq("api")
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Gitlab::Client do
|
|
4
|
+
describe ".triggers" do
|
|
5
|
+
before do
|
|
6
|
+
stub_get("/projects/3/triggers", "triggers")
|
|
7
|
+
@triggers = Gitlab.triggers(3)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should get the correct resource" do
|
|
11
|
+
expect(a_get("/projects/3/triggers")).to have_been_made
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should return an array of project's triggers" do
|
|
15
|
+
expect(@triggers).to be_a Gitlab::PaginatedResponse
|
|
16
|
+
expect(@triggers.first.token).to eq("fbdb730c2fbdb095a0862dbd8ab88b")
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe ".trigger" do
|
|
21
|
+
before do
|
|
22
|
+
stub_get("/projects/3/triggers/7b9148c158980bbd9bcea92c17522d", "trigger")
|
|
23
|
+
@trigger = Gitlab.trigger(3, "7b9148c158980bbd9bcea92c17522d")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should get the correct resource" do
|
|
27
|
+
expect(a_get("/projects/3/triggers/7b9148c158980bbd9bcea92c17522d")).to have_been_made
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should return information about a trigger" do
|
|
31
|
+
expect(@trigger.created_at).to eq("2015-12-23T16:25:56.760Z")
|
|
32
|
+
expect(@trigger.token).to eq("7b9148c158980bbd9bcea92c17522d")
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe ".create_trigger" do
|
|
37
|
+
before do
|
|
38
|
+
stub_post("/projects/3/triggers", "trigger")
|
|
39
|
+
@trigger = Gitlab.create_trigger(3)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "should get the correct resource" do
|
|
43
|
+
expect(a_post("/projects/3/triggers")).to have_been_made
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should return information about a new trigger" do
|
|
47
|
+
expect(@trigger.created_at).to eq("2015-12-23T16:25:56.760Z")
|
|
48
|
+
expect(@trigger.token).to eq("7b9148c158980bbd9bcea92c17522d")
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
describe ".remove_trigger" do
|
|
53
|
+
before do
|
|
54
|
+
stub_delete("/projects/3/triggers/7b9148c158980bbd9bcea92c17522d", "trigger")
|
|
55
|
+
@trigger = Gitlab.remove_trigger(3, "7b9148c158980bbd9bcea92c17522d")
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "should get the correct resource" do
|
|
59
|
+
expect(a_delete("/projects/3/triggers/7b9148c158980bbd9bcea92c17522d")).to have_been_made
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "should return information about a deleted trigger" do
|
|
63
|
+
expect(@trigger.created_at).to eq("2015-12-23T16:25:56.760Z")
|
|
64
|
+
expect(@trigger.token).to eq("7b9148c158980bbd9bcea92c17522d")
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Gitlab::Client do
|
|
4
|
+
describe ".variables" do
|
|
5
|
+
before do
|
|
6
|
+
stub_get("/projects/3/variables", "variables")
|
|
7
|
+
@variables = Gitlab.variables(3)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should get the correct resource" do
|
|
11
|
+
expect(a_get("/projects/3/variables")).to have_been_made
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should return an array of project's variables" do
|
|
15
|
+
expect(@variables).to be_a Gitlab::PaginatedResponse
|
|
16
|
+
expect(@variables.first.key).to eq("TEST_VARIABLE_1")
|
|
17
|
+
expect(@variables.first.value).to eq("TEST_1")
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe ".variable" do
|
|
22
|
+
before do
|
|
23
|
+
stub_get("/projects/3/variables/VARIABLE", "variable")
|
|
24
|
+
@variable = Gitlab.variable(3, "VARIABLE")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "should get the correct resource" do
|
|
28
|
+
expect(a_get("/projects/3/variables/VARIABLE")).to have_been_made
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should return information about a variable" do
|
|
32
|
+
expect(@variable.key).to eq("VARIABLE")
|
|
33
|
+
expect(@variable.value).to eq("the value")
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe ".create_variable" do
|
|
38
|
+
before do
|
|
39
|
+
stub_post("/projects/3/variables", "variable")
|
|
40
|
+
@variable = Gitlab.create_variable(3, "NEW_VARIABLE", "new value")
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it "should get the correct resource" do
|
|
44
|
+
body = { key: "NEW_VARIABLE", value: "new value" }
|
|
45
|
+
expect(a_post("/projects/3/variables").with(body: body)).to have_been_made
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it "should return information about a new variable" do
|
|
49
|
+
expect(@variable.key).to eq("VARIABLE")
|
|
50
|
+
expect(@variable.value).to eq("the value")
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
describe ".update_variable" do
|
|
55
|
+
before do
|
|
56
|
+
stub_put("/projects/3/variables/UPD_VARIABLE", "variable")
|
|
57
|
+
@variable = Gitlab.update_variable(3, "UPD_VARIABLE", "updated value")
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "should put the correct resource" do
|
|
61
|
+
body = { value: "updated value" }
|
|
62
|
+
expect(a_put("/projects/3/variables/UPD_VARIABLE").with(body: body)).to have_been_made
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "should return information about an updated variable" do
|
|
66
|
+
expect(@variable.key).to eq("VARIABLE")
|
|
67
|
+
expect(@variable.value).to eq("the value")
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
describe ".remove_variable" do
|
|
72
|
+
before do
|
|
73
|
+
stub_delete("/projects/3/variables/DEL_VARIABLE", "variable")
|
|
74
|
+
@variable = Gitlab.remove_variable(3, "DEL_VARIABLE")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "should get the correct resource" do
|
|
78
|
+
expect(a_delete("/projects/3/variables/DEL_VARIABLE")).to have_been_made
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it "should return information about a deleted variable" do
|
|
82
|
+
expect(@variable.key).to eq("VARIABLE")
|
|
83
|
+
expect(@variable.value).to eq("the value")
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Gitlab::Client do
|
|
4
|
+
describe ".builds" do
|
|
5
|
+
before do
|
|
6
|
+
stub_get("/projects/3/builds", "builds")
|
|
7
|
+
@builds = Gitlab.builds(3)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should get the correct resource" do
|
|
11
|
+
expect(a_get("/projects/3/builds")).to have_been_made
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should return a paginated response of project's builds" do
|
|
15
|
+
expect(@builds).to be_a Gitlab::PaginatedResponse
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
describe ".build" do
|
|
20
|
+
before do
|
|
21
|
+
stub_get("/projects/3/builds/8", "build")
|
|
22
|
+
@build = Gitlab.build(3, 8)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should get the correct resource" do
|
|
26
|
+
expect(a_get("/projects/3/builds/8")).to have_been_made
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should return a single build" do
|
|
30
|
+
expect(@build).to be_a Gitlab::ObjectifiedHash
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should return information about a build" do
|
|
34
|
+
expect(@build.id).to eq(8)
|
|
35
|
+
expect(@build.user.name).to eq("John Smith")
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
describe ".build_artifacts" do
|
|
40
|
+
context "when successful request" do
|
|
41
|
+
before do
|
|
42
|
+
fixture = load_fixture('build_artifacts')
|
|
43
|
+
fixture.set_encoding(Encoding::ASCII_8BIT)
|
|
44
|
+
stub_request(:get, "#{Gitlab.endpoint}/projects/3/builds/8/artifacts").
|
|
45
|
+
with(headers: { 'PRIVATE-TOKEN' => Gitlab.private_token }).
|
|
46
|
+
to_return(body: fixture.read, headers: { 'Content-Disposition' => "attachment; filename=artifacts.zip" })
|
|
47
|
+
@build_artifacts = Gitlab.build_artifacts(3, 8)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "should get the correct resource" do
|
|
51
|
+
expect(a_get("/projects/3/builds/8/artifacts")).to have_been_made
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "should return a FileResponse" do
|
|
55
|
+
expect(@build_artifacts).to be_a Gitlab::FileResponse
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "should return a file with filename" do
|
|
59
|
+
expect(@build_artifacts.filename).to eq "artifacts.zip"
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
context "when bad request" do
|
|
64
|
+
it "should throw an exception" do
|
|
65
|
+
stub_get("/projects/3/builds/8/artifacts", "error_project_not_found", 404)
|
|
66
|
+
expect{ Gitlab.build_artifacts(3, 8) }.to raise_error(Gitlab::Error::NotFound, "Server responded with code 404, message: 404 Project Not Found. Request URI: #{Gitlab.endpoint}/projects/3/builds/8/artifacts")
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
describe ".builds_commits" do
|
|
72
|
+
before do
|
|
73
|
+
stub_get("/projects/3/repository/commits/0ff3ae198f8601a285adcf5c0fff204ee6fba5fd/builds", "builds_commits")
|
|
74
|
+
@builds_commits = Gitlab.commit_builds(3, "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "should get the correct resource" do
|
|
78
|
+
expect(a_get("/projects/3/repository/commits/0ff3ae198f8601a285adcf5c0fff204ee6fba5fd/builds")).to have_been_made
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it "should return a paginated response of commit builds" do
|
|
82
|
+
expect(@builds_commits).to be_a Gitlab::PaginatedResponse
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it "should return information about the builds" do
|
|
86
|
+
expect(@builds_commits.count).to eq(2)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
describe ".build_cancel" do
|
|
93
|
+
before do
|
|
94
|
+
stub_post("/projects/3/builds/8/cancel", "build_cancel")
|
|
95
|
+
@build_cancel = Gitlab.build_cancel(3, 8)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
it "should get the correct resource" do
|
|
99
|
+
expect(a_post("/projects/3/builds/8/cancel")).to have_been_made
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it "should return a single build" do
|
|
103
|
+
expect(@build_cancel).to be_a Gitlab::ObjectifiedHash
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it "should return information about a build" do
|
|
107
|
+
expect(@build_cancel.commit.author_name).to eq("John Smith")
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
describe ".build_retry" do
|
|
112
|
+
before do
|
|
113
|
+
stub_post("/projects/3/builds/69/retry", "build_retry")
|
|
114
|
+
@build_retry = Gitlab.build_retry(3, 69)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
it "should get the correct resource" do
|
|
118
|
+
expect(a_post("/projects/3/builds/69/retry")).to have_been_made
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
it "should return a single build" do
|
|
122
|
+
expect(@build_retry).to be_a Gitlab::ObjectifiedHash
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
it "should return information about a build" do
|
|
126
|
+
expect(@build_retry.commit.author_name).to eq("John Smith")
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
describe ".build_erase" do
|
|
131
|
+
before do
|
|
132
|
+
stub_post("/projects/3/builds/69/erase", "build_erase")
|
|
133
|
+
@build_retry = Gitlab.build_erase(3, 69)
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
it "should get the correct resource" do
|
|
137
|
+
expect(a_post("/projects/3/builds/69/erase")).to have_been_made
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
it "should return a single build" do
|
|
141
|
+
expect(@build_retry).to be_a Gitlab::ObjectifiedHash
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
it "should return information about a build" do
|
|
145
|
+
expect(@build_retry.commit.author_name).to eq("John Smith")
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Gitlab::Client do
|
|
4
|
+
describe '#inspect' do
|
|
5
|
+
it 'masks tokens on inspect' do
|
|
6
|
+
client = described_class.new(private_token: 'ui3gIYf4MMzTx-Oh5cEBx')
|
|
7
|
+
inspected = client.inspect
|
|
8
|
+
expect(inspected).to include('****************cEBx')
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Gitlab::Client do
|
|
4
|
+
it { should respond_to :repo_commits }
|
|
5
|
+
it { should respond_to :repo_commit }
|
|
6
|
+
it { should respond_to :repo_commit_diff }
|
|
7
|
+
it { should respond_to :repo_commit_comments }
|
|
8
|
+
it { should respond_to :repo_create_commit_comment }
|
|
9
|
+
it { should respond_to :repo_commit_status }
|
|
10
|
+
it { should respond_to :repo_update_commit_status }
|
|
11
|
+
|
|
12
|
+
describe ".commits" do
|
|
13
|
+
before do
|
|
14
|
+
stub_get("/projects/3/repository/commits", "project_commits").
|
|
15
|
+
with(query: { ref_name: "api" })
|
|
16
|
+
@commits = Gitlab.commits(3, ref_name: "api")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should get the correct resource" do
|
|
20
|
+
expect(a_get("/projects/3/repository/commits").
|
|
21
|
+
with(query: { ref_name: "api" })).to have_been_made
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should return a paginated response of repository commits" do
|
|
25
|
+
expect(@commits).to be_a Gitlab::PaginatedResponse
|
|
26
|
+
expect(@commits.first.id).to eq("f7dd067490fe57505f7226c3b54d3127d2f7fd46")
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe ".commit" do
|
|
31
|
+
before do
|
|
32
|
+
stub_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6", "project_commit")
|
|
33
|
+
@commit = Gitlab.commit(3, '6104942438c14ec7bd21c6cd5bd995272b3faff6')
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "should get the correct resource" do
|
|
37
|
+
expect(a_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6")).
|
|
38
|
+
to have_been_made
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should return a repository commit" do
|
|
42
|
+
expect(@commit.id).to eq("6104942438c14ec7bd21c6cd5bd995272b3faff6")
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
describe ".commit_diff" do
|
|
47
|
+
before do
|
|
48
|
+
stub_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6/diff", "project_commit_diff")
|
|
49
|
+
@diff = Gitlab.commit_diff(3, '6104942438c14ec7bd21c6cd5bd995272b3faff6')
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "should get the correct resource" do
|
|
53
|
+
expect(a_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6/diff")).
|
|
54
|
+
to have_been_made
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "should return a diff of a commit" do
|
|
58
|
+
expect(@diff.new_path).to eq("doc/update/5.4-to-6.0.md")
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
describe ".commit_comments" do
|
|
63
|
+
before do
|
|
64
|
+
stub_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6/comments", "project_commit_comments")
|
|
65
|
+
@commit_comments = Gitlab.commit_comments(3, '6104942438c14ec7bd21c6cd5bd995272b3faff6')
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "should get the correct resource" do
|
|
69
|
+
expect(a_get("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6/comments")).
|
|
70
|
+
to have_been_made
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "should return commit's comments" do
|
|
74
|
+
expect(@commit_comments).to be_a Gitlab::PaginatedResponse
|
|
75
|
+
expect(@commit_comments.length).to eq(2)
|
|
76
|
+
expect(@commit_comments[0].note).to eq("this is the 1st comment on commit 6104942438c14ec7bd21c6cd5bd995272b3faff6")
|
|
77
|
+
expect(@commit_comments[0].author.id).to eq(11)
|
|
78
|
+
expect(@commit_comments[1].note).to eq("another discussion point on commit 6104942438c14ec7bd21c6cd5bd995272b3faff6")
|
|
79
|
+
expect(@commit_comments[1].author.id).to eq(12)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
describe ".create_commit_comment" do
|
|
84
|
+
before do
|
|
85
|
+
stub_post("/projects/3/repository/commits/6104942438c14ec7bd21c6cd5bd995272b3faff6/comments", "project_commit_comment")
|
|
86
|
+
@merge_request = Gitlab.create_commit_comment(3, '6104942438c14ec7bd21c6cd5bd995272b3faff6', 'Nice code!')
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
it "should return information about the newly created comment" do
|
|
90
|
+
expect(@merge_request.note).to eq('Nice code!')
|
|
91
|
+
expect(@merge_request.author.id).to eq(1)
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
describe ".commit_status" do
|
|
96
|
+
before do
|
|
97
|
+
stub_get("/projects/6/repository/commits/7d938cb8ac15788d71f4b67c035515a160ea76d8/statuses", 'project_commit_status').
|
|
98
|
+
with(query: { all: 'true' })
|
|
99
|
+
@statuses = Gitlab.commit_status(6, '7d938cb8ac15788d71f4b67c035515a160ea76d8', all: true)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it "should get the correct resource" do
|
|
103
|
+
expect(a_get("/projects/6/repository/commits/7d938cb8ac15788d71f4b67c035515a160ea76d8/statuses").
|
|
104
|
+
with(query: { all: true }))
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
it "should get statuses of a commit" do
|
|
108
|
+
expect(@statuses).to be_kind_of Gitlab::PaginatedResponse
|
|
109
|
+
expect(@statuses.first.sha).to eq('7d938cb8ac15788d71f4b67c035515a160ea76d8')
|
|
110
|
+
expect(@statuses.first.ref).to eq('decreased-spec')
|
|
111
|
+
expect(@statuses.first.status).to eq('failed')
|
|
112
|
+
expect(@statuses.last.sha).to eq('7d938cb8ac15788d71f4b67c035515a160ea76d8')
|
|
113
|
+
expect(@statuses.last.status).to eq('success')
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
describe ".update_commit_status" do
|
|
118
|
+
before do
|
|
119
|
+
stub_post("/projects/6/statuses/7d938cb8ac15788d71f4b67c035515a160ea76d8", 'project_update_commit_status').
|
|
120
|
+
with(query: { name: 'test', ref: 'decreased-spec', state: 'failed' })
|
|
121
|
+
@status = Gitlab.update_commit_status(6, '7d938cb8ac15788d71f4b67c035515a160ea76d8', 'failed', name: 'test', ref: 'decreased-spec')
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
it "should get the correct resource" do
|
|
125
|
+
expect(a_post('/projects/6/statuses/7d938cb8ac15788d71f4b67c035515a160ea76d8').
|
|
126
|
+
with(query: { name: 'test', ref: 'decreased-spec', state: 'failed' }))
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
it "should information about the newly created status" do
|
|
130
|
+
expect(@status).to be_kind_of Gitlab::ObjectifiedHash
|
|
131
|
+
expect(@status.id).to eq(498)
|
|
132
|
+
expect(@status.sha).to eq('7d938cb8ac15788d71f4b67c035515a160ea76d8')
|
|
133
|
+
expect(@status.status).to eq('failed')
|
|
134
|
+
expect(@status.ref).to eq('decreased-spec')
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
describe ".create_commit" do
|
|
139
|
+
let(:actions) do
|
|
140
|
+
[
|
|
141
|
+
{
|
|
142
|
+
action: "create",
|
|
143
|
+
file_path: "foo/bar",
|
|
144
|
+
content: "some content"
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
let(:query) do
|
|
150
|
+
{
|
|
151
|
+
branch_name: 'dev',
|
|
152
|
+
commit_message: 'refactors everything',
|
|
153
|
+
actions: actions,
|
|
154
|
+
author_email: 'joe@sample.org',
|
|
155
|
+
author_name: 'Joe Sample'
|
|
156
|
+
}
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
before do
|
|
160
|
+
stub_post("/projects/6/repository/commits", 'project_commit_create').with(query: query)
|
|
161
|
+
@commit = Gitlab.create_commit(6, 'dev', 'refactors everything', actions, {author_email: 'joe@sample.org', author_name: 'Joe Sample'})
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
it "should return id of a created commit" do
|
|
165
|
+
expect(@commit.id).to eq('ed899a2f4b50b4370feeea94676502b42383c746')
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
end
|