Class: Gitolite::UserGroup
- Inherits:
-
Object
- Object
- Gitolite::UserGroup
show all
- Includes:
- Utils
- Defined in:
- lib/gitolite/user_group.rb
Constant Summary
collapse
- GROUP_CONFIG_PATH =
'conf/group-defs'
- UserGroupTemplate =
we need this to make sure that group is there but dummy name is needed to pass gitolite check DUMMY_USERNAME = ‘r8_dummy_group_user’
Erubis::Eruby.new <<-eos
@<%=user_group.name%> = <%= user_group.members.empty? ? 'r8_dummy_group_user' : user_group.members.join(' ') %>
eos
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Utils
#gitolite_friendly, #is_subset?, #raise_gitolite_error, #validate_gitolite_conf_file
Constructor Details
#initialize(group_name, logger_, gitolite_path, gitolite_branch = "master") ⇒ UserGroup
Returns a new instance of UserGroup.
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/gitolite/user_group.rb', line 33
def initialize(group_name, logger_, gitolite_path, gitolite_branch = "master")
@name = group_name
@members = []
@commit_messages = []
@group_file_path = File.join(GROUP_CONFIG_PATH, "#{@name}.conf")
@gitolite_admin_repo ||= Git::FileAccess.new(gitolite_path, gitolite_branch)
@logger = logger_
if exists?
load_group()
end
end
|
Instance Attribute Details
#logger ⇒ Object
Returns the value of attribute logger.
31
32
33
|
# File 'lib/gitolite/user_group.rb', line 31
def logger
@logger
end
|
#members ⇒ Object
Returns the value of attribute members.
31
32
33
|
# File 'lib/gitolite/user_group.rb', line 31
def members
@members
end
|
#name ⇒ Object
Returns the value of attribute name.
31
32
33
|
# File 'lib/gitolite/user_group.rb', line 31
def name
@name
end
|
Instance Method Details
#add_git_usernames(array_of_usernames) ⇒ Object
72
73
74
75
76
77
78
|
# File 'lib/gitolite/user_group.rb', line 72
def add_git_usernames(array_of_usernames)
unless is_subset?(@members, array_of_usernames)
@members.concat(array_of_usernames)
@members.uniq!
@commit_messages << "Added users (#{array_of_usernames.join(', ')}) to group '#{@name}'"
end
end
|
#any_changes? ⇒ Boolean
68
69
70
|
# File 'lib/gitolite/user_group.rb', line 68
def any_changes?
!@commit_messages.empty?
end
|
#commit_changes(override_commit_message = nil) ⇒ Object
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'lib/gitolite/user_group.rb', line 93
def commit_changes(override_commit_message = nil)
unless @commit_messages.empty?
content = file_content()
commit_msg = override_commit_message || @commit_messages.join(', ')
@gitolite_admin_repo.add_file(@group_file_path,content)
@gitolite_admin_repo.commit(commit_msg)
@logger.info(commit_msg)
else
@logger.info("There has been no changes on group '#{@name}' skipping gitolite commit.")
end
end
|
#exists? ⇒ Boolean
64
65
66
|
# File 'lib/gitolite/user_group.rb', line 64
def exists?
!@gitolite_admin_repo.file_content(@group_file_path).nil?
end
|
#file_content ⇒ Object
110
111
112
|
# File 'lib/gitolite/user_group.rb', line 110
def file_content()
UserGroupTemplate.result(:user_group => self)
end
|
#load_group ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/gitolite/user_group.rb', line 46
def load_group()
raw_content = @gitolite_admin_repo.file_content(@group_file_path)
unless raw_content
raise Gitolite::NotFound, "Configuration file for user group (#{@name}) does not exist"
end
raw_content.each_line do |l|
l.chomp!()
if l =~ /.*=(.+)$/
raw_members = $1
@members = raw_members.chomp().split(' ')
else
raise ::Error::GitoliteParsing, "Parsing groups error: (#{l})"
end
end
end
|
#remove_git_usernames(array_of_usernames) ⇒ Object
86
87
88
89
90
91
|
# File 'lib/gitolite/user_group.rb', line 86
def remove_git_usernames(array_of_usernames)
if is_subset?(@members, array_of_usernames)
@members = @members - array_of_usernames
@commit_messages << "Removed users (#{array_of_usernames.join(', ')}) from group '#{@name}'"
end
end
|
#set_git_usernames(array_of_usernames) ⇒ Object
80
81
82
83
84
|
# File 'lib/gitolite/user_group.rb', line 80
def set_git_usernames(array_of_usernames)
@members = []
add_git_usernames(array_of_usernames)
end
|