gritano 0.4.1 → 0.5.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.
- data/.gritano/database.yml +2 -0
- data/{tmp → .ssh}/.gitignore +1 -1
- data/README.rdoc +3 -3
- data/Rakefile +2 -2
- data/TODO +3 -1
- data/VERSION +1 -1
- data/bin/gritano +1 -96
- data/bin/gritano-check +1 -46
- data/features/cli.feature +183 -0
- data/features/console.feature +16 -0
- data/features/data/help-check.txt +13 -0
- data/features/data/help-test.txt +27 -0
- data/features/data/help.txt +27 -0
- data/features/help.feature +9 -0
- data/features/ssh.feature +150 -0
- data/features/step_definitions/cli_steps.rb +71 -0
- data/features/step_definitions/console_step.rb +28 -3
- data/features/step_definitions/help.rb +9 -0
- data/features/step_definitions/ssh_steps.rb +35 -0
- data/features/support/env.rb +4 -2
- data/gritano.gemspec +23 -10
- data/lib/gritano.rb +1 -1
- data/lib/gritano/cli.rb +33 -0
- data/lib/gritano/console.rb +18 -235
- data/lib/gritano/console/base.rb +74 -0
- data/lib/gritano/console/check.rb +83 -0
- data/lib/gritano/console/executor.rb +246 -0
- data/lib/gritano/console/gritano.rb +35 -0
- data/lib/gritano/console/installer.rb +37 -0
- data/spec/{console_spec.rb → executor_spec.rb} +24 -19
- data/spec/gritano_spec.rb +20 -0
- data/spec/installer_spec.rb +23 -0
- data/spec/spec_helper.rb +1 -1
- metadata +23 -10
- data/db/database.yml +0 -2
- data/features/command.feature +0 -32
- data/features/step_definitions/command_step.rb +0 -9
- data/lib/gritano/command.rb +0 -24
- data/spec/command_spec.rb +0 -41
data/{tmp → .ssh}/.gitignore
RENAMED
data/README.rdoc
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= Gritano v0.
|
1
|
+
= Gritano v0.5.0
|
2
2
|
|
3
3
|
Gritano is the simplest way to configure a git server over ssh. You can create repositories and manage user access using this practical tool.
|
4
4
|
|
@@ -17,7 +17,7 @@ If you are using a previous version, you should update your instalation:
|
|
17
17
|
|
18
18
|
$ gem install gritano
|
19
19
|
|
20
|
-
$ gritano
|
20
|
+
$ gritano setup:install
|
21
21
|
|
22
22
|
== Usage
|
23
23
|
|
@@ -25,7 +25,7 @@ First of all you should create a git user who will be responsible for store and
|
|
25
25
|
|
26
26
|
All you need to do to set up Gritano is
|
27
27
|
|
28
|
-
$ gritano install
|
28
|
+
$ gritano setup:prepare && gritano setup:install
|
29
29
|
|
30
30
|
After that you can add users:
|
31
31
|
|
data/Rakefile
CHANGED
@@ -56,7 +56,7 @@ require 'yaml'
|
|
56
56
|
namespace :db do
|
57
57
|
desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x"
|
58
58
|
task :migrate do
|
59
|
-
ActiveRecord::Base.establish_connection(YAML::load(File.open('
|
59
|
+
ActiveRecord::Base.establish_connection(YAML::load(File.open('.gritano/database.yml')))
|
60
60
|
ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil )
|
61
61
|
end
|
62
|
-
end
|
62
|
+
end
|
data/TODO
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/bin/gritano
CHANGED
@@ -4,99 +4,4 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
4
4
|
|
5
5
|
require 'gritano'
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
def help
|
10
|
-
puts "
|
11
|
-
gritano [command] parameters
|
12
|
-
|
13
|
-
Examples:
|
14
|
-
gritano install
|
15
|
-
gritano update
|
16
|
-
gritano user:add username
|
17
|
-
gritano user:rm username
|
18
|
-
gritano user:key:add username keyname < key.pub
|
19
|
-
gritano user:key:rm username keyname
|
20
|
-
gritano user:admin:add username
|
21
|
-
gritano user:admin:rm username
|
22
|
-
gritano user:list
|
23
|
-
gritano user:key:list username
|
24
|
-
gritano user:repo:list username
|
25
|
-
gritano repo:add reponame.git
|
26
|
-
gritano repo:add reponame.git user1 user2 user3
|
27
|
-
gritano repo:rm reponame.git
|
28
|
-
gritano repo:read:add reponame.git username
|
29
|
-
gritano repo:write:add reponame.git username
|
30
|
-
gritano repo:read:rm reponame.git username
|
31
|
-
gritano repo:write:rm reponame.git username
|
32
|
-
gritano repo:list
|
33
|
-
gritano repo:user:list reponame.git
|
34
|
-
|
35
|
-
--
|
36
|
-
v#{File.open(File.join(File.dirname(__FILE__), '..', 'VERSION')).readlines.join}"
|
37
|
-
end
|
38
|
-
|
39
|
-
def migrate
|
40
|
-
ActiveRecord::Base.establish_connection(YAML::load(File.open(File.join(Etc.getpwuid.dir, '.gritano', 'database.yml'))))
|
41
|
-
ActiveRecord::Migrator.migrate(File.join(File.dirname(__FILE__),'../db/migrate'), ENV["VERSION"] ? ENV["VERSION"].to_i : nil )
|
42
|
-
end
|
43
|
-
|
44
|
-
def install
|
45
|
-
Dir.mkdir(File.join(Etc.getpwuid.dir, '.gritano')) unless File.exist?(File.join(Etc.getpwuid.dir, '.gritano'))
|
46
|
-
Dir.mkdir(File.join(Etc.getpwuid.dir, '.ssh')) unless File.exist?(File.join(Etc.getpwuid.dir, '.ssh'))
|
47
|
-
File.open(File.join(Etc.getpwuid.dir, '.gritano', 'database.yml'), "w") do |f|
|
48
|
-
f.write("adapter: sqlite3\ndatabase: #{File.join(Etc.getpwuid.dir, '.gritano', 'database.db')}\n")
|
49
|
-
end
|
50
|
-
FileUtils.rm(File.join(Etc.getpwuid.dir, '.gritano', 'database.db')) if File.exist?(File.join(Etc.getpwuid.dir, '.gritano', 'database.db'))
|
51
|
-
migrate
|
52
|
-
end
|
53
|
-
|
54
|
-
def version
|
55
|
-
puts "v#{File.open(File.join(File.dirname(__FILE__),'../VERSION')).readlines.join}"
|
56
|
-
end
|
57
|
-
|
58
|
-
def check_git
|
59
|
-
if `which git` == ""
|
60
|
-
puts "Error: git must be installed on the local system"
|
61
|
-
exit
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def check_gritano
|
66
|
-
unless File.exist?(File.join(Etc.getpwuid.dir, '.gritano'))
|
67
|
-
puts "Error: First run 'gritano install'"
|
68
|
-
exit
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
check_git
|
73
|
-
if ARGV.length == 0
|
74
|
-
help
|
75
|
-
else
|
76
|
-
|
77
|
-
if ARGV[0] =='install'
|
78
|
-
install
|
79
|
-
elsif ARGV[0] =='update'
|
80
|
-
migrate
|
81
|
-
elsif ARGV[0] =='version'
|
82
|
-
version
|
83
|
-
elsif ARGV[0] =='help'
|
84
|
-
help
|
85
|
-
else
|
86
|
-
check_gritano
|
87
|
-
ActiveRecord::Base.establish_connection(YAML::load(File.open(File.join(Etc.getpwuid.dir, '.gritano', 'database.yml'))))
|
88
|
-
console = Gritano::Console.new(STDIN)
|
89
|
-
console.repo_path = Etc.getpwuid.dir
|
90
|
-
console.ssh_path = File.join(Etc.getpwuid.dir, '.ssh')
|
91
|
-
begin
|
92
|
-
cmd_return = console.execute(ARGV)
|
93
|
-
if cmd_return[0]
|
94
|
-
puts "#{cmd_return[1]}"
|
95
|
-
else
|
96
|
-
puts "error: #{cmd_return[1]}"
|
97
|
-
end
|
98
|
-
rescue NoMethodError
|
99
|
-
puts help
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
7
|
+
puts Gritano::CLI::execute(ARGV)
|
data/bin/gritano-check
CHANGED
@@ -1,51 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
3
2
|
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
4
3
|
|
5
4
|
require 'gritano'
|
6
5
|
|
7
|
-
|
8
|
-
puts "
|
9
|
-
ssh user@host command
|
10
|
-
|
11
|
-
Examples:
|
12
|
-
ssh git@host.com repo:list
|
13
|
-
ssh git@host.com key:list
|
14
|
-
ssh git@host.com key:add keyname < key.pub
|
15
|
-
ssh git@host.com key:rm keyname
|
16
|
-
ssh git@host.com admin:help
|
17
|
-
|
18
|
-
--
|
19
|
-
v#{File.open(File.join(File.dirname(__FILE__), '..', 'VERSION')).readlines.join}"
|
20
|
-
end
|
21
|
-
|
22
|
-
ActiveRecord::Base.establish_connection(YAML::load(File.open(File.join(Etc.getpwuid.dir, '.gritano', 'database.yml'))))
|
23
|
-
|
24
|
-
login = ARGV[0]
|
25
|
-
command = Gritano::Command.eval(ENV['SSH_ORIGINAL_COMMAND'])
|
26
|
-
begin
|
27
|
-
case command[:access]
|
28
|
-
when :read, :write then
|
29
|
-
user = Gritano::User.find_by_login(login)
|
30
|
-
repository = Gritano::Repository.find_by_name(command[:repo])
|
31
|
-
if user and repository
|
32
|
-
if user.check_access(repository, command[:access])
|
33
|
-
puts "#{command[:command]} #{File.join(repository.full_path)}"
|
34
|
-
exec "#{command[:command]} #{File.join(repository.full_path)}"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
when :user_cmd
|
38
|
-
cmd = command[:command].gsub("[USER]", login)
|
39
|
-
exec "gritano #{cmd}"
|
40
|
-
when :admin_cmd
|
41
|
-
cmd = command[:command]
|
42
|
-
user = Gritano::User.find_by_login(login)
|
43
|
-
if user.admin?
|
44
|
-
exec "gritano #{cmd}"
|
45
|
-
else
|
46
|
-
puts "access denied"
|
47
|
-
end
|
48
|
-
end
|
49
|
-
rescue
|
50
|
-
puts help
|
51
|
-
end
|
6
|
+
puts Gritano::CLI::check(ENV['SSH_ORIGINAL_COMMAND'].split(' '), ARGV[0])
|
@@ -0,0 +1,183 @@
|
|
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.4.1 |
|
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.4.1 |
|
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.4.1 |
|
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
CHANGED
@@ -27,12 +27,28 @@ Feature: Console operations
|
|
27
27
|
| jessicaeto | tmp/jeka.git | read |
|
28
28
|
| jessicaeto | tmp/jeka.git | write |
|
29
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
|
+
|
30
45
|
Scenario Outline: Add user
|
31
46
|
Given I start the gritano console
|
32
47
|
When I execute "<command>"
|
33
48
|
Then I should see a <result> message
|
34
49
|
Examples:
|
35
50
|
| command | result |
|
51
|
+
| version | success |
|
36
52
|
| user:add jose | success |
|
37
53
|
| user:key:add igorbonadio marvin | success |
|
38
54
|
| user:key:rm igorbonadio eva | success |
|
@@ -0,0 +1,13 @@
|
|
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.4.1
|
@@ -0,0 +1,27 @@
|
|
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.4.1
|