Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
iv
gitlab-ce
Commits
ba8048d7
Commit
ba8048d7
authored
Oct 22, 2011
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
v1.1.0
parent
6b030fd4
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
141 additions
and
147 deletions
+141
-147
README.rdoc
README.rdoc
+17
-3
app/assets/stylesheets/projects.css.scss
app/assets/stylesheets/projects.css.scss
+9
-0
app/controllers/team_members_controller.rb
app/controllers/team_members_controller.rb
+7
-21
app/models/project.rb
app/models/project.rb
+8
-1
app/models/users_project.rb
app/models/users_project.rb
+6
-1
app/views/commits/_diff.html.haml
app/views/commits/_diff.html.haml
+5
-39
app/views/commits/_diff_head.html.haml
app/views/commits/_diff_head.html.haml
+24
-0
app/views/commits/_text_file.html.haml
app/views/commits/_text_file.html.haml
+15
-0
db/fixtures/development/001_admin.rb
db/fixtures/development/001_admin.rb
+9
-1
db/fixtures/production/001_admin.rb
db/fixtures/production/001_admin.rb
+9
-0
install.rb
install.rb
+0
-32
lib/gitosis.rb
lib/gitosis.rb
+1
-1
spec/models/project_spec.rb
spec/models/project_spec.rb
+9
-0
spec/requests/team_members_spec.rb
spec/requests/team_members_spec.rb
+22
-4
update.rb
update.rb
+0
-44
No files found.
README.rdoc
View file @
ba8048d7
...
@@ -28,26 +28,34 @@ sqlite as default db
...
@@ -28,26 +28,34 @@ sqlite as default db
git clone git://github.com/gitlabhq/gitlabhq.git
git clone git://github.com/gitlabhq/gitlabhq.git
cd gitlabhq/
cd gitlabhq/
# install this library first
# install this library first
sudo easy_install pygments
sudo easy_install pygments
# give your user access to remove git repo
# Ex.
# If you are going to use user 'gitlabhq' for rails server
# gitlabhq ALL = (git) NOPASSWD: /bin/rm" | sudo tee -a /etc/sudoers
#
echo "USERNAME ALL = (git) NOPASSWD: /bin/rm" | sudo tee -a /etc/sudoers
sudo gem install bundler
sudo gem install bundler
bundle
bundle
RAILS_ENV=production rake db:setup
bundle exec rake db:setup RAILS_ENV=production
# create admin user
# create admin user
# login....admin@local.host
# login....admin@local.host
# pass.....5iveL!fe
# pass.....5iveL!fe
RAILS_ENV=production rake db:seed_fu
bundle exec rake db:seed_fu RAILS_ENV=production
Install gitosis, edit conf/gitosis.yml & start server
Install gitosis, edit conf/gitosis.yml & start server
rails s -e production
rails s -e production
== Install Gitosis
== Install Gitosis
sudo aptitude install gitosis
sudo aptitude install gitosis
...
@@ -64,6 +72,7 @@ Install gitosis, edit conf/gitosis.yml & start server
...
@@ -64,6 +72,7 @@ Install gitosis, edit conf/gitosis.yml & start server
ssh-keygen -t rsa
ssh-keygen -t rsa
sudo -H -u git gitosis-init < ~/.ssh/id_rsa.pub
sudo -H -u git gitosis-init < ~/.ssh/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
...
@@ -84,3 +93,8 @@ Install gitosis, edit conf/gitosis.yml & start server
...
@@ -84,3 +93,8 @@ Install gitosis, edit conf/gitosis.yml & start server
echo "gem: --no-rdoc --no-ri" > ~/.gemrc
echo "gem: --no-rdoc --no-ri" > ~/.gemrc
== Contribute
We develop project on our private server.
Want to help? Contact us on twitter or email to become a team member.
app/assets/stylesheets/projects.css.scss
View file @
ba8048d7
...
@@ -638,3 +638,12 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
...
@@ -638,3 +638,12 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
display
:none
;
display
:none
;
}
}
}
}
.field_with_errors
{
input
[
type
=
"text"
],
input
[
type
=
"password"
],
textarea
{
background
:
none
repeat
scroll
0
0
#FFBBBB
}
}
app/controllers/team_members_controller.rb
View file @
ba8048d7
...
@@ -8,35 +8,16 @@ class TeamMembersController < ApplicationController
...
@@ -8,35 +8,16 @@ class TeamMembersController < ApplicationController
def
show
def
show
@team_member
=
project
.
users_projects
.
find
(
params
[
:id
])
@team_member
=
project
.
users_projects
.
find
(
params
[
:id
])
respond_to
do
|
format
|
format
.
html
# show.html.erb
format
.
js
end
end
end
def
new
def
new
@team_member
=
project
.
users_projects
.
new
@team_member
=
project
.
users_projects
.
new
respond_to
do
|
format
|
format
.
html
# new.html.erb
format
.
js
end
end
end
def
create
def
create
@team_member
=
UsersProject
.
new
(
params
[
:team_member
])
@team_member
=
UsersProject
.
new
(
params
[
:team_member
])
@team_member
.
project
=
project
@team_member
.
project
=
project
@team_member
.
save
respond_to
do
|
format
|
if
@team_member
.
save
format
.
html
{
redirect_to
@team_member
,
notice:
'Team member was successfully created.'
}
format
.
js
else
format
.
html
{
render
action:
"new"
}
format
.
js
end
end
end
end
def
update
def
update
...
@@ -45,7 +26,12 @@ class TeamMembersController < ApplicationController
...
@@ -45,7 +26,12 @@ class TeamMembersController < ApplicationController
respond_to
do
|
format
|
respond_to
do
|
format
|
format
.
js
format
.
js
format
.
html
{
redirect_to
team_project_path
(
@project
)}
format
.
html
do
unless
@team_member
.
valid?
flash
[
:alert
]
=
"User should have at least one role"
end
redirect_to
team_project_path
(
@project
)
end
end
end
end
end
...
...
app/models/project.rb
View file @
ba8048d7
...
@@ -35,6 +35,7 @@ class Project < ActiveRecord::Base
...
@@ -35,6 +35,7 @@ class Project < ActiveRecord::Base
:presence
=>
true
:presence
=>
true
validate
:check_limit
validate
:check_limit
validate
:repo_name
after_destroy
:destroy_gitosis_project
after_destroy
:destroy_gitosis_project
after_save
:update_gitosis_project
after_save
:update_gitosis_project
...
@@ -168,6 +169,12 @@ class Project < ActiveRecord::Base
...
@@ -168,6 +169,12 @@ class Project < ActiveRecord::Base
errors
[
:base
]
<<
(
"Cant check your ability to create project"
)
errors
[
:base
]
<<
(
"Cant check your ability to create project"
)
end
end
def
repo_name
if
path
==
"gitosis-admin"
errors
.
add
(
:path
,
" like 'gitosis-admin' is not allowed"
)
end
end
def
valid_repo?
def
valid_repo?
repo
repo
rescue
rescue
...
...
app/models/users_project.rb
View file @
ba8048d7
...
@@ -9,6 +9,7 @@ class UsersProject < ActiveRecord::Base
...
@@ -9,6 +9,7 @@ class UsersProject < ActiveRecord::Base
validates_uniqueness_of
:user_id
,
:scope
=>
[
:project_id
]
validates_uniqueness_of
:user_id
,
:scope
=>
[
:project_id
]
validates_presence_of
:user_id
validates_presence_of
:user_id
validates_presence_of
:project_id
validates_presence_of
:project_id
validate
:user_has_a_role_selected
delegate
:name
,
:email
,
:to
=>
:user
,
:prefix
=>
true
delegate
:name
,
:email
,
:to
=>
:user
,
:prefix
=>
true
...
@@ -18,6 +19,10 @@ class UsersProject < ActiveRecord::Base
...
@@ -18,6 +19,10 @@ class UsersProject < ActiveRecord::Base
end
end
end
end
def
user_has_a_role_selected
errors
.
add
(
:base
,
"Please choose at least one Role in the Access list"
)
unless
read
||
write
||
admin
end
end
end
# == Schema Information
# == Schema Information
#
#
...
...
app/views/commits/_diff.html.haml
View file @
ba8048d7
.file_stats
.file_stats
=
render
"commits/diff_head"
-
@commit
.
diffs
.
each
do
|
diff
|
-
if
diff
.
deleted_file
%span
.removed_file
%a
{
:href
=>
"##{diff.a_path}"
}
=
diff
.
a_path
=
image_tag
"blueprint_delete.png"
-
elsif
diff
.
renamed_file
%span
.moved_file
%a
{
:href
=>
"##{diff.b_path}"
}
=
diff
.
a_path
=
"->"
=
diff
.
b_path
=
image_tag
"blueprint_notice.png"
-
elsif
diff
.
new_file
%span
.new_file
%a
{
:href
=>
"##{diff.b_path}"
}
=
diff
.
b_path
=
image_tag
"blueprint_add.png"
-
else
%span
.edit_file
%a
{
:href
=>
"##{diff.b_path}"
}
=
diff
.
b_path
=
image_tag
"blueprint_info.png"
-
@commit
.
diffs
.
each
do
|
diff
|
-
@commit
.
diffs
.
each
do
|
diff
|
-
next
if
diff
.
diff
.
empty?
-
next
if
diff
.
diff
.
empty?
-
file
=
(
@commit
.
tree
/
diff
.
b_path
)
-
file
=
(
@commit
.
tree
/
diff
.
b_path
)
...
@@ -31,24 +9,12 @@
...
@@ -31,24 +9,12 @@
-
if
diff
.
deleted_file
-
if
diff
.
deleted_file
%strong
{
:id
=>
"#{diff.b_path}"
}=
diff
.
a_path
%strong
{
:id
=>
"#{diff.b_path}"
}=
diff
.
a_path
-
else
-
else
=
link_to
tree_file_project_path
(
@project
,
@commit
.
id
,
diff
.
b_path
)
do
%strong
{
:id
=>
"#{diff.b_path}"
}=
diff
.
b_path
%strong
{
:id
=>
"#{diff.b_path}"
}=
diff
.
b_path
%br
/
%br
/
.diff_file_content
.diff_file_content
-
if
file
.
text?
-
if
file
.
text?
-
lines_arr
=
diff
.
diff
.
lines
.
to_a
=
render
:partial
=>
"commits/text_file"
,
:locals
=>
{
:diff
=>
diff
}
-
line_old
=
lines_arr
[
2
].
match
(
/-(\d)/
)[
0
].
to_i
.
abs
rescue
0
-
line_new
=
lines_arr
[
2
].
match
(
/\+(\d)/
)[
0
].
to_i
.
abs
rescue
0
-
lines
=
lines_arr
[
3
..-
1
].
join
-
lines
.
each_line
do
|
line
|
=
diff_line
(
line
,
line_new
,
line_old
)
-
if
line
[
0
]
==
"+"
-
line_new
+=
1
-
elsif
-
line
[
0
]
==
"-"
-
line_old
+=
1
-
else
-
line_new
+=
1
-
line_old
+=
1
-
elsif
file
.
image?
-
elsif
file
.
image?
.diff_file_content_image
.diff_file_content_image
%img
{
:src
=>
"data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"
}
%img
{
:src
=>
"data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"
}
...
...
app/views/commits/_diff_head.html.haml
0 → 100644
View file @
ba8048d7
-
@commit
.
diffs
.
each
do
|
diff
|
-
if
diff
.
deleted_file
%span
.removed_file
%a
{
:href
=>
"##{diff.a_path}"
}
=
diff
.
a_path
=
image_tag
"blueprint_delete.png"
-
elsif
diff
.
renamed_file
%span
.moved_file
%a
{
:href
=>
"##{diff.b_path}"
}
=
diff
.
a_path
=
"->"
=
diff
.
b_path
=
image_tag
"blueprint_notice.png"
-
elsif
diff
.
new_file
%span
.new_file
%a
{
:href
=>
"##{diff.b_path}"
}
=
diff
.
b_path
=
image_tag
"blueprint_add.png"
-
else
%span
.edit_file
%a
{
:href
=>
"##{diff.b_path}"
}
=
diff
.
b_path
=
image_tag
"blueprint_info.png"
app/views/commits/_text_file.html.haml
0 → 100644
View file @
ba8048d7
-
lines_arr
=
diff
.
diff
.
lines
.
to_a
-
line_old
=
lines_arr
[
2
].
match
(
/-(\d)/
)[
0
].
to_i
.
abs
rescue
0
-
line_new
=
lines_arr
[
2
].
match
(
/\+(\d)/
)[
0
].
to_i
.
abs
rescue
0
-
lines
=
lines_arr
[
3
..-
1
].
join
-
lines
.
each_line
do
|
line
|
=
diff_line
(
line
,
line_new
,
line_old
)
-
if
line
[
0
]
==
"+"
-
line_new
+=
1
-
elsif
-
line
[
0
]
==
"-"
-
line_old
+=
1
-
else
-
line_new
+=
1
-
line_old
+=
1
db/fixtures/development/001_admin.rb
View file @
ba8048d7
# Admin account
admin
=
User
.
create
(
admin
=
User
.
create
(
:email
=>
"admin@local.host"
,
:email
=>
"admin@local.host"
,
:name
=>
"Administrator"
,
:name
=>
"Administrator"
,
...
@@ -9,3 +8,12 @@ admin = User.create(
...
@@ -9,3 +8,12 @@ admin = User.create(
admin
.
projects_limit
=
10000
admin
.
projects_limit
=
10000
admin
.
admin
=
true
admin
.
admin
=
true
admin
.
save!
admin
.
save!
if
admin
.
valid?
puts
%q[
Administrator account created:
login.........admin@local.host
password......5iveL!fe
]
end
db/fixtures/production/001_admin.rb
View file @
ba8048d7
...
@@ -8,3 +8,12 @@ admin = User.create(
...
@@ -8,3 +8,12 @@ admin = User.create(
admin
.
projects_limit
=
10000
admin
.
projects_limit
=
10000
admin
.
admin
=
true
admin
.
admin
=
true
admin
.
save!
admin
.
save!
if
admin
.
valid?
puts
%q[
Administrator account created:
login.........admin@local.host
password......5iveL!fe
]
end
install.rb
deleted
100644 → 0
View file @
6b030fd4
root_path
=
File
.
expand_path
(
File
.
dirname
(
__FILE__
))
require
File
.
join
(
root_path
,
"lib"
,
"color"
)
include
Color
#
# ruby ./update.rb development # or test or production (default)
#
envs
=
[
"production"
,
"test"
,
"development"
]
env
=
if
envs
.
include?
(
ARGV
[
0
])
ARGV
[
0
]
else
"production"
end
puts
green
" == Install for ENV=
#{
env
}
..."
# bundle install
`bundle install`
# migrate db
`bundle exec rake db:create RAILS_ENV=
#{
env
}
`
`bundle exec rake db:schema:load RAILS_ENV=
#{
env
}
`
`bundle exec rake db:seed_fu RAILS_ENV=
#{
env
}
`
puts
green
%q[
Administrator account created:
login.........admin@local.host
password......5iveL!fe
]
puts
green
" == Done! Now you can start server"
lib/gitosis.rb
View file @
ba8048d7
...
@@ -42,7 +42,7 @@ class Gitosis
...
@@ -42,7 +42,7 @@ class Gitosis
end
end
def
destroy_project
(
project
)
def
destroy_project
(
project
)
FileUtils
.
rm_rf
(
project
.
path_to_repo
)
`sudo -u git rm -rf
#{
project
.
path_to_repo
}
`
conf
=
IniFile
.
new
(
File
.
join
(
@local_dir
,
'gitosis'
,
'gitosis.conf'
))
conf
=
IniFile
.
new
(
File
.
join
(
@local_dir
,
'gitosis'
,
'gitosis.conf'
))
...
...
spec/models/project_spec.rb
View file @
ba8048d7
...
@@ -4,11 +4,15 @@ describe Project do
...
@@ -4,11 +4,15 @@ describe Project do
describe
"Associations"
do
describe
"Associations"
do
it
{
should
have_many
(
:users
)
}
it
{
should
have_many
(
:users
)
}
it
{
should
have_many
(
:users_projects
)
}
it
{
should
have_many
(
:users_projects
)
}
it
{
should
have_many
(
:issues
)
}
it
{
should
have_many
(
:notes
)
}
it
{
should
have_many
(
:snippets
)
}
end
end
describe
"Validation"
do
describe
"Validation"
do
it
{
should
validate_presence_of
(
:name
)
}
it
{
should
validate_presence_of
(
:name
)
}
it
{
should
validate_presence_of
(
:path
)
}
it
{
should
validate_presence_of
(
:path
)
}
it
{
should
validate_presence_of
(
:code
)
}
end
end
describe
"Respond to"
do
describe
"Respond to"
do
...
@@ -31,6 +35,11 @@ describe Project do
...
@@ -31,6 +35,11 @@ describe Project do
it
{
should
respond_to
(
:commit
)
}
it
{
should
respond_to
(
:commit
)
}
end
end
it
"should not allow 'gitosis-admin' as repo name"
do
should
allow_value
(
"blah"
).
for
(
:path
)
should_not
allow_value
(
"gitosis-admin"
).
for
(
:path
)
end
it
"should return valid url to repo"
do
it
"should return valid url to repo"
do
project
=
Project
.
new
(
:path
=>
"somewhere"
)
project
=
Project
.
new
(
:path
=>
"somewhere"
)
project
.
url_to_repo
.
should
==
"git@localhost:somewhere.git"
project
.
url_to_repo
.
should
==
"git@localhost:somewhere.git"
...
...
spec/requests/team_members_spec.rb
View file @
ba8048d7
...
@@ -29,19 +29,37 @@ describe "TeamMembers" do
...
@@ -29,19 +29,37 @@ describe "TeamMembers" do
describe
"fill in"
do
describe
"fill in"
do
before
do
before
do
check
"team_member_read"
click_link
"Select user"
click_link
"Select user"
click_link
@user_1
.
name
click_link
@user_1
.
name
#select @user_1.name, :from => "team_member_user_id"
within
"#team_member_new"
do
check
"team_member_read"
check
"team_member_write"
end
end
end
it
{
expect
{
click_button
"Save"
}.
to
change
{
UsersProject
.
count
}.
by
(
1
)
}
it
{
expect
{
click_button
"Save"
;
sleep
(
1
)
}.
to
change
{
UsersProject
.
count
}.
by
(
1
)
}
it
"should add new member to table"
do
it
"should add new member to table"
do
click_button
"Save"
click_button
"Save"
@member
=
UsersProject
.
last
page
.
should_not
have_content
(
"Add new member"
)
page
.
should
have_content
@user_1
.
name
page
.
should
have_content
@user_1
.
name
@member
.
read
.
should
be_true
@member
.
write
.
should
be_true
@member
.
admin
.
should
be_false
end
it
"should not allow creation without access selected"
do
within
"#team_member_new"
do
uncheck
"team_member_read"
uncheck
"team_member_write"
uncheck
"team_member_admin"
end
expect
{
click_button
"Save"
}.
to_not
change
{
UsersProject
.
count
}
page
.
should
have_content
(
"Please choose at least one Role in the Access list"
)
end
end
end
end
end
end
...
...
update.rb
deleted
100644 → 0
View file @
6b030fd4
root_path
=
File
.
expand_path
(
File
.
dirname
(
__FILE__
))
require
File
.
join
(
root_path
,
"lib"
,
"color"
)
include
Color
def
version
File
.
read
(
"VERSION"
)
end
#
# ruby ./update.rb development # or test or production (default)
#
envs
=
[
"production"
,
"test"
,
"development"
]
env
=
if
envs
.
include?
(
ARGV
[
0
])
ARGV
[
0
]
else
"production"
end
puts
yellow
"== RAILS ENV |
#{
env
}
"
current_version
=
version
puts
yellow
"Your version is
#{
current_version
}
"
puts
yellow
"Check for new version: $ git pull origin 1x"
`git pull origin 1x`
# pull from origin
# latest version
if
version
==
current_version
puts
yellow
"You have a latest version"
else
puts
green
"Update to
#{
version
}
"
`bundle install`
# migrate db
if
env
==
"development"
`bundle exec rake db:migrate RAILS_ENV=development`
`bundle exec rake db:migrate RAILS_ENV=test`
else
`bundle exec rake db:migrate RAILS_ENV=
#{
env
}
`
end
puts
green
"== Done! Now you can start/restart server"
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment