gritano 0.5.4 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ ---
2
+ ssh: false
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Ígor Bonadio
1
+ Copyright (c) 2012-2013 Ígor Bonadio
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.rdoc CHANGED
@@ -1,4 +1,4 @@
1
- = Gritano v0.5.3
1
+ = Gritano v0.6.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
 
@@ -85,6 +85,14 @@ Starting from Gritano 0.3.0, administrators can execute commands via ssh:
85
85
 
86
86
  $ ssh git@host.com admin:repo:list
87
87
 
88
+ = Custom SSH
89
+
90
+ Gritano 0.6.0 introduces Gritano-SSH (https://github.com/igorbonadio/gritano-openssh), a custom SSH that you can use to improve user authentication. It look up for users' keys in the gritano's database.
91
+
92
+ To enable this feature, you need to install Gritano-SSH and execute:
93
+
94
+ $ gritano addon:ssh:install
95
+
88
96
  == For more Information
89
97
 
90
98
  http://igorbonadio.com.br/gritano/
@@ -101,5 +109,5 @@ http://igorbonadio.com.br/gritano/
101
109
 
102
110
  == Copyright
103
111
 
104
- Copyright (c) 2012 Ígor Bonadio. See LICENSE.txt for
112
+ Copyright (c) 2012-2013 Ígor Bonadio. See LICENSE.txt for
105
113
  further details.
data/TODO CHANGED
@@ -1,14 +0,0 @@
1
- v0.6.0
2
- - melhorar o instalador/updater
3
- - escolha de db
4
- gritano setup:prepare -db sqlite
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
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.4
1
+ 0.6.0
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
3
+
4
+ require 'gritano'
5
+
6
+ key = nil
7
+ STDIN.readlines.each do |line|
8
+ if line =~ /^ssh-(?:dss|rsa) [A-Za-z0-9+\/]+$/
9
+ key = line
10
+ end
11
+ end
12
+
13
+ if key
14
+ STDOUT.print Gritano::CLI::check_pub_key(key, File.dirname(File.dirname(ARGV[0])))
15
+ end
@@ -0,0 +1,2 @@
1
+ ---
2
+ ssh: true
@@ -0,0 +1,5 @@
1
+ +---------+
2
+ | add-ons |
3
+ +---------+
4
+ | ssh |
5
+ +---------+
@@ -22,6 +22,9 @@
22
22
  gritano repo:write:add reponame.git username
23
23
  gritano repo:read:rm reponame.git username
24
24
  gritano repo:write:rm reponame.git username
25
+ gritano addon:list
26
+ gritano addon:ssh:install
27
+ gritano addon:ssh:uninstall
25
28
 
26
29
  --
27
30
  v{{VERSION}}
@@ -0,0 +1,5 @@
1
+ +---------+
2
+ | add-ons |
3
+ +---------+
4
+ | ssh |
5
+ +---------+
@@ -0,0 +1 @@
1
+ error: access denied
@@ -22,6 +22,9 @@
22
22
  ssh git@host.com admin:repo:write:add reponame.git username
23
23
  ssh git@host.com admin:repo:read:rm reponame.git username
24
24
  ssh git@host.com admin:repo:write:rm reponame.git username
25
+ ssh git@host.com admin:addon:list
26
+ ssh git@host.com admin:addon:ssh:install
27
+ ssh git@host.com admin:addon:ssh:uninstall
25
28
 
26
29
  --
27
30
  v{{VERSION}}
@@ -22,6 +22,9 @@
22
22
  ssh git@host.com admin:repo:write:add reponame.git username
23
23
  ssh git@host.com admin:repo:read:rm reponame.git username
24
24
  ssh git@host.com admin:repo:write:rm reponame.git username
25
+ ssh git@host.com admin:addon:list
26
+ ssh git@host.com admin:addon:ssh:install
27
+ ssh git@host.com admin:addon:ssh:uninstall
25
28
 
26
29
  --
27
30
  v{{VERSION}}
@@ -77,4 +77,5 @@ Feature: Local access
77
77
  | repo:write:rm tmp/gritano.git arybonadio |
78
78
  | repo:write:rm tmp/p-lang.git igorbonadio |
79
79
  | repo:user:list tmp/ruby.git |
80
+ | addon:list |
80
81
 
@@ -0,0 +1,25 @@
1
+ Feature: Public Key
2
+ In order to allow users to user gritano
3
+ As a ssh
4
+ I want to check public keys
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
+ Scenario: Valid key
18
+ Given I start the public key checker
19
+ When I receive "eva" public key
20
+ Then I should see "igorbonadio"'s "eva" pubkey entry
21
+
22
+ Scenario: Invalid key
23
+ Given I start the public key checker
24
+ When I receive "invalid" public key
25
+ Then I should see an invalid pubkey
@@ -100,6 +100,7 @@ Feature: Remote access
100
100
  | admin:repo:write:rm tmp/gritano.git arybonadio |
101
101
  | admin:repo:write:rm tmp/p-lang.git igorbonadio |
102
102
  | admin:repo:user:list tmp/ruby.git |
103
+ | admin:addon:list |
103
104
 
104
105
  Scenario Outline: Admin user execute command
105
106
  Given I start the remote console with "igorbonadio"
@@ -154,3 +155,4 @@ Feature: Remote access
154
155
  | admin:repo:write:rm tmp/gritano.git arybonadio |
155
156
  | admin:repo:write:rm tmp/p-lang.git igorbonadio |
156
157
  | admin:repo:user:list tmp/ruby.git |
158
+ | admin:addon:list |
@@ -6,7 +6,7 @@ end
6
6
 
7
7
  Given /^the following keys exist:$/ do |table|
8
8
  table.hashes.each do |key|
9
- Gritano::User.find_by_login(key['login']).keys.create(name: key["key"], key: "key")
9
+ Gritano::User.find_by_login(key['login']).keys.create(name: key["key"], key: key["key"])
10
10
  end
11
11
  end
12
12
 
@@ -1,6 +1,6 @@
1
1
  Given /^I start the gritano console$/ do
2
2
  @stdin = double()
3
- @stdin.stub(:read).and_return("Your SSHKEY here...")
3
+ @stdin.stub(:read).and_return("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9UnnlDwmvid+WRAyIhVzFhIjUUxA3Wul7LN8mk18dHZDv5HSVADmM4EoqbVSbpeVIyTIchqS3y3XF1rh8dfM41f/W3lcTcFihHM6RDx45Q3Lz9hfyrT8tttlWRA7prvlXu6bUOqMmNtvFFow+bJEo/HgCZHshvoDHcnlHfziU7bDCo+p50SdafFwZRe3AWp/f4TsxiP7jpBnluQM0Dl9Om8jfW8IYAJ+WxlKBsKLMkRH/HWSuigs4AQBD4ADiQfOm2RO4yeSiVFNwGFmgG7NmEq1sNALLAQw+ijN9vyiD99ybr0pqoJX3vhyRBWvCrgQdHjh8ucaoMXI89LxyYts/ igorbonadio@marvin.local")
4
4
  @home_dir = '.'
5
5
  @repo_dir = 'tmp'
6
6
  @console = Gritano::CLI
@@ -0,0 +1,15 @@
1
+ Given /^I start the public key checker$/ do
2
+ @console = Gritano::CLI
3
+ end
4
+
5
+ When /^I receive "(.*?)" public key$/ do |key|
6
+ @output = @console.check_pub_key(key, '.')
7
+ end
8
+
9
+ Then /^I should see an invalid pubkey$/ do
10
+ @output.should be == "invalid"
11
+ end
12
+
13
+ Then /^I should see "(.*?)"'s "(.*?)" pubkey entry$/ do |user, key|
14
+ @output.should be == "command=\"gritano-remote #{user}\" #{key}"
15
+ end
@@ -1,6 +1,6 @@
1
1
  Given /^I start the remote console with "(.*?)"$/ do |login|
2
2
  @stdin = double()
3
- @stdin.stub(:read).and_return("Your SSHKEY here...")
3
+ @stdin.stub(:read).and_return("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9UnnlDwmvid+WRAyIhVzFhIjUUxA3Wul7LN8mk18dHZDv5HSVADmM4EoqbVSbpeVIyTIchqS3y3XF1rh8dfM41f/W3lcTcFihHM6RDx45Q3Lz9hfyrT8tttlWRA7prvlXu6bUOqMmNtvFFow+bJEo/HgCZHshvoDHcnlHfziU7bDCo+p50SdafFwZRe3AWp/f4TsxiP7jpBnluQM0Dl9Om8jfW8IYAJ+WxlKBsKLMkRH/HWSuigs4AQBD4ADiQfOm2RO4yeSiVFNwGFmgG7NmEq1sNALLAQw+ijN9vyiD99ybr0pqoJX3vhyRBWvCrgQdHjh8ucaoMXI89LxyYts/ igorbonadio@marvin.local")
4
4
  @home_dir = '.'
5
5
  @repo_dir = 'tmp'
6
6
  @login = login
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.4"
8
+ s.version = "0.6.0"
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 = "2013-01-28"
12
+ s.date = "2013-02-18"
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-remote"]
15
+ s.executables = ["gritano", "gritano-pub-key", "gritano-remote"]
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE.txt",
18
18
  "README.rdoc",
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  ]
21
21
  s.files = [
22
22
  ".document",
23
+ ".gritano/config.yml",
23
24
  ".gritano/database.yml",
24
25
  ".rspec",
25
26
  ".ssh/.gitignore",
@@ -30,12 +31,16 @@ Gem::Specification.new do |s|
30
31
  "Rakefile",
31
32
  "VERSION",
32
33
  "bin/gritano",
34
+ "bin/gritano-pub-key",
33
35
  "bin/gritano-remote",
34
36
  "db/migrate/001_create_users.rb",
35
37
  "db/migrate/002_create_repositories.rb",
36
38
  "db/migrate/003_create_permissions.rb",
37
39
  "db/migrate/004_create_keys.rb",
38
40
  "db/migrate/005_add_admin_to_users.rb",
41
+ "features/data/config_true.yml",
42
+ "features/data/local_commands/addon_list.txt",
43
+ "features/data/local_commands/addon_ssh_install.txt",
39
44
  "features/data/local_commands/repo_add_tmp_jeka_git.txt",
40
45
  "features/data/local_commands/repo_add_tmp_p_lang_git.txt",
41
46
  "features/data/local_commands/repo_add_tmp_p_lang_git_igorbonadio.txt",
@@ -76,6 +81,8 @@ Gem::Specification.new do |s|
76
81
  "features/data/local_commands/user_rm_jose.txt",
77
82
  "features/data/local_commands/version.txt",
78
83
  "features/data/local_help.txt",
84
+ "features/data/remote_commands/admin_addon_list_igorbonadio.txt",
85
+ "features/data/remote_commands/admin_addon_list_jessicaeto.txt",
79
86
  "features/data/remote_commands/admin_help_igorbonadio.txt",
80
87
  "features/data/remote_commands/admin_help_jessicaeto.txt",
81
88
  "features/data/remote_commands/admin_repo_add_tmp_jeka_git_igorbonadio.txt",
@@ -173,10 +180,12 @@ Gem::Specification.new do |s|
173
180
  "features/data/remote_help.txt",
174
181
  "features/install.feature",
175
182
  "features/local.feature",
183
+ "features/pub_key.feature",
176
184
  "features/remote.feature",
177
185
  "features/step_definitions/background_step.rb",
178
186
  "features/step_definitions/install_step.rb",
179
187
  "features/step_definitions/local_step.rb",
188
+ "features/step_definitions/pub_key_step.rb",
180
189
  "features/step_definitions/remote_step.rb",
181
190
  "features/support/database_cleaner.rb",
182
191
  "features/support/env.rb",
@@ -189,6 +198,7 @@ Gem::Specification.new do |s|
189
198
  "lib/gritano/console/gritano.rb",
190
199
  "lib/gritano/console/installer.rb",
191
200
  "lib/gritano/console/remote.rb",
201
+ "lib/gritano/console/ssh_install.txt",
192
202
  "lib/gritano/models.rb",
193
203
  "lib/gritano/models/key.rb",
194
204
  "lib/gritano/models/permission.rb",
@@ -202,6 +212,7 @@ Gem::Specification.new do |s|
202
212
  "spec/console_remote_spec.rb",
203
213
  "spec/console_spec.rb",
204
214
  "spec/data/help_command_name.txt",
215
+ "spec/model_config_spec.rb",
205
216
  "spec/model_key_spec.rb",
206
217
  "spec/model_permission_spec.rb",
207
218
  "spec/model_repository_spec.rb",
@@ -211,7 +222,7 @@ Gem::Specification.new do |s|
211
222
  s.homepage = "http://igorbonadio.com.br/gritano"
212
223
  s.licenses = ["MIT"]
213
224
  s.require_paths = ["lib"]
214
- s.rubygems_version = "1.8.24"
225
+ s.rubygems_version = "1.8.25"
215
226
  s.summary = "Gritano is a tool to configure your git server over ssh"
216
227
 
217
228
  if s.respond_to? :specification_version then
data/lib/gritano/cli.rb CHANGED
@@ -23,5 +23,15 @@ module Gritano
23
23
  Gritano::Console.remote_console(true)
24
24
  _execute(cmd + [login], Gritano::Console::Remote.new(stdin, home_dir, repo_dir))
25
25
  end
26
+
27
+ def CLI.check_pub_key(key, home_dir = Etc.getpwuid.dir)
28
+ ActiveRecord::Base.establish_connection(YAML::load(File.open(File.join(home_dir, '.gritano', 'database.yml'))))
29
+ k = Key.find_by_key(key)
30
+ if k
31
+ return "command=\"gritano-remote #{k.user.login}\" #{k.key}"
32
+ else
33
+ return "invalid"
34
+ end
35
+ end
26
36
  end
27
37
  end
@@ -92,7 +92,12 @@ module Gritano
92
92
  login, key_name, key_file = argv
93
93
  user = User.find_by_login(login)
94
94
  if user
95
- key = user.keys.create(name: key_name, key: @stdin.read)
95
+ begin
96
+ key_str = "#{@stdin.read.scan(/^ssh-(?:dss|rsa) [A-Za-z0-9+\/]+/)[0]}"
97
+ rescue
98
+ return [false, "Key could not be added."]
99
+ end
100
+ key = user.keys.create(name: key_name, key: key_str)
96
101
  if key.valid?
97
102
  File.open(File.join(@ssh_path, 'authorized_keys'), 'w').write(Key.authorized_keys)
98
103
  return [true, "Key added successfully."]
@@ -241,6 +246,30 @@ module Gritano
241
246
  end
242
247
  return [false, "An error occurred. Permissions was not modified."]
243
248
  end
249
+
250
+ add_command "addon:list" do |argv|
251
+ msg = Terminal::Table.new do |t|
252
+ t << ['add-ons']
253
+ t << :separator
254
+ t.add_row ['ssh']
255
+ end
256
+ return [true, msg]
257
+ end
258
+
259
+ add_command "addon:ssh:install" do |argv|
260
+ File.open(File.join(@home_dir, '.gritano', 'config.yml'), "w").write({'ssh' => true}.to_yaml)
261
+ File.open(File.join(@ssh_path, 'authorized_keys'), "w").write('')
262
+ gritano_pub_key_path = `which gritano-pub-key`[0..-2]
263
+ `ln -s #{gritano_pub_key_path} #{File.join(@home_dir, '.gritano', 'gritano-pub-key')}`
264
+ [true, File.open(File.join(File.dirname(__FILE__), 'ssh_install.txt')).readlines.join.gsub('{{GRITANO_PUB_KEY}}', File.join(@home_dir, '.gritano', 'gritano-pub-key'))]
265
+ end
266
+
267
+ add_command "addon:ssh:uninstall" do |argv|
268
+ File.open(File.join(@home_dir, '.gritano', 'config.yml'), "w").write({'ssh' => false}.to_yaml)
269
+ File.open(File.join(@ssh_path, 'authorized_keys'), 'w').write(Key.authorized_keys)
270
+ FileUtils.rm(File.join(@home_dir, '.gritano', 'gritano-pub-key')) if File.exist?(File.join(@home_dir, '.gritano', 'gritano-pub-key'))
271
+ [true, 'Now Gritano is configured to use the authorized_keys file to authenticate users.']
272
+ end
244
273
  end
245
274
  end
246
275
  end
@@ -0,0 +1,7 @@
1
+ Now Gritano is configured to use a custom ssh that can authenticate users that are registered in Gritano's database.
2
+
3
+ Don't forget to add the following line to your sshd_config:
4
+
5
+ AuthorizedKeysScript {{GRITANO_PUB_KEY}}
6
+
7
+ For more information: https://github.com/igorbonadio/gritano-openssh.
@@ -1,11 +1,27 @@
1
1
  module Gritano
2
2
  class Key < ActiveRecord::Base
3
+
3
4
  validates :name, :key, presence: true
4
5
  validates :name, :uniqueness => { :scope => :user_id, :message => "should happen once per user" }
5
6
 
6
7
  belongs_to :user
7
8
 
9
+ def self.config=(cfg)
10
+ @config = cfg
11
+ end
12
+
8
13
  def self.authorized_keys
14
+ if @config
15
+ unless @config['ssh']
16
+ return generate_authorized_keys
17
+ end
18
+ else
19
+ return generate_authorized_keys
20
+ end
21
+ return ""
22
+ end
23
+
24
+ def self.generate_authorized_keys
9
25
  authorized_keys = ""
10
26
  keys = Key.find(:all)
11
27
  keys.each do |k|
@@ -13,7 +29,7 @@ module Gritano
13
29
  unless k.key[-1] == "\n"
14
30
  user_key = user_key + "\n"
15
31
  end
16
- authorized_keys += "command=\"gritano-remote #{k.user.login}\" #{user_key}"
32
+ authorized_keys += "command=\"gritano-remote #{k.user.login}\" #{user_key}\n"
17
33
  end
18
34
  return authorized_keys
19
35
  end
data/spec/cli_spec.rb CHANGED
@@ -17,5 +17,10 @@ module Gritano
17
17
  Gritano::Console::Remote.should_receive(:new).and_return(console)
18
18
  CLI.check(["repo:list"], "login")
19
19
  end
20
+
21
+ it "should check public keys" do
22
+ Key.should_receive(:find_by_key).and_return(nil)
23
+ CLI.check_pub_key("key", ".")
24
+ end
20
25
  end
21
26
  end
@@ -5,7 +5,7 @@ module Gritano
5
5
  describe Executor do
6
6
  def create_executor(home, repo_dir)
7
7
  stdin = double()
8
- stdin.stub(:read).and_return("Your SSHKEY here...")
8
+ stdin.stub(:read).and_return("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9UnnlDwmvid+WRAyIhVzFhIjUUxA3Wul7LN8mk18dHZDv5HSVADmM4EoqbVSbpeVIyTIchqS3y3XF1rh8dfM41f/W3lcTcFihHM6RDx45Q3Lz9hfyrT8tttlWRA7prvlXu6bUOqMmNtvFFow+bJEo/HgCZHshvoDHcnlHfziU7bDCo+p50SdafFwZRe3AWp/f4TsxiP7jpBnluQM0Dl9Om8jfW8IYAJ+WxlKBsKLMkRH/HWSuigs4AQBD4ADiQfOm2RO4yeSiVFNwGFmgG7NmEq1sNALLAQw+ijN9vyiD99ybr0pqoJX3vhyRBWvCrgQdHjh8ucaoMXI89LxyYts/ igorbonadio@marvin.local")
9
9
  Executor.new(stdin, home, repo_dir)
10
10
  end
11
11
 
@@ -47,7 +47,7 @@ module Gritano
47
47
  keys = double()
48
48
  key = double()
49
49
  key.should_receive(:valid?).and_return(true)
50
- keys.should_receive(:create).with(name: "keyname", key: "Your SSHKEY here...").and_return(key)
50
+ keys.should_receive(:create).with(name: "keyname", key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9UnnlDwmvid+WRAyIhVzFhIjUUxA3Wul7LN8mk18dHZDv5HSVADmM4EoqbVSbpeVIyTIchqS3y3XF1rh8dfM41f/W3lcTcFihHM6RDx45Q3Lz9hfyrT8tttlWRA7prvlXu6bUOqMmNtvFFow+bJEo/HgCZHshvoDHcnlHfziU7bDCo+p50SdafFwZRe3AWp/f4TsxiP7jpBnluQM0Dl9Om8jfW8IYAJ+WxlKBsKLMkRH/HWSuigs4AQBD4ADiQfOm2RO4yeSiVFNwGFmgG7NmEq1sNALLAQw+ijN9vyiD99ybr0pqoJX3vhyRBWvCrgQdHjh8ucaoMXI89LxyYts/").and_return(key)
51
51
  user.should_receive(:keys).and_return(keys)
52
52
  User.should_receive(:find_by_login).with("login").and_return(user)
53
53
  create_executor('.', 'tmp').execute(["user:key:add", "login", "keyname"])
@@ -0,0 +1,10 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ module Gritano
4
+ describe Config do
5
+ it "should have a ssh configuration" do
6
+ config = YAML::load(File.open(File.join('.gritano', 'config.yml')))
7
+ config['ssh'].should be_false
8
+ end
9
+ end
10
+ end
@@ -30,9 +30,15 @@ module Gritano
30
30
  key.user.should == user
31
31
  end
32
32
 
33
- it "should generate the authorized_keys files" do
33
+ it "should generate the authorized_keys files if ssh's configurations is false" do
34
34
  create_new_user_and_key
35
- Key.authorized_keys.should == "command=\"gritano-remote igor\" sshkey\n"
35
+ Key.authorized_keys.should == "command=\"gritano-remote igor\" sshkey\n\n"
36
+ end
37
+
38
+ it "should not generate the authorized_keys files if ssh's configurations is true" do
39
+ user, key = create_new_user_and_key
40
+ Key.config = YAML::load(File.open(File.join('features', 'data', 'config_true.yml')))
41
+ Key.authorized_keys.should == ""
36
42
  end
37
43
  end
38
44
  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
4
+ version: 0.6.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: 2013-01-28 00:00:00.000000000 Z
12
+ date: 2013-02-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -192,6 +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-pub-key
195
196
  - gritano-remote
196
197
  extensions: []
197
198
  extra_rdoc_files:
@@ -200,6 +201,7 @@ extra_rdoc_files:
200
201
  - TODO
201
202
  files:
202
203
  - .document
204
+ - .gritano/config.yml
203
205
  - .gritano/database.yml
204
206
  - .rspec
205
207
  - .ssh/.gitignore
@@ -210,12 +212,16 @@ files:
210
212
  - Rakefile
211
213
  - VERSION
212
214
  - bin/gritano
215
+ - bin/gritano-pub-key
213
216
  - bin/gritano-remote
214
217
  - db/migrate/001_create_users.rb
215
218
  - db/migrate/002_create_repositories.rb
216
219
  - db/migrate/003_create_permissions.rb
217
220
  - db/migrate/004_create_keys.rb
218
221
  - db/migrate/005_add_admin_to_users.rb
222
+ - features/data/config_true.yml
223
+ - features/data/local_commands/addon_list.txt
224
+ - features/data/local_commands/addon_ssh_install.txt
219
225
  - features/data/local_commands/repo_add_tmp_jeka_git.txt
220
226
  - features/data/local_commands/repo_add_tmp_p_lang_git.txt
221
227
  - features/data/local_commands/repo_add_tmp_p_lang_git_igorbonadio.txt
@@ -256,6 +262,8 @@ files:
256
262
  - features/data/local_commands/user_rm_jose.txt
257
263
  - features/data/local_commands/version.txt
258
264
  - features/data/local_help.txt
265
+ - features/data/remote_commands/admin_addon_list_igorbonadio.txt
266
+ - features/data/remote_commands/admin_addon_list_jessicaeto.txt
259
267
  - features/data/remote_commands/admin_help_igorbonadio.txt
260
268
  - features/data/remote_commands/admin_help_jessicaeto.txt
261
269
  - features/data/remote_commands/admin_repo_add_tmp_jeka_git_igorbonadio.txt
@@ -353,10 +361,12 @@ files:
353
361
  - features/data/remote_help.txt
354
362
  - features/install.feature
355
363
  - features/local.feature
364
+ - features/pub_key.feature
356
365
  - features/remote.feature
357
366
  - features/step_definitions/background_step.rb
358
367
  - features/step_definitions/install_step.rb
359
368
  - features/step_definitions/local_step.rb
369
+ - features/step_definitions/pub_key_step.rb
360
370
  - features/step_definitions/remote_step.rb
361
371
  - features/support/database_cleaner.rb
362
372
  - features/support/env.rb
@@ -369,6 +379,7 @@ files:
369
379
  - lib/gritano/console/gritano.rb
370
380
  - lib/gritano/console/installer.rb
371
381
  - lib/gritano/console/remote.rb
382
+ - lib/gritano/console/ssh_install.txt
372
383
  - lib/gritano/models.rb
373
384
  - lib/gritano/models/key.rb
374
385
  - lib/gritano/models/permission.rb
@@ -382,6 +393,7 @@ files:
382
393
  - spec/console_remote_spec.rb
383
394
  - spec/console_spec.rb
384
395
  - spec/data/help_command_name.txt
396
+ - spec/model_config_spec.rb
385
397
  - spec/model_key_spec.rb
386
398
  - spec/model_permission_spec.rb
387
399
  - spec/model_repository_spec.rb
@@ -403,7 +415,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
403
415
  version: '0'
404
416
  segments:
405
417
  - 0
406
- hash: 2897713572517477431
418
+ hash: 3059222236769811934
407
419
  required_rubygems_version: !ruby/object:Gem::Requirement
408
420
  none: false
409
421
  requirements:
@@ -412,7 +424,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
412
424
  version: '0'
413
425
  requirements: []
414
426
  rubyforge_project:
415
- rubygems_version: 1.8.24
427
+ rubygems_version: 1.8.25
416
428
  signing_key:
417
429
  specification_version: 3
418
430
  summary: Gritano is a tool to configure your git server over ssh