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.
@@ -0,0 +1,23 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe Gritano::Console::Installer do
4
+
5
+ before(:each) do
6
+ @console = Gritano::Console::Installer.new
7
+ end
8
+
9
+ it "should respond to gritano setup:prepare" do
10
+ @console.should_receive(:setup_prepare)
11
+ @console.execute("setup:prepare".split(' '))
12
+ end
13
+
14
+ it "should respond to gritano setup:install" do
15
+ @console.should_receive(:setup_install)
16
+ @console.execute("setup:install".split(' '))
17
+ end
18
+
19
+ it "should respond to gritano help" do
20
+ @console.should_receive(:help)
21
+ @console.execute("help".split(' '))
22
+ end
23
+ end
data/spec/spec_helper.rb CHANGED
@@ -17,7 +17,7 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
17
17
 
18
18
  RSpec.configure do |config|
19
19
  config.before(:suite) do
20
- ActiveRecord::Base.establish_connection(YAML::load(File.open('db/database.yml')))
20
+ ActiveRecord::Base.establish_connection(YAML::load(File.open('.gritano/database.yml')))
21
21
  DatabaseCleaner.strategy = :transaction
22
22
  DatabaseCleaner.clean_with(:truncation)
23
23
  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.4.1
4
+ version: 0.5.0
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: 2012-12-14 00:00:00.000000000 Z
12
+ date: 2012-12-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -200,7 +200,9 @@ extra_rdoc_files:
200
200
  - TODO
201
201
  files:
202
202
  - .document
203
+ - .gritano/database.yml
203
204
  - .rspec
205
+ - .ssh/.gitignore
204
206
  - Gemfile
205
207
  - Gemfile.lock
206
208
  - LICENSE.txt
@@ -209,43 +211,54 @@ files:
209
211
  - VERSION
210
212
  - bin/gritano
211
213
  - bin/gritano-check
212
- - db/database.yml
213
214
  - db/migrate/001_create_users.rb
214
215
  - db/migrate/002_create_repositories.rb
215
216
  - db/migrate/003_create_permissions.rb
216
217
  - db/migrate/004_create_keys.rb
217
218
  - db/migrate/005_add_admin_to_users.rb
218
- - features/command.feature
219
+ - features/cli.feature
219
220
  - features/console.feature
221
+ - features/data/help-check.txt
222
+ - features/data/help-test.txt
223
+ - features/data/help.txt
220
224
  - features/data/keys/full_authorized_keys
221
225
  - features/data/keys/igorbonadio.pub
222
226
  - features/data/keys/igorbonadio_authorized_keys
223
227
  - features/data/keys/jessicaeto.pub
224
228
  - features/data/keys/jessicaeto_authorized_keys
229
+ - features/help.feature
225
230
  - features/keys.feature
226
231
  - features/polices.feature
227
- - features/step_definitions/command_step.rb
232
+ - features/ssh.feature
233
+ - features/step_definitions/cli_steps.rb
228
234
  - features/step_definitions/console_step.rb
235
+ - features/step_definitions/help.rb
229
236
  - features/step_definitions/keys_steps.rb
230
237
  - features/step_definitions/polices_steps.rb
238
+ - features/step_definitions/ssh_steps.rb
231
239
  - features/support/database_cleaner.rb
232
240
  - features/support/env.rb
233
241
  - gritano.gemspec
234
242
  - lib/gritano.rb
235
- - lib/gritano/command.rb
243
+ - lib/gritano/cli.rb
236
244
  - lib/gritano/console.rb
245
+ - lib/gritano/console/base.rb
246
+ - lib/gritano/console/check.rb
247
+ - lib/gritano/console/executor.rb
248
+ - lib/gritano/console/gritano.rb
249
+ - lib/gritano/console/installer.rb
237
250
  - lib/gritano/models.rb
238
251
  - lib/gritano/models/key.rb
239
252
  - lib/gritano/models/permission.rb
240
253
  - lib/gritano/models/repository.rb
241
254
  - lib/gritano/models/user.rb
242
- - spec/command_spec.rb
243
- - spec/console_spec.rb
255
+ - spec/executor_spec.rb
256
+ - spec/gritano_spec.rb
257
+ - spec/installer_spec.rb
244
258
  - spec/model_key_spec.rb
245
259
  - spec/model_repository_spec.rb
246
260
  - spec/model_user_spec.rb
247
261
  - spec/spec_helper.rb
248
- - tmp/.gitignore
249
262
  - TODO
250
263
  homepage: http://github.com/igorbonadio/gritano
251
264
  licenses:
@@ -262,7 +275,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
262
275
  version: '0'
263
276
  segments:
264
277
  - 0
265
- hash: -4397814326260575887
278
+ hash: 1372008296266253540
266
279
  required_rubygems_version: !ruby/object:Gem::Requirement
267
280
  none: false
268
281
  requirements:
data/db/database.yml DELETED
@@ -1,2 +0,0 @@
1
- adapter: sqlite3
2
- database: db/development.sqlite3
@@ -1,32 +0,0 @@
1
- Feature: Command
2
- In order to restrict access to repositories
3
- As Gritano
4
- I want to know if a command is a read/write command
5
-
6
- Scenario Outline: Write command
7
- When I receive a "<original_command>" command
8
- Then I should see that it is a "<access>": "<command>" "<repo>"
9
- Examples:
10
- | original_command | access | command | repo |
11
- | git-receive-pack proj.git | write | git-receive-pack | proj.git |
12
- | git-upload-pack proj.git | read | git-upload-pack | proj.git |
13
- | repo:list | user_cmd | user:repo:list [USER] | |
14
- | key:list | user_cmd | user:key:list [USER] | |
15
- | key:add keyname | user_cmd | user:key:add [USER] keyname | |
16
- | key:rm keyname | user_cmd | user:key:rm [USER] keyname | |
17
- | admin:user:add username | admin_cmd | user:add username | |
18
- | admin:user:rm username | admin_cmd | user:rm username | |
19
- | admin:user:key:add username keyname | admin_cmd | user:key:add username keyname | |
20
- | admin:user:key:rm username keyname | admin_cmd | user:key:rm username keyname | |
21
- | admin:user:list | admin_cmd | user:list | |
22
- | admin:user:key:list username | admin_cmd | user:key:list username | |
23
- | admin:user:repo:list username | admin_cmd | user:repo:list username | |
24
- | admin:repo:add reponame.git | admin_cmd | repo:add reponame.git | |
25
- | admin:repo:rm reponame.git | admin_cmd | repo:rm reponame.git | |
26
- | admin:repo:read:add reponame.git username | admin_cmd | repo:read:add reponame.git username | |
27
- | admin:repo:write:add reponame.git username | admin_cmd | repo:write:add reponame.git username | |
28
- | admin:repo:read:rm reponame.git username | admin_cmd | repo:read:rm reponame.git username | |
29
- | admin:repo:write:rm reponame.git username | admin_cmd | repo:write:rm reponame.git username | |
30
- | admin:repo:list | admin_cmd | repo:list | |
31
- | admin:repo:user:list reponame.git | admin_cmd | repo:user:list reponame.git | |
32
- | admin:help | admin_cmd | help | |
@@ -1,9 +0,0 @@
1
- When /^I receive a "(.*?)" command$/ do |cmd|
2
- @command = Gritano::Command.eval(cmd)
3
- end
4
-
5
- Then /^I should see that it is a "(.*?)": "(.*?)" "(.*?)"$/ do |access, command, repo|
6
- @command[:access].to_s.should be == access
7
- @command[:command].to_s.should be == command
8
- @command[:repo].to_s.should be == repo if repo
9
- end
@@ -1,24 +0,0 @@
1
- module Gritano
2
- class Command
3
- def self.eval(cmd)
4
- case cmd
5
- when /^git-receive-pack/ then
6
- return {access: :write, command: "git-receive-pack", repo: self.repo(cmd)}
7
- when /^git-upload-pack/ then
8
- return {access: :read, command: "git-upload-pack", repo: self.repo(cmd)}
9
- when /^repo:/ then
10
- return {access: :user_cmd, command: ("user:#{cmd} [USER]")}
11
- when /^key:/ then
12
- cmd = cmd.split(" ")
13
- cmd = [cmd[0]] + ["[USER]"] + cmd[1..-1]
14
- return {access: :user_cmd, command: ("user:" + cmd.join(" "))}
15
- when /admin:/ then
16
- return {access: :admin_cmd, command: cmd.gsub("admin:", "")}
17
- end
18
- end
19
-
20
- def self.repo(cmd)
21
- cmd.gsub(/^git-receive-pack/, '').gsub(/^git-upload-pack/, '').gsub("'", '').strip
22
- end
23
- end
24
- end
data/spec/command_spec.rb DELETED
@@ -1,41 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe Gritano::Command do
4
- it 'should interpret git-receive-pack' do
5
- command = Gritano::Command.eval("git-receive-pack 'teste.git'")
6
- command[:access].to_s.should be == "write"
7
- command[:command].should be == "git-receive-pack"
8
- command[:repo].to_s.should be == "teste.git"
9
- end
10
-
11
- it 'should interpret git-upload-pack' do
12
- command = Gritano::Command.eval("git-upload-pack 'teste.git'")
13
- command[:access].to_s.should be == "read"
14
- command[:command].should be == "git-upload-pack"
15
- command[:repo].to_s.should be == "teste.git"
16
- end
17
-
18
- it 'should interpret repos' do
19
- command = Gritano::Command.eval("repo:list")
20
- command[:access].to_s.should be == "user_cmd"
21
- command[:command].should be == "user:repo:list [USER]"
22
- end
23
-
24
- it 'should interpret keys' do
25
- command = Gritano::Command.eval("key:list")
26
- command[:access].to_s.should be == "user_cmd"
27
- command[:command].should be == "user:key:list [USER]"
28
- end
29
-
30
- it 'should interpret addkey keyname' do
31
- command = Gritano::Command.eval("key:add keyname")
32
- command[:access].to_s.should be == "user_cmd"
33
- command[:command].should be == "user:key:add [USER] keyname"
34
- end
35
-
36
- it 'should interpret rmkey keyname' do
37
- command = Gritano::Command.eval("key:rm keyname")
38
- command[:access].to_s.should be == "user_cmd"
39
- command[:command].should be == "user:key:rm [USER] keyname"
40
- end
41
- end