gritano 0.5.1 → 0.5.2
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.
- data/TODO +11 -2
- data/bin/{gritano-check → gritano-remote} +0 -0
- data/gritano.gemspec +4 -24
- data/lib/gritano/console/executor.rb +1 -1
- data/lib/gritano/console/installer.rb +3 -1
- data/lib/gritano/models/key.rb +1 -1
- metadata +5 -25
- data/features/cli.feature +0 -183
- data/features/console.feature +0 -89
- data/features/data/help-check.txt +0 -13
- data/features/data/help-test.txt +0 -27
- data/features/data/help.txt +0 -27
- data/features/data/keys/full_authorized_keys +0 -2
- data/features/data/keys/igorbonadio.pub +0 -1
- data/features/data/keys/igorbonadio_authorized_keys +0 -1
- data/features/data/keys/jessicaeto.pub +0 -1
- data/features/data/keys/jessicaeto_authorized_keys +0 -1
- data/features/help.feature +0 -9
- data/features/keys.feature +0 -31
- data/features/polices.feature +0 -55
- data/features/ssh.feature +0 -150
- data/features/step_definitions/cli_steps.rb +0 -71
- data/features/step_definitions/console_step.rb +0 -41
- data/features/step_definitions/help.rb +0 -9
- data/features/step_definitions/keys_steps.rb +0 -23
- data/features/step_definitions/polices_steps.rb +0 -54
- data/features/step_definitions/ssh_steps.rb +0 -35
data/TODO
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
v0.6.0
|
|
2
|
-
- renomear gritano-check
|
|
3
2
|
- melhorar o instalador/updater
|
|
4
3
|
- escolha de db
|
|
5
|
-
- escolha de pasta dos repos
|
|
4
|
+
- escolha de pasta dos repos
|
|
5
|
+
|
|
6
|
+
v0.7.0
|
|
7
|
+
- gritano-openssh
|
|
8
|
+
- gritano ssh:install
|
|
9
|
+
gritano ssh:config:show
|
|
10
|
+
gritano ssh config:set:port 22
|
|
11
|
+
...
|
|
12
|
+
gritano ssh:start
|
|
13
|
+
gritano ssh:stop
|
|
14
|
+
gritano ssh:restart
|
|
File without changes
|
data/gritano.gemspec
CHANGED
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "gritano"
|
|
8
|
-
s.version = "0.5.
|
|
8
|
+
s.version = "0.5.2"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Igor Bonadio"]
|
|
12
|
-
s.date = "
|
|
12
|
+
s.date = "2013-01-03"
|
|
13
13
|
s.description = "Gritano is the simplest way to configure your git server over ssh. You can create repositories and manage user access."
|
|
14
14
|
s.email = "igorbonadio@gmail.com"
|
|
15
|
-
s.executables = ["gritano", "gritano-
|
|
15
|
+
s.executables = ["gritano", "gritano-remote"]
|
|
16
16
|
s.extra_rdoc_files = [
|
|
17
17
|
"LICENSE.txt",
|
|
18
18
|
"README.rdoc",
|
|
@@ -30,32 +30,12 @@ Gem::Specification.new do |s|
|
|
|
30
30
|
"Rakefile",
|
|
31
31
|
"VERSION",
|
|
32
32
|
"bin/gritano",
|
|
33
|
-
"bin/gritano-
|
|
33
|
+
"bin/gritano-remote",
|
|
34
34
|
"db/migrate/001_create_users.rb",
|
|
35
35
|
"db/migrate/002_create_repositories.rb",
|
|
36
36
|
"db/migrate/003_create_permissions.rb",
|
|
37
37
|
"db/migrate/004_create_keys.rb",
|
|
38
38
|
"db/migrate/005_add_admin_to_users.rb",
|
|
39
|
-
"features/cli.feature",
|
|
40
|
-
"features/console.feature",
|
|
41
|
-
"features/data/help-check.txt",
|
|
42
|
-
"features/data/help-test.txt",
|
|
43
|
-
"features/data/help.txt",
|
|
44
|
-
"features/data/keys/full_authorized_keys",
|
|
45
|
-
"features/data/keys/igorbonadio.pub",
|
|
46
|
-
"features/data/keys/igorbonadio_authorized_keys",
|
|
47
|
-
"features/data/keys/jessicaeto.pub",
|
|
48
|
-
"features/data/keys/jessicaeto_authorized_keys",
|
|
49
|
-
"features/help.feature",
|
|
50
|
-
"features/keys.feature",
|
|
51
|
-
"features/polices.feature",
|
|
52
|
-
"features/ssh.feature",
|
|
53
|
-
"features/step_definitions/cli_steps.rb",
|
|
54
|
-
"features/step_definitions/console_step.rb",
|
|
55
|
-
"features/step_definitions/help.rb",
|
|
56
|
-
"features/step_definitions/keys_steps.rb",
|
|
57
|
-
"features/step_definitions/polices_steps.rb",
|
|
58
|
-
"features/step_definitions/ssh_steps.rb",
|
|
59
39
|
"features/support/database_cleaner.rb",
|
|
60
40
|
"features/support/env.rb",
|
|
61
41
|
"gritano.gemspec",
|
|
@@ -95,7 +95,7 @@ module Gritano
|
|
|
95
95
|
key = user.keys.create(name: key_name, key: @stdin.read)
|
|
96
96
|
if key.valid?
|
|
97
97
|
File.open(File.join(@ssh_path, 'authorized_keys'), 'w').write(Key.authorized_keys)
|
|
98
|
-
|
|
98
|
+
return [true, "Key added successfully."]
|
|
99
99
|
end
|
|
100
100
|
end
|
|
101
101
|
return [false, "Key could not be added."]
|
|
@@ -5,6 +5,7 @@ module Gritano
|
|
|
5
5
|
def initialize(stdin = STDIN, home_dir = Etc.getpwuid.dir)
|
|
6
6
|
@home_dir = home_dir
|
|
7
7
|
@stdin = stdin
|
|
8
|
+
@ssh_path = File.join(@home_dir, '.ssh')
|
|
8
9
|
super(@stdin, @home_dir)
|
|
9
10
|
end
|
|
10
11
|
|
|
@@ -30,7 +31,8 @@ module Gritano
|
|
|
30
31
|
ActiveRecord::Migrator.migrate(
|
|
31
32
|
File.join(File.dirname(__FILE__),'..', '..', '..', 'db/migrate'),
|
|
32
33
|
ENV["VERSION"] ? ENV["VERSION"].to_i : nil )
|
|
33
|
-
|
|
34
|
+
File.open(File.join(@ssh_path, 'authorized_keys'), 'w').write(Key.authorized_keys)
|
|
35
|
+
[true, "gritano has been installed"]
|
|
34
36
|
end
|
|
35
37
|
end
|
|
36
38
|
end
|
data/lib/gritano/models/key.rb
CHANGED
|
@@ -13,7 +13,7 @@ module Gritano
|
|
|
13
13
|
unless k.key[-1] == "\n"
|
|
14
14
|
user_key = user_key + "\n"
|
|
15
15
|
end
|
|
16
|
-
authorized_keys += "command=\"gritano-
|
|
16
|
+
authorized_keys += "command=\"gritano-remote #{k.user.login}\" #{user_key}"
|
|
17
17
|
end
|
|
18
18
|
return authorized_keys
|
|
19
19
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gritano
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.2
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2013-01-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activerecord
|
|
@@ -192,7 +192,7 @@ description: Gritano is the simplest way to configure your git server over ssh.
|
|
|
192
192
|
email: igorbonadio@gmail.com
|
|
193
193
|
executables:
|
|
194
194
|
- gritano
|
|
195
|
-
- gritano-
|
|
195
|
+
- gritano-remote
|
|
196
196
|
extensions: []
|
|
197
197
|
extra_rdoc_files:
|
|
198
198
|
- LICENSE.txt
|
|
@@ -210,32 +210,12 @@ files:
|
|
|
210
210
|
- Rakefile
|
|
211
211
|
- VERSION
|
|
212
212
|
- bin/gritano
|
|
213
|
-
- bin/gritano-
|
|
213
|
+
- bin/gritano-remote
|
|
214
214
|
- db/migrate/001_create_users.rb
|
|
215
215
|
- db/migrate/002_create_repositories.rb
|
|
216
216
|
- db/migrate/003_create_permissions.rb
|
|
217
217
|
- db/migrate/004_create_keys.rb
|
|
218
218
|
- db/migrate/005_add_admin_to_users.rb
|
|
219
|
-
- features/cli.feature
|
|
220
|
-
- features/console.feature
|
|
221
|
-
- features/data/help-check.txt
|
|
222
|
-
- features/data/help-test.txt
|
|
223
|
-
- features/data/help.txt
|
|
224
|
-
- features/data/keys/full_authorized_keys
|
|
225
|
-
- features/data/keys/igorbonadio.pub
|
|
226
|
-
- features/data/keys/igorbonadio_authorized_keys
|
|
227
|
-
- features/data/keys/jessicaeto.pub
|
|
228
|
-
- features/data/keys/jessicaeto_authorized_keys
|
|
229
|
-
- features/help.feature
|
|
230
|
-
- features/keys.feature
|
|
231
|
-
- features/polices.feature
|
|
232
|
-
- features/ssh.feature
|
|
233
|
-
- features/step_definitions/cli_steps.rb
|
|
234
|
-
- features/step_definitions/console_step.rb
|
|
235
|
-
- features/step_definitions/help.rb
|
|
236
|
-
- features/step_definitions/keys_steps.rb
|
|
237
|
-
- features/step_definitions/polices_steps.rb
|
|
238
|
-
- features/step_definitions/ssh_steps.rb
|
|
239
219
|
- features/support/database_cleaner.rb
|
|
240
220
|
- features/support/env.rb
|
|
241
221
|
- gritano.gemspec
|
|
@@ -275,7 +255,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
275
255
|
version: '0'
|
|
276
256
|
segments:
|
|
277
257
|
- 0
|
|
278
|
-
hash:
|
|
258
|
+
hash: 4484062896934626166
|
|
279
259
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
280
260
|
none: false
|
|
281
261
|
requirements:
|
data/features/cli.feature
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
Feature: Console operations
|
|
2
|
-
In order to use gritano via CLI
|
|
3
|
-
As a user
|
|
4
|
-
I want to execute some commands
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given the following users exist:
|
|
8
|
-
| login | admin |
|
|
9
|
-
| igorbonadio | true |
|
|
10
|
-
| jessicaeto | false |
|
|
11
|
-
|
|
12
|
-
And the following keys exist:
|
|
13
|
-
| login | key |
|
|
14
|
-
| igorbonadio | eva |
|
|
15
|
-
| jessicaeto | hal |
|
|
16
|
-
|
|
17
|
-
And the following repositories exist:
|
|
18
|
-
| name |
|
|
19
|
-
| tmp/gritano.git |
|
|
20
|
-
| tmp/jeka.git |
|
|
21
|
-
|
|
22
|
-
And the following permissions exist:
|
|
23
|
-
| user | repo | access |
|
|
24
|
-
| igorbonadio | tmp/gritano.git | read |
|
|
25
|
-
| igorbonadio | tmp/gritano.git | write |
|
|
26
|
-
| igorbonadio | tmp/jeka.git | read |
|
|
27
|
-
| jessicaeto | tmp/jeka.git | read |
|
|
28
|
-
| jessicaeto | tmp/jeka.git | write |
|
|
29
|
-
|
|
30
|
-
Scenario: Git read access
|
|
31
|
-
Given I start the CLI with "igorbonadio"
|
|
32
|
-
When I try to get tmp/gritano.git from CLI.check
|
|
33
|
-
Then I should get it
|
|
34
|
-
|
|
35
|
-
Scenario: Git write access
|
|
36
|
-
Given I start the CLI with "igorbonadio"
|
|
37
|
-
When I try to send data to tmp/gritano.git from CLI.check
|
|
38
|
-
Then I should send it
|
|
39
|
-
|
|
40
|
-
Scenario: Error
|
|
41
|
-
Given I start the CLI with "igorbonadio"
|
|
42
|
-
When I try to send an invalid command to CLI.check
|
|
43
|
-
Then CLI should return the help-check
|
|
44
|
-
|
|
45
|
-
Scenario: Get help
|
|
46
|
-
Given I start the CLI
|
|
47
|
-
When I send "help" to the CLI.execute
|
|
48
|
-
Then CLI should return the help
|
|
49
|
-
|
|
50
|
-
Scenario: Check git
|
|
51
|
-
Given I start the CLI but gritano is not installed
|
|
52
|
-
When I send a command to the CLI.execute
|
|
53
|
-
Then CLI should exit
|
|
54
|
-
|
|
55
|
-
Scenario Outline: Add user
|
|
56
|
-
Given I start the CLI
|
|
57
|
-
When I send "<command>" to the CLI.execute
|
|
58
|
-
Then CLI should return "<result>"
|
|
59
|
-
Examples:
|
|
60
|
-
| command | result |
|
|
61
|
-
| version | v0.5.0 |
|
|
62
|
-
| user:add jose | User jose added. |
|
|
63
|
-
| user:key:add igorbonadio marvin | Key added successfully. |
|
|
64
|
-
| user:key:rm igorbonadio eva | Key removed successfully. |
|
|
65
|
-
| user:rm igorbonadio | User igorbonadio removed. |
|
|
66
|
-
| user:admin:add igorbonadio | Now, user igorbonadio is an administrator |
|
|
67
|
-
| user:admin:rm igorbonadio | Now, user igorbonadio is not an administrator |
|
|
68
|
-
| repo:add tmp/p-lang.git | Repository tmp/p-lang.git created successfully. |
|
|
69
|
-
| repo:add tmp/p-lang.git igorbonadio | Repository tmp/p-lang.git created successfully. |
|
|
70
|
-
| repo:add tmp/p-lang.git igorbonadio jessicaeto | Repository tmp/p-lang.git created successfully. |
|
|
71
|
-
| repo:rm tmp/jeka.git | Repository tmp/jeka.git removed successfully. |
|
|
72
|
-
| repo:read:add tmp/gritano.git jessicaeto | User jessicaeto has read access to tmp/gritano.git. |
|
|
73
|
-
| repo:write:add tmp/gritano.git jessicaeto | User jessicaeto has write access to tmp/gritano.git. |
|
|
74
|
-
| repo:read:rm tmp/jeka.git igorbonadio | User igorbonadio has not read access to tmp/jeka.git. |
|
|
75
|
-
| repo:write:rm tmp/gritano.git igorbonadio | User igorbonadio has not write access to tmp/gritano.git. |
|
|
76
|
-
| user:add igorbonadio | error: Login has already been taken. |
|
|
77
|
-
| user:rm jose | error: User jose could not be removed. |
|
|
78
|
-
| user:key:add userrr marvino | error: Key could not be added. |
|
|
79
|
-
| user:key:rm igorbonadio marvino | error: Key could not be removed. |
|
|
80
|
-
| user:key:list arybonadio | error: User arybonadio is not registered |
|
|
81
|
-
| user:repo:list arybonadio | error: User arybonadio is not registered |
|
|
82
|
-
| user:admin:add arybonadio | error: User arybonadio could not be modified |
|
|
83
|
-
| user:admin:rm arybonadio | error: User arybonadio could not be modified |
|
|
84
|
-
| repo:add tmp/jeka.git | error: Repository tmp/jeka.git could not be created. |
|
|
85
|
-
| repo:rm tmp/p-lang.git | error: Repository tmp/p-lang.git could not be removed. |
|
|
86
|
-
| repo:read:add tmp/gritano.git arybonadio | error: An error occurred. Permissions was not modified. |
|
|
87
|
-
| repo:read:add tmp/p-lang.git jessicaeto | error: An error occurred. Permissions was not modified. |
|
|
88
|
-
| repo:write:add tmp/gritano.git arybonadio | error: An error occurred. Permissions was not modified. |
|
|
89
|
-
| repo:write:add tmp/p-lang.git jessicaeto | error: An error occurred. Permissions was not modified. |
|
|
90
|
-
| repo:read:rm tmp/jeka.git aribonadio | error: An error occurred. Permissions was not modified. |
|
|
91
|
-
| repo:read:rm tmp/p-lang.git igorbonadio | error: An error occurred. Permissions was not modified. |
|
|
92
|
-
| repo:write:rm tmp/gritano.git arybonadio | error: An error occurred. Permissions was not modified. |
|
|
93
|
-
| repo:write:rm tmp/p-lang.git igorbonadio | error: An error occurred. Permissions was not modified. |
|
|
94
|
-
| repo:user:list tmp/ruby.git | error: Repository tmp/ruby.git doesn't exist. |
|
|
95
|
-
|
|
96
|
-
Scenario Outline: Admin via ssh
|
|
97
|
-
Given I start the CLI with "igorbonadio"
|
|
98
|
-
When I send "<command>" to the CLI.check
|
|
99
|
-
Then CLI should return "<result>"
|
|
100
|
-
Examples:
|
|
101
|
-
| command | result |
|
|
102
|
-
| version | v0.5.0 |
|
|
103
|
-
| key:add keyname | Key added successfully. |
|
|
104
|
-
| key:rm eva | Key removed successfully. |
|
|
105
|
-
| key:rm keyname | error: Key could not be removed. |
|
|
106
|
-
| admin:user:add jose | User jose added. |
|
|
107
|
-
| admin:user:key:add igorbonadio marvin | Key added successfully. |
|
|
108
|
-
| admin:user:key:rm igorbonadio eva | Key removed successfully. |
|
|
109
|
-
| admin:user:rm igorbonadio | User igorbonadio removed. |
|
|
110
|
-
| admin:user:admin:add igorbonadio | Now, user igorbonadio is an administrator |
|
|
111
|
-
| admin:user:admin:rm igorbonadio | Now, user igorbonadio is not an administrator |
|
|
112
|
-
| admin:repo:add tmp/p-lang.git | Repository tmp/p-lang.git created successfully. |
|
|
113
|
-
| admin:repo:add tmp/p-lang.git igorbonadio | Repository tmp/p-lang.git created successfully. |
|
|
114
|
-
| admin:repo:add tmp/p-lang.git igorbonadio jessicaeto | Repository tmp/p-lang.git created successfully. |
|
|
115
|
-
| admin:repo:rm tmp/jeka.git | Repository tmp/jeka.git removed successfully. |
|
|
116
|
-
| admin:repo:read:add tmp/gritano.git jessicaeto | User jessicaeto has read access to tmp/gritano.git. |
|
|
117
|
-
| admin:repo:write:add tmp/gritano.git jessicaeto | User jessicaeto has write access to tmp/gritano.git. |
|
|
118
|
-
| admin:repo:read:rm tmp/jeka.git igorbonadio | User igorbonadio has not read access to tmp/jeka.git. |
|
|
119
|
-
| admin:repo:write:rm tmp/gritano.git igorbonadio | User igorbonadio has not write access to tmp/gritano.git. |
|
|
120
|
-
| admin:user:add igorbonadio | error: Login has already been taken. |
|
|
121
|
-
| admin:user:rm jose | error: User jose could not be removed. |
|
|
122
|
-
| admin:user:key:add userrr marvino | error: Key could not be added. |
|
|
123
|
-
| admin:user:key:rm igorbonadio marvino | error: Key could not be removed. |
|
|
124
|
-
| admin:user:key:list arybonadio | error: User arybonadio is not registered |
|
|
125
|
-
| admin:user:repo:list arybonadio | error: User arybonadio is not registered |
|
|
126
|
-
| admin:user:admin:add arybonadio | error: User arybonadio could not be modified |
|
|
127
|
-
| admin:user:admin:rm arybonadio | error: User arybonadio could not be modified |
|
|
128
|
-
| admin:repo:add tmp/jeka.git | error: Repository tmp/jeka.git could not be created. |
|
|
129
|
-
| admin:repo:rm tmp/p-lang.git | error: Repository tmp/p-lang.git could not be removed. |
|
|
130
|
-
| admin:repo:read:add tmp/gritano.git arybonadio | error: An error occurred. Permissions was not modified. |
|
|
131
|
-
| admin:repo:read:add tmp/p-lang.git jessicaeto | error: An error occurred. Permissions was not modified. |
|
|
132
|
-
| admin:repo:write:add tmp/gritano.git arybonadio | error: An error occurred. Permissions was not modified. |
|
|
133
|
-
| admin:repo:write:add tmp/p-lang.git jessicaeto | error: An error occurred. Permissions was not modified. |
|
|
134
|
-
| admin:repo:read:rm tmp/jeka.git aribonadio | error: An error occurred. Permissions was not modified. |
|
|
135
|
-
| admin:repo:read:rm tmp/p-lang.git igorbonadio | error: An error occurred. Permissions was not modified. |
|
|
136
|
-
| admin:repo:write:rm tmp/gritano.git arybonadio | error: An error occurred. Permissions was not modified. |
|
|
137
|
-
| admin:repo:write:rm tmp/p-lang.git igorbonadio | error: An error occurred. Permissions was not modified. |
|
|
138
|
-
| admin:repo:user:list tmp/ruby.git | error: Repository tmp/ruby.git doesn't exist. |
|
|
139
|
-
|
|
140
|
-
Scenario Outline: Normal user via ssh
|
|
141
|
-
Given I start the CLI with "jessicaeto"
|
|
142
|
-
When I send "<command>" to the CLI.check
|
|
143
|
-
Then CLI should return "<result>"
|
|
144
|
-
Examples:
|
|
145
|
-
| command | result |
|
|
146
|
-
| version | v0.5.0 |
|
|
147
|
-
| key:add keyname | Key added successfully. |
|
|
148
|
-
| key:rm hal | Key removed successfully. |
|
|
149
|
-
| key:rm keyname | error: Key could not be removed. |
|
|
150
|
-
| admin:user:add jose | error: access denied |
|
|
151
|
-
| admin:user:key:add igorbonadio marvin | error: access denied |
|
|
152
|
-
| admin:user:key:rm igorbonadio eva | error: access denied |
|
|
153
|
-
| admin:user:rm igorbonadio | error: access denied |
|
|
154
|
-
| admin:user:admin:add igorbonadio | error: access denied |
|
|
155
|
-
| admin:user:admin:rm igorbonadio | error: access denied |
|
|
156
|
-
| admin:repo:add tmp/p-lang.git | error: access denied |
|
|
157
|
-
| admin:repo:add tmp/p-lang.git igorbonadio | error: access denied |
|
|
158
|
-
| admin:repo:add tmp/p-lang.git igorbonadio jessicaeto | error: access denied |
|
|
159
|
-
| admin:repo:rm tmp/jeka.git | error: access denied |
|
|
160
|
-
| admin:repo:read:add tmp/gritano.git jessicaeto | error: access denied |
|
|
161
|
-
| admin:repo:write:add tmp/gritano.git jessicaeto | error: access denied |
|
|
162
|
-
| admin:repo:read:rm tmp/jeka.git igorbonadio | error: access denied |
|
|
163
|
-
| admin:repo:write:rm tmp/gritano.git igorbonadio | error: access denied |
|
|
164
|
-
| admin:user:add igorbonadio | error: access denied |
|
|
165
|
-
| admin:user:rm jose | error: access denied |
|
|
166
|
-
| admin:user:key:add userrr marvino | error: access denied |
|
|
167
|
-
| admin:user:key:rm igorbonadio marvino | error: access denied |
|
|
168
|
-
| admin:user:key:list arybonadio | error: access denied |
|
|
169
|
-
| admin:user:repo:list arybonadio | error: access denied |
|
|
170
|
-
| admin:user:admin:add arybonadio | error: access denied |
|
|
171
|
-
| admin:user:admin:rm arybonadio | error: access denied |
|
|
172
|
-
| admin:repo:add tmp/jeka.git | error: access denied |
|
|
173
|
-
| admin:repo:rm tmp/p-lang.git | error: access denied |
|
|
174
|
-
| admin:repo:read:add tmp/gritano.git arybonadio | error: access denied |
|
|
175
|
-
| admin:repo:read:add tmp/p-lang.git jessicaeto | error: access denied |
|
|
176
|
-
| admin:repo:write:add tmp/gritano.git arybonadio | error: access denied |
|
|
177
|
-
| admin:repo:write:add tmp/p-lang.git jessicaeto | error: access denied |
|
|
178
|
-
| admin:repo:read:rm tmp/jeka.git aribonadio | error: access denied |
|
|
179
|
-
| admin:repo:read:rm tmp/p-lang.git igorbonadio | error: access denied |
|
|
180
|
-
| admin:repo:write:rm tmp/gritano.git arybonadio | error: access denied |
|
|
181
|
-
| admin:repo:write:rm tmp/p-lang.git igorbonadio | error: access denied |
|
|
182
|
-
| admin:repo:user:list tmp/ruby.git | error: access denied |
|
|
183
|
-
|
data/features/console.feature
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
Feature: Console operations
|
|
2
|
-
In order to use gritano via console
|
|
3
|
-
As a user
|
|
4
|
-
I want to execute some commands
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given the following users exist:
|
|
8
|
-
| login | admin |
|
|
9
|
-
| igorbonadio | true |
|
|
10
|
-
| jessicaeto | false |
|
|
11
|
-
|
|
12
|
-
And the following keys exist:
|
|
13
|
-
| login | key |
|
|
14
|
-
| igorbonadio | eva |
|
|
15
|
-
| jessicaeto | hal |
|
|
16
|
-
|
|
17
|
-
And the following repositories exist:
|
|
18
|
-
| name |
|
|
19
|
-
| tmp/gritano.git |
|
|
20
|
-
| tmp/jeka.git |
|
|
21
|
-
|
|
22
|
-
And the following permissions exist:
|
|
23
|
-
| user | repo | access |
|
|
24
|
-
| igorbonadio | tmp/gritano.git | read |
|
|
25
|
-
| igorbonadio | tmp/gritano.git | write |
|
|
26
|
-
| igorbonadio | tmp/jeka.git | read |
|
|
27
|
-
| jessicaeto | tmp/jeka.git | read |
|
|
28
|
-
| jessicaeto | tmp/jeka.git | write |
|
|
29
|
-
|
|
30
|
-
Scenario: Get help
|
|
31
|
-
Given I start the gritano console
|
|
32
|
-
When I execute "help"
|
|
33
|
-
Then I should see the help
|
|
34
|
-
|
|
35
|
-
Scenario: Check git
|
|
36
|
-
Given I start the gritano console but gritano is not installed
|
|
37
|
-
When I execute a command
|
|
38
|
-
Then I should see an error
|
|
39
|
-
|
|
40
|
-
Scenario: Install
|
|
41
|
-
Given I start the gritano console but gritano is not installed
|
|
42
|
-
When I install it
|
|
43
|
-
Then I should see a success message
|
|
44
|
-
|
|
45
|
-
Scenario Outline: Add user
|
|
46
|
-
Given I start the gritano console
|
|
47
|
-
When I execute "<command>"
|
|
48
|
-
Then I should see a <result> message
|
|
49
|
-
Examples:
|
|
50
|
-
| command | result |
|
|
51
|
-
| version | success |
|
|
52
|
-
| user:add jose | success |
|
|
53
|
-
| user:key:add igorbonadio marvin | success |
|
|
54
|
-
| user:key:rm igorbonadio eva | success |
|
|
55
|
-
| user:rm igorbonadio | success |
|
|
56
|
-
| user:list | success |
|
|
57
|
-
| user:key:list igorbonadio | success |
|
|
58
|
-
| user:repo:list igorbonadio | success |
|
|
59
|
-
| user:admin:add igorbonadio | success |
|
|
60
|
-
| user:admin:rm igorbonadio | success |
|
|
61
|
-
| repo:add tmp/p-lang.git | success |
|
|
62
|
-
| repo:add tmp/p-lang.git igorbonadio | success |
|
|
63
|
-
| repo:add tmp/p-lang.git igorbonadio jessicaeto | success |
|
|
64
|
-
| repo:rm tmp/jeka.git | success |
|
|
65
|
-
| repo:read:add tmp/gritano.git jessicaeto | success |
|
|
66
|
-
| repo:write:add tmp/gritano.git jessicaeto | success |
|
|
67
|
-
| repo:read:rm tmp/jeka.git igorbonadio | success |
|
|
68
|
-
| repo:write:rm tmp/gritano.git igorbonadio | success |
|
|
69
|
-
| repo:list | success |
|
|
70
|
-
| repo:user:list tmp/jeka.git | success |
|
|
71
|
-
| user:add igorbonadio | error |
|
|
72
|
-
| user:rm jose | error |
|
|
73
|
-
| user:key:add userrr marvino | error |
|
|
74
|
-
| user:key:rm igorbonadio marvino | error |
|
|
75
|
-
| user:key:list arybonadio | error |
|
|
76
|
-
| user:repo:list arybonadio | error |
|
|
77
|
-
| user:admin:add arybonadio | error |
|
|
78
|
-
| user:admin:rm arybonadio | error |
|
|
79
|
-
| repo:add tmp/jeka.git | error |
|
|
80
|
-
| repo:rm tmp/p-lang.git | error |
|
|
81
|
-
| repo:read:add tmp/gritano.git arybonadio | error |
|
|
82
|
-
| repo:read:add tmp/p-lang.git jessicaeto | error |
|
|
83
|
-
| repo:write:add tmp/gritano.git arybonadio | error |
|
|
84
|
-
| repo:write:add tmp/p-lang.git jessicaeto | error |
|
|
85
|
-
| repo:read:rm tmp/jeka.git aribonadio | error |
|
|
86
|
-
| repo:read:rm tmp/p-lang.git igorbonadio | error |
|
|
87
|
-
| repo:write:rm tmp/gritano.git arybonadio | error |
|
|
88
|
-
| repo:write:rm tmp/p-lang.git igorbonadio | error |
|
|
89
|
-
| repo:user:list tmp/ruby.git | error |
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
ssh git@host.com [command]
|
|
2
|
-
|
|
3
|
-
Examples:
|
|
4
|
-
ssh git@host.com version
|
|
5
|
-
ssh git@host.com help
|
|
6
|
-
ssh git@host.com repo:list
|
|
7
|
-
ssh git@host.com key:list
|
|
8
|
-
ssh git@host.com key:add keyname < key.pub
|
|
9
|
-
ssh git@host.com key:rm keyname
|
|
10
|
-
ssh git@host.com admin:help
|
|
11
|
-
|
|
12
|
-
--
|
|
13
|
-
v0.5.0
|
data/features/data/help-test.txt
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
test [command]
|
|
2
|
-
|
|
3
|
-
Examples:
|
|
4
|
-
test help
|
|
5
|
-
test version
|
|
6
|
-
test setup:prepare
|
|
7
|
-
test setup:install
|
|
8
|
-
test user:list
|
|
9
|
-
test user:key:list username
|
|
10
|
-
test user:repo:list username
|
|
11
|
-
test user:add username
|
|
12
|
-
test user:rm username
|
|
13
|
-
test user:key:add username keyname < key.pub
|
|
14
|
-
test user:key:rm username keyname
|
|
15
|
-
test user:admin:add username
|
|
16
|
-
test user:admin:rm username
|
|
17
|
-
test repo:list
|
|
18
|
-
test repo:add reponame.git [username1 username2 ...]*
|
|
19
|
-
test repo:user:list reponame.git
|
|
20
|
-
test repo:rm reponame.git
|
|
21
|
-
test repo:read:add reponame.git username
|
|
22
|
-
test repo:write:add reponame.git username
|
|
23
|
-
test repo:read:rm reponame.git username
|
|
24
|
-
test repo:write:rm reponame.git username
|
|
25
|
-
|
|
26
|
-
--
|
|
27
|
-
v0.5.0
|
data/features/data/help.txt
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
gritano [command]
|
|
2
|
-
|
|
3
|
-
Examples:
|
|
4
|
-
gritano help
|
|
5
|
-
gritano version
|
|
6
|
-
gritano setup:prepare
|
|
7
|
-
gritano setup:install
|
|
8
|
-
gritano user:list
|
|
9
|
-
gritano user:key:list username
|
|
10
|
-
gritano user:repo:list username
|
|
11
|
-
gritano user:add username
|
|
12
|
-
gritano user:rm username
|
|
13
|
-
gritano user:key:add username keyname < key.pub
|
|
14
|
-
gritano user:key:rm username keyname
|
|
15
|
-
gritano user:admin:add username
|
|
16
|
-
gritano user:admin:rm username
|
|
17
|
-
gritano repo:list
|
|
18
|
-
gritano repo:add reponame.git [username1 username2 ...]*
|
|
19
|
-
gritano repo:user:list reponame.git
|
|
20
|
-
gritano repo:rm reponame.git
|
|
21
|
-
gritano repo:read:add reponame.git username
|
|
22
|
-
gritano repo:write:add reponame.git username
|
|
23
|
-
gritano repo:read:rm reponame.git username
|
|
24
|
-
gritano repo:write:rm reponame.git username
|
|
25
|
-
|
|
26
|
-
--
|
|
27
|
-
v0.5.0
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
command="gritano-check igorbonadio" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFW6Du1iXTyo44g+7R4DNgm4P1fQIiW/iGRFwHJTV1jaPX74VwNq7tC1kBSdPS4+Q9f24wJC1MhWzLxB40BFdqn519JhhV+/1IWZdY/UJ0D5KiUw38U7QPzMM2uA0l0JeB+FwZAl/Oiu/ty3Fq0JsuqsolehIbRRLeiJiwrn1XC5LdhA81b2WBzM8SSFgAaXPimuLBXYJyYrcTR5SXczZvgkWojQEvk7wCavvDzFpy/DtXUFv0ZwUJILhN23cW3mg1IsGMXg7hOQfp67J6cX212YYXhDe+5sI3UpFWKCHcyxv3EdL8rQ/3DLSELkTwWHPRqDhn1wnPmfJlj8ZfbpyX git2@debian-ror
|
|
2
|
-
command="gritano-check jessicaeto" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ4WqIu8XwnHwBz220/1Kbgi1IR7aanq8hW1dB0LD2dmCSyojBvduoht4p7+3k2R6A5y2DZvTetzEios9OFUnCC+4U8g2GTc+zGM0W+msCb6yWnpfYaIwHVuFtsid7lyWOCEYLi2WbNZxfAx0PbwIcHMoYWc9sil3R/YwLGorvQDGH0rFcf6BOMzVMDRD0yPvuN3xgAtBOxrSRl0U4dH+3fAQ9oKLePmouzLrrKvRmyVwl/rHNod8ae5VmmAalC+wXIsiQAI92Hwew757HzhY45wWtjOsdBBf45Psv7BkB1OqGxMfwysO5iwhY3HPTJs70K22K2DARpejFq8Bd8PyV git2@debian-ror
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFW6Du1iXTyo44g+7R4DNgm4P1fQIiW/iGRFwHJTV1jaPX74VwNq7tC1kBSdPS4+Q9f24wJC1MhWzLxB40BFdqn519JhhV+/1IWZdY/UJ0D5KiUw38U7QPzMM2uA0l0JeB+FwZAl/Oiu/ty3Fq0JsuqsolehIbRRLeiJiwrn1XC5LdhA81b2WBzM8SSFgAaXPimuLBXYJyYrcTR5SXczZvgkWojQEvk7wCavvDzFpy/DtXUFv0ZwUJILhN23cW3mg1IsGMXg7hOQfp67J6cX212YYXhDe+5sI3UpFWKCHcyxv3EdL8rQ/3DLSELkTwWHPRqDhn1wnPmfJlj8ZfbpyX git2@debian-ror
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
command="gritano-check igorbonadio" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFW6Du1iXTyo44g+7R4DNgm4P1fQIiW/iGRFwHJTV1jaPX74VwNq7tC1kBSdPS4+Q9f24wJC1MhWzLxB40BFdqn519JhhV+/1IWZdY/UJ0D5KiUw38U7QPzMM2uA0l0JeB+FwZAl/Oiu/ty3Fq0JsuqsolehIbRRLeiJiwrn1XC5LdhA81b2WBzM8SSFgAaXPimuLBXYJyYrcTR5SXczZvgkWojQEvk7wCavvDzFpy/DtXUFv0ZwUJILhN23cW3mg1IsGMXg7hOQfp67J6cX212YYXhDe+5sI3UpFWKCHcyxv3EdL8rQ/3DLSELkTwWHPRqDhn1wnPmfJlj8ZfbpyX git2@debian-ror
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ4WqIu8XwnHwBz220/1Kbgi1IR7aanq8hW1dB0LD2dmCSyojBvduoht4p7+3k2R6A5y2DZvTetzEios9OFUnCC+4U8g2GTc+zGM0W+msCb6yWnpfYaIwHVuFtsid7lyWOCEYLi2WbNZxfAx0PbwIcHMoYWc9sil3R/YwLGorvQDGH0rFcf6BOMzVMDRD0yPvuN3xgAtBOxrSRl0U4dH+3fAQ9oKLePmouzLrrKvRmyVwl/rHNod8ae5VmmAalC+wXIsiQAI92Hwew757HzhY45wWtjOsdBBf45Psv7BkB1OqGxMfwysO5iwhY3HPTJs70K22K2DARpejFq8Bd8PyV git2@debian-ror
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
command="gritano-check jessicaeto" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ4WqIu8XwnHwBz220/1Kbgi1IR7aanq8hW1dB0LD2dmCSyojBvduoht4p7+3k2R6A5y2DZvTetzEios9OFUnCC+4U8g2GTc+zGM0W+msCb6yWnpfYaIwHVuFtsid7lyWOCEYLi2WbNZxfAx0PbwIcHMoYWc9sil3R/YwLGorvQDGH0rFcf6BOMzVMDRD0yPvuN3xgAtBOxrSRl0U4dH+3fAQ9oKLePmouzLrrKvRmyVwl/rHNod8ae5VmmAalC+wXIsiQAI92Hwew757HzhY45wWtjOsdBBf45Psv7BkB1OqGxMfwysO5iwhY3HPTJs70K22K2DARpejFq8Bd8PyV git2@debian-ror
|
data/features/help.feature
DELETED
data/features/keys.feature
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
Feature: Keys
|
|
2
|
-
In Order to restrict access to repositories
|
|
3
|
-
As Gritano
|
|
4
|
-
I want to manage user's keys
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given the following users exist:
|
|
8
|
-
| login |
|
|
9
|
-
| igorbonadio |
|
|
10
|
-
| jessicaeto |
|
|
11
|
-
|
|
12
|
-
Scenario Outline: Add user key
|
|
13
|
-
Given I add "<key>" key to "<user>"
|
|
14
|
-
When I generate the authorized_keys
|
|
15
|
-
Then I should see "<authorized_keys>" authorized_keys
|
|
16
|
-
Examples:
|
|
17
|
-
| user | key | authorized_keys |
|
|
18
|
-
| igorbonadio | igorbonadio.pub | igorbonadio_authorized_keys |
|
|
19
|
-
| jessicaeto | jessicaeto.pub | jessicaeto_authorized_keys |
|
|
20
|
-
|
|
21
|
-
Scenario: Generate autorized_keys
|
|
22
|
-
Given I add "igorbonadio.pub" key to "igorbonadio"
|
|
23
|
-
And I add "jessicaeto.pub" key to "jessicaeto"
|
|
24
|
-
When I generate the authorized_keys
|
|
25
|
-
Then I should see "full_authorized_keys" authorized_keys
|
|
26
|
-
|
|
27
|
-
Scenario: Duplicated keys
|
|
28
|
-
Given I add "igorbonadio.pub" key to "igorbonadio"
|
|
29
|
-
When I add "igorbonadio.pub" key to "igorbonadio"
|
|
30
|
-
Then I should see that "igorbonadio" has only one key
|
|
31
|
-
|
data/features/polices.feature
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
Feature: Policies
|
|
2
|
-
In order to restrict access to repositories
|
|
3
|
-
As Gritano
|
|
4
|
-
I want to create policies
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given the following users exist:
|
|
8
|
-
| login |
|
|
9
|
-
| igorbonadio |
|
|
10
|
-
| jessicaeto |
|
|
11
|
-
|
|
12
|
-
And the following repositories exist:
|
|
13
|
-
| name |
|
|
14
|
-
| tmp/gritano.git |
|
|
15
|
-
| tmp/jeka.git |
|
|
16
|
-
|
|
17
|
-
And the following permissions exist:
|
|
18
|
-
| user | repo | access |
|
|
19
|
-
| igorbonadio | tmp/gritano.git | read |
|
|
20
|
-
| igorbonadio | tmp/gritano.git | write |
|
|
21
|
-
| igorbonadio | tmp/jeka.git | read |
|
|
22
|
-
| jessicaeto | tmp/jeka.git | read |
|
|
23
|
-
| jessicaeto | tmp/jeka.git | write |
|
|
24
|
-
|
|
25
|
-
Scenario Outline: Create a new user
|
|
26
|
-
Given I create a new user called "<user>"
|
|
27
|
-
When I check if "<user>" has <access> access to "<repo>"
|
|
28
|
-
Then I should see that the access is <result>
|
|
29
|
-
Examples:
|
|
30
|
-
| user | access | repo | result |
|
|
31
|
-
| arybonadio | read | tmp/gritano.git | denied |
|
|
32
|
-
| arybonadio | write | tmp/gritano.git | denied |
|
|
33
|
-
|
|
34
|
-
Scenario Outline: Create a new repository
|
|
35
|
-
Given I create a new repository called "<repo>" to "<user>"
|
|
36
|
-
Then I should see that only "<user>" has access to "<repo>"
|
|
37
|
-
Examples:
|
|
38
|
-
| user | repo |
|
|
39
|
-
| igorbonadio | tmp/p-lang.git |
|
|
40
|
-
| jessicaeto | tmp/pabel.git |
|
|
41
|
-
|
|
42
|
-
Scenario Outline: Edit access permission
|
|
43
|
-
Given I <op> "<user>" <permission> access to "<repo>"
|
|
44
|
-
When I check if "<user>" has <access> access to "<repo>"
|
|
45
|
-
Then I should see that the access is <result>
|
|
46
|
-
Examples:
|
|
47
|
-
| op | user | permission | repo | access | result |
|
|
48
|
-
| add | igorbonadio | read | tmp/jeka.git | read | allowed |
|
|
49
|
-
| add | igorbonadio | read | tmp/jeka.git | write | denied |
|
|
50
|
-
| add | igorbonadio | write | tmp/jeka.git | read | allowed |
|
|
51
|
-
| add | igorbonadio | write | tmp/jeka.git | write | allowed |
|
|
52
|
-
| remove | jessicaeto | read | tmp/jeka.git | read | denied |
|
|
53
|
-
| remove | jessicaeto | read | tmp/jeka.git | write | allowed |
|
|
54
|
-
| remove | jessicaeto | write | tmp/jeka.git | read | allowed |
|
|
55
|
-
| remove | jessicaeto | write | tmp/jeka.git | write | denied |
|
data/features/ssh.feature
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
Feature: SSH operations
|
|
2
|
-
In order to use gritano via ssh
|
|
3
|
-
As a user
|
|
4
|
-
I want to execute some commands
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given the following users exist:
|
|
8
|
-
| login | admin |
|
|
9
|
-
| igorbonadio | true |
|
|
10
|
-
| jessicaeto | false |
|
|
11
|
-
|
|
12
|
-
And the following keys exist:
|
|
13
|
-
| login | key |
|
|
14
|
-
| igorbonadio | eva |
|
|
15
|
-
| jessicaeto | hal |
|
|
16
|
-
|
|
17
|
-
And the following repositories exist:
|
|
18
|
-
| name |
|
|
19
|
-
| tmp/gritano.git |
|
|
20
|
-
| tmp/jeka.git |
|
|
21
|
-
|
|
22
|
-
And the following permissions exist:
|
|
23
|
-
| user | repo | access |
|
|
24
|
-
| igorbonadio | tmp/gritano.git | read |
|
|
25
|
-
| igorbonadio | tmp/gritano.git | write |
|
|
26
|
-
| igorbonadio | tmp/jeka.git | read |
|
|
27
|
-
| jessicaeto | tmp/jeka.git | read |
|
|
28
|
-
| jessicaeto | tmp/jeka.git | write |
|
|
29
|
-
|
|
30
|
-
Scenario: Git read access
|
|
31
|
-
Given I start the gritano-check console with "igorbonadio"
|
|
32
|
-
When I try to get tmp/gritano.git
|
|
33
|
-
Then I should get it
|
|
34
|
-
|
|
35
|
-
Scenario: Git write access
|
|
36
|
-
Given I start the gritano-check console with "igorbonadio"
|
|
37
|
-
When I try to send data to tmp/gritano.git
|
|
38
|
-
Then I should send it
|
|
39
|
-
|
|
40
|
-
Scenario: Error
|
|
41
|
-
Given I start the gritano-check console with "igorbonadio"
|
|
42
|
-
When I try to send an invalid command
|
|
43
|
-
Then I should see an exception
|
|
44
|
-
|
|
45
|
-
Scenario Outline: Admin via ssh
|
|
46
|
-
Given I start the gritano-check console with "igorbonadio"
|
|
47
|
-
When I execute "<command>" via ssh
|
|
48
|
-
Then I should see a <result> message
|
|
49
|
-
Examples:
|
|
50
|
-
| command | result |
|
|
51
|
-
| version | success |
|
|
52
|
-
| help | success |
|
|
53
|
-
| repo:list | success |
|
|
54
|
-
| key:list | success |
|
|
55
|
-
| key:add keyname | success |
|
|
56
|
-
| key:rm eva | success |
|
|
57
|
-
| admin:help | success |
|
|
58
|
-
| key:rm keyname | error |
|
|
59
|
-
| admin:user:add jose | success |
|
|
60
|
-
| admin:user:key:add igorbonadio marvin | success |
|
|
61
|
-
| admin:user:key:rm igorbonadio eva | success |
|
|
62
|
-
| admin:user:rm igorbonadio | success |
|
|
63
|
-
| admin:user:list | success |
|
|
64
|
-
| admin:user:key:list igorbonadio | success |
|
|
65
|
-
| admin:user:repo:list igorbonadio | success |
|
|
66
|
-
| admin:user:admin:add igorbonadio | success |
|
|
67
|
-
| admin:user:admin:rm igorbonadio | success |
|
|
68
|
-
| admin:repo:add tmp/p-lang.git | success |
|
|
69
|
-
| admin:repo:add tmp/p-lang.git igorbonadio | success |
|
|
70
|
-
| admin:repo:add tmp/p-lang.git igorbonadio jessicaeto | success |
|
|
71
|
-
| admin:repo:rm tmp/jeka.git | success |
|
|
72
|
-
| admin:repo:read:add tmp/gritano.git jessicaeto | success |
|
|
73
|
-
| admin:repo:write:add tmp/gritano.git jessicaeto | success |
|
|
74
|
-
| admin:repo:read:rm tmp/jeka.git igorbonadio | success |
|
|
75
|
-
| admin:repo:write:rm tmp/gritano.git igorbonadio | success |
|
|
76
|
-
| admin:repo:list | success |
|
|
77
|
-
| admin:repo:user:list tmp/jeka.git | success |
|
|
78
|
-
| admin:user:add igorbonadio | error |
|
|
79
|
-
| admin:user:rm jose | error |
|
|
80
|
-
| admin:user:key:add userrr marvino | error |
|
|
81
|
-
| admin:user:key:rm igorbonadio marvino | error |
|
|
82
|
-
| admin:user:key:list arybonadio | error |
|
|
83
|
-
| admin:user:repo:list arybonadio | error |
|
|
84
|
-
| admin:user:admin:add arybonadio | error |
|
|
85
|
-
| admin:user:admin:rm arybonadio | error |
|
|
86
|
-
| admin:repo:add tmp/jeka.git | error |
|
|
87
|
-
| admin:repo:rm tmp/p-lang.git | error |
|
|
88
|
-
| admin:repo:read:add tmp/gritano.git arybonadio | error |
|
|
89
|
-
| admin:repo:read:add tmp/p-lang.git jessicaeto | error |
|
|
90
|
-
| admin:repo:write:add tmp/gritano.git arybonadio | error |
|
|
91
|
-
| admin:repo:write:add tmp/p-lang.git jessicaeto | error |
|
|
92
|
-
| admin:repo:read:rm tmp/jeka.git aribonadio | error |
|
|
93
|
-
| admin:repo:read:rm tmp/p-lang.git igorbonadio | error |
|
|
94
|
-
| admin:repo:write:rm tmp/gritano.git arybonadio | error |
|
|
95
|
-
| admin:repo:write:rm tmp/p-lang.git igorbonadio | error |
|
|
96
|
-
| admin:repo:user:list tmp/ruby.git | error |
|
|
97
|
-
|
|
98
|
-
Scenario Outline: Normal user via ssh
|
|
99
|
-
Given I start the gritano-check console with "jessicaeto"
|
|
100
|
-
When I execute "<command>" via ssh
|
|
101
|
-
Then I should see a <result> message
|
|
102
|
-
Examples:
|
|
103
|
-
| command | result |
|
|
104
|
-
| version | success |
|
|
105
|
-
| help | success |
|
|
106
|
-
| repo:list | success |
|
|
107
|
-
| key:list | success |
|
|
108
|
-
| key:add keyname | success |
|
|
109
|
-
| key:rm hal | success |
|
|
110
|
-
| admin:help | success |
|
|
111
|
-
| key:rm keyname | error |
|
|
112
|
-
| admin:user:add jose | error |
|
|
113
|
-
| admin:user:key:add igorbonadio marvin | error |
|
|
114
|
-
| admin:user:key:rm igorbonadio eva | error |
|
|
115
|
-
| admin:user:rm igorbonadio | error |
|
|
116
|
-
| admin:user:list | error |
|
|
117
|
-
| admin:user:key:list igorbonadio | error |
|
|
118
|
-
| admin:user:repo:list igorbonadio | error |
|
|
119
|
-
| admin:user:admin:add igorbonadio | error |
|
|
120
|
-
| admin:user:admin:rm igorbonadio | error |
|
|
121
|
-
| admin:repo:add tmp/p-lang.git | error |
|
|
122
|
-
| admin:repo:add tmp/p-lang.git igorbonadio | error |
|
|
123
|
-
| admin:repo:add tmp/p-lang.git igorbonadio jessicaeto | error |
|
|
124
|
-
| admin:repo:rm tmp/jeka.git | error |
|
|
125
|
-
| admin:repo:read:add tmp/gritano.git jessicaeto | error |
|
|
126
|
-
| admin:repo:write:add tmp/gritano.git jessicaeto | error |
|
|
127
|
-
| admin:repo:read:rm tmp/jeka.git igorbonadio | error |
|
|
128
|
-
| admin:repo:write:rm tmp/gritano.git igorbonadio | error |
|
|
129
|
-
| admin:repo:list | error |
|
|
130
|
-
| admin:repo:user:list tmp/jeka.git | error |
|
|
131
|
-
| admin:user:add igorbonadio | error |
|
|
132
|
-
| admin:user:rm jose | error |
|
|
133
|
-
| admin:user:key:add userrr marvino | error |
|
|
134
|
-
| admin:user:key:rm igorbonadio marvino | error |
|
|
135
|
-
| admin:user:key:list arybonadio | error |
|
|
136
|
-
| admin:user:repo:list arybonadio | error |
|
|
137
|
-
| admin:user:admin:add arybonadio | error |
|
|
138
|
-
| admin:user:admin:rm arybonadio | error |
|
|
139
|
-
| admin:repo:add tmp/jeka.git | error |
|
|
140
|
-
| admin:repo:rm tmp/p-lang.git | error |
|
|
141
|
-
| admin:repo:read:add tmp/gritano.git arybonadio | error |
|
|
142
|
-
| admin:repo:read:add tmp/p-lang.git jessicaeto | error |
|
|
143
|
-
| admin:repo:write:add tmp/gritano.git arybonadio | error |
|
|
144
|
-
| admin:repo:write:add tmp/p-lang.git jessicaeto | error |
|
|
145
|
-
| admin:repo:read:rm tmp/jeka.git aribonadio | error |
|
|
146
|
-
| admin:repo:read:rm tmp/p-lang.git igorbonadio | error |
|
|
147
|
-
| admin:repo:write:rm tmp/gritano.git arybonadio | error |
|
|
148
|
-
| admin:repo:write:rm tmp/p-lang.git igorbonadio | error |
|
|
149
|
-
| admin:repo:user:list tmp/ruby.git | error |
|
|
150
|
-
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
Given /^I start the CLI$/ do
|
|
2
|
-
@cli = Gritano::CLI
|
|
3
|
-
@home_dir = '.'
|
|
4
|
-
@repo_dir = 'tmp'
|
|
5
|
-
@stdin = double()
|
|
6
|
-
@stdin.stub(:read).and_return("Your SSHKEY here...")
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
When /^I send "(.*?)" to the CLI\.execute$/ do |cmd|
|
|
10
|
-
@output = @cli.execute(cmd.split(' '), @stdin, @home_dir, @repo_dir)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
When /^I send "(.*?)" to the CLI\.check$/ do |cmd|
|
|
14
|
-
@output = @cli.check(cmd.split(' '), @login, @stdin, @home_dir, @repo_dir)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
Then /^CLI should return the help$/ do
|
|
19
|
-
help = File.open("features/data/help.txt").readlines.join[0..-2]
|
|
20
|
-
@output.should be == help
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
Then /^CLI should return the help\-check$/ do
|
|
24
|
-
help = File.open("features/data/help-check.txt").readlines.join[0..-2]
|
|
25
|
-
@output.should be == help
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
Given /^I start the CLI but gritano is not installed$/ do
|
|
29
|
-
@cli = Gritano::CLI
|
|
30
|
-
@home_dir = 'tmp'
|
|
31
|
-
@repo_dir = 'tmp'
|
|
32
|
-
@stdin = double()
|
|
33
|
-
@stdin.stub(:read).and_return("Your SSHKEY here...")
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
Given /^I start the CLI with "(.*?)"$/ do |login|
|
|
37
|
-
@cli = Gritano::CLI
|
|
38
|
-
@home_dir = '.'
|
|
39
|
-
@repo_dir = 'tmp'
|
|
40
|
-
@stdin = double()
|
|
41
|
-
@stdin.stub(:read).and_return("Your SSHKEY here...")
|
|
42
|
-
@login = login
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
Then /^CLI should exit$/ do
|
|
46
|
-
lambda {@cli.execute(@cmd, @stdin, @home_dir, @repo_dir)}.should raise_error SystemExit
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
When /^I send a command to the CLI\.execute$/ do
|
|
50
|
-
@cmd = ["user:list"]
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
Then /^CLI should return "(.*?)"$/ do |msg|
|
|
54
|
-
@output.should be == msg
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
When /^I try to get tmp\/gritano\.git from CLI\.check$/ do
|
|
58
|
-
Kernel.should_receive(:exec)
|
|
59
|
-
@cli.check(['git-receive-pack', 'tmp/gritano.git'], @login, @stdin, @home_dir, @repo_dir)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
When /^I try to send data to tmp\/gritano\.git from CLI\.check$/ do
|
|
63
|
-
Kernel.should_receive(:exec)
|
|
64
|
-
@cli.check(['git-upload-pack', 'tmp/gritano.git'], @login, @stdin, @home_dir, @repo_dir)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
When /^I try to send an invalid command to CLI\.check$/ do
|
|
68
|
-
@output = @cli.check(['error:error'], @login, @stdin, @home_dir, @repo_dir)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
Given /^I start the gritano console$/ do
|
|
2
|
-
stdin = double()
|
|
3
|
-
stdin.stub(:read).and_return("Your SSHKEY here...")
|
|
4
|
-
@console = Gritano::Console::Gritano.new(stdin, '.', 'tmp')
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
When /^I execute "(.*?)"$/ do |command|
|
|
8
|
-
@output = @console.execute(command.split(' '))
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
Then /^I should see a (success|error) message$/ do |result|
|
|
12
|
-
expected_output = true if result == 'success'
|
|
13
|
-
expected_output = false if result == 'error'
|
|
14
|
-
@output[0].should be == expected_output
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
Then /^I should see the help$/ do
|
|
18
|
-
help = File.open("features/data/help.txt").readlines.join[0..-2]
|
|
19
|
-
@output[1].should be == help
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
Given /^I start the gritano console but gritano is not installed$/ do
|
|
23
|
-
stdin = double()
|
|
24
|
-
stdin.stub(:read).and_return("Your SSHKEY here...")
|
|
25
|
-
FileUtils.rm_rf('tmp\.gritano')
|
|
26
|
-
@console = Gritano::Console::Gritano.new(stdin, 'tmp', 'tmp')
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
When /^I execute a command$/ do
|
|
30
|
-
@command = ['user:list']
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
Then /^I should see an error$/ do
|
|
34
|
-
lambda {@console.execute(@command)}.should raise_error SystemExit
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
When /^I install it$/ do
|
|
38
|
-
@console.execute(['setup:prepare'])
|
|
39
|
-
@output = @console.execute(['setup:install'])
|
|
40
|
-
end
|
|
41
|
-
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
When /^I set bin_name to test$/ do
|
|
2
|
-
Gritano::Console::Gritano.bin_name = "test "
|
|
3
|
-
end
|
|
4
|
-
|
|
5
|
-
Then /^gritano should show help\-test$/ do
|
|
6
|
-
help = File.open("features/data/help-test.txt").readlines.join[0..-2]
|
|
7
|
-
Gritano::Console::Gritano.help.should be == help
|
|
8
|
-
end
|
|
9
|
-
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
Given /^the following keys exist:$/ do |table|
|
|
2
|
-
table.hashes.each do |key|
|
|
3
|
-
Gritano::User.find_by_login(key['login']).keys.create(name: key["key"], key: "key")
|
|
4
|
-
end
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
Given /^I add "(.*?)" key to "(.*?)"$/ do |key, login|
|
|
8
|
-
ssh_key = File.open(File.join("features/data/keys/", key)).readlines.join
|
|
9
|
-
Gritano::User.find_by_login(login).keys.create({name: key, key: ssh_key})
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
When /^I generate the authorized_keys$/ do
|
|
13
|
-
@authorized_keys = Gritano::Key.authorized_keys
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
Then /^I should see "(.*?)" authorized_keys$/ do |authorized_keys|
|
|
17
|
-
expected_authorized_keys = File.open(File.join("features/data/keys/", authorized_keys)).readlines.join
|
|
18
|
-
@authorized_keys.should be == expected_authorized_keys
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
Then /^I should see that "(.*?)" has only one key$/ do |login|
|
|
22
|
-
Gritano::User.find_by_login(login).keys.count.should be == 1
|
|
23
|
-
end
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
Given /^the following users exist:$/ do |table|
|
|
2
|
-
table.hashes.each do |user|
|
|
3
|
-
Gritano::User.create(user)
|
|
4
|
-
end
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
Given /^the following repositories exist:$/ do |table|
|
|
8
|
-
table.hashes.each do |repo|
|
|
9
|
-
Gritano::Repository.create(repo)
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
Given /^the following permissions exist:$/ do |table|
|
|
14
|
-
table.hashes.each do |permission|
|
|
15
|
-
Gritano::User.find_by_login(permission['user'])
|
|
16
|
-
.add_access(Gritano::Repository.find_by_name(permission['repo']), permission['access'].to_sym)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
Given /^I create a new user called "(.*?)"$/ do |login|
|
|
21
|
-
@user = Gritano::User.create(login: login)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
When /^I check if "(.*?)" has (read|write) access to "(.*?)"$/ do |login, access, repo|
|
|
25
|
-
@access_result = @user.check_access(Gritano::Repository.find_by_name(repo), access.to_sym)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
Then /^I should see that the access is (denied|allowed)$/ do |result|
|
|
29
|
-
@expected_result = false if result == 'denied'
|
|
30
|
-
@expected_result = true if result == 'allowed'
|
|
31
|
-
@access_result.should be == @expected_result
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
Given /^I create a new repository called "(.*?)" to "(.*?)"$/ do |repo, login|
|
|
35
|
-
Gritano::User.find_by_login(login).create_repository(name: repo)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
Then /^I should see that only "(.*?)" has access to "(.*?)"$/ do |login, repo|
|
|
39
|
-
repository = Gritano::Repository.find_by_name(repo)
|
|
40
|
-
user = Gritano::User.find_by_login(login)
|
|
41
|
-
user.check_access(repository, :read).should be_true
|
|
42
|
-
user.check_access(repository, :write).should be_true
|
|
43
|
-
Gritano::User.all.each do |u|
|
|
44
|
-
unless u.login == user.login
|
|
45
|
-
u.check_access(repository, :read).should be_false
|
|
46
|
-
u.check_access(repository, :write).should be_false
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
Given /^I (add|remove) "(.*?)" (read|write) access to "(.*?)"$/ do |op, user, permission, repo|
|
|
52
|
-
@user = Gritano::User.find_by_login(user)
|
|
53
|
-
@user.send("#{op}_access", Gritano::Repository.find_by_name(repo), permission.to_sym)
|
|
54
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
Given /^I start the gritano\-check console with "(.*?)"$/ do |login|
|
|
2
|
-
stdin = double()
|
|
3
|
-
stdin.stub(:read).and_return("Your SSHKEY here...")
|
|
4
|
-
@console = Gritano::Console::Remote.new(stdin, '.', 'tmp')
|
|
5
|
-
@login = login
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
When /^I execute "(.*?)" via ssh$/ do |command|
|
|
9
|
-
@output = @console.execute(command.split(' ') + [@login])
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
When /^I try to get tmp\/gritano\.git$/ do
|
|
13
|
-
Kernel.should_receive(:exec)
|
|
14
|
-
@console.execute(['git-receive-pack', 'tmp/gritano.git'] + [@login])
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
Then /^I should get it$/ do
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
When /^I try to send data to tmp\/gritano\.git$/ do
|
|
21
|
-
Kernel.should_receive(:exec)
|
|
22
|
-
@console.execute(['git-upload-pack', 'tmp/gritano.git'] + [@login])
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
Then /^I should send it$/ do
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
When /^I try to send an invalid command$/ do
|
|
29
|
-
@command = ['invalid:command']
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
Then /^I should see an exception$/ do
|
|
33
|
-
lambda {@console.execute(@command + [@login])}.should raise_error NoMethodError
|
|
34
|
-
end
|
|
35
|
-
|