@@ -193,12 +193,12 @@ def self.get_full_parent_path(repository, is_file_path)
193
193
def self . lock ( retries )
194
194
is_locked = false
195
195
if @@lock_file . nil?
196
- @@lock_file = File . new ( File . join ( get_tmp_dir , 'redmine_git_hosting_lock' ) , File ::CREAT |File ::RDONLY )
196
+ @@lock_file = File . new ( File . join ( get_tmp_dir , 'redmine_git_hosting_lock' ) , File ::CREAT |File ::RDONLY )
197
197
end
198
198
199
199
while retries > 0
200
200
is_locked = @@lock_file . flock ( File ::LOCK_EX |File ::LOCK_NB )
201
- retries -= 1
201
+ retries -= 1
202
202
if ( !is_locked ) && retries > 0
203
203
sleep 1
204
204
end
@@ -741,7 +741,8 @@ def self.fixup_gitolite_admin
741
741
742
742
%x[#{ GitHosting . git_user_runner } 'rm -rf "#{ File . join ( Dir . tmpdir , 'fixrepo' ) } "']
743
743
%x[rm -rf "#{ File . join ( Dir . tmpdir , 'fixconf' ) } "]
744
- logger . info "[GitHosting] Success!"
744
+ logger . warn "[GitHosting] Success!"
745
+ logger . warn ""
745
746
rescue => e
746
747
logger . error "Failed to reestablish Gitolite Admin key."
747
748
logger . error e . message
@@ -787,7 +788,7 @@ def self.commit_gitolite_admin(*args)
787
788
logger . info ""
788
789
rescue
789
790
logger . error "Problems committing changes to Gitolite Admin repository!! Probably requires human intervention"
790
- logger . info ""
791
+ logger . error ""
791
792
raise GitHostingException , "Gitolite Admin repository commit failure"
792
793
end
793
794
end
@@ -872,15 +873,18 @@ def self.update_repositories(*args)
872
873
873
874
if git_projects . empty?
874
875
logger . info "[GitHosting] Got no projects to work on..."
876
+ logger . info ""
875
877
return
876
878
else
877
879
logger . info "[GitHosting] Got projects, move on!"
880
+ logger . info ""
878
881
end
879
882
880
883
if ( defined? ( @@recursionCheck ) )
881
884
if ( @@recursionCheck )
882
885
# This shouldn't happen any more -- log as error
883
886
logger . error "[GitHosting] update_repositories() exited with positive recursionCheck flag!"
887
+ logger . error ""
884
888
return
885
889
end
886
890
end
@@ -890,14 +894,14 @@ def self.update_repositories(*args)
890
894
# Grab actual lock
891
895
if !lock ( GitHostingConf . lock_wait_time )
892
896
logger . error "[GitHosting] update_repositories() exited without acquiring lock!"
897
+ logger . error ""
893
898
@@recursionCheck = false
894
899
return
895
900
end
896
901
897
902
begin
898
903
# Make sure we have gitolite-admin cloned.
899
904
# If have uncommitted changes, reflect in "changed" flag.
900
- logger . info ""
901
905
logger . info "[GitHosting] ############ GRAB GITOLITE ADMIN REPO ############"
902
906
changed = !clone_or_pull_gitolite_admin ( flags [ :resync_all ] )
903
907
@@ -907,8 +911,10 @@ def self.update_repositories(*args)
907
911
logger . info ""
908
912
logger . info "[GitHosting] ############ UPDATE SSH KEYS ############"
909
913
logger . info "[GitHosting] Updating key directory for projects : '#{ git_projects . join ', ' } '"
914
+
910
915
keydir = File . join ( repo_dir , "keydir" )
911
916
old_keyhash = { }
917
+
912
918
Dir . foreach ( keydir ) do |keyfile |
913
919
user_token = GitolitePublicKey . ident_to_user_token ( keyfile )
914
920
if !user_token . nil?
@@ -919,6 +925,7 @@ def self.update_repositories(*args)
919
925
920
926
# Collect relevant users into hash with user as key and activity (in some active project) as value
921
927
( git_projects . select { |proj | proj . active? && proj . module_enabled? ( :repository ) } . map { |proj | proj . member_principals . map ( &:user ) . compact } . flatten . uniq << GitolitePublicKey ::DEPLOY_PSEUDO_USER ) . each do |cur_user |
928
+
922
929
if cur_user == GitolitePublicKey ::DEPLOY_PSEUDO_USER
923
930
active_keys = DeploymentCredential . active . select ( &:honored? ) . map ( &:gitolite_public_key ) . uniq
924
931
cur_token = cur_user
@@ -941,6 +948,7 @@ def self.update_repositories(*args)
941
948
active_keys . each do |key |
942
949
key_id = key . identifier
943
950
key_token = GitolitePublicKey . ident_to_user_token ( key_id )
951
+
944
952
if key_token != cur_token
945
953
# Rare case -- user login changed. Fix it.
946
954
key_id = key . reset_identifier
@@ -949,10 +957,11 @@ def self.update_repositories(*args)
949
957
old_keynames += ( old_keyhash [ key_token ] || [ ] )
950
958
old_keyhash . delete ( key_token )
951
959
end
952
- cur_keynames << "#{ key_id } .pub"
960
+ cur_keynames . push "#{ key_id } .pub"
953
961
end
954
962
955
- ( old_keynames - cur_keynames ) . each do |keyname |
963
+ keys_to_delete = ( old_keynames - cur_keynames )
964
+ keys_to_delete . each do |keyname |
956
965
logger . warn "[GitHosting] Removing Redmine key from Gitolite : '#{ keyname } '"
957
966
%x[git --git-dir='#{ repo_dir } /.git' --work-tree='#{ repo_dir } ' rm keydir/#{ keyname } ]
958
967
changed = true
@@ -976,7 +985,7 @@ def self.update_repositories(*args)
976
985
# Remove keys for deleted users
977
986
orphanString = flags [ :resync_all ] ? "orphan " : ""
978
987
979
- if flags [ :resync_all ] || flags [ :delete ] || flags [ : archive]
988
+ if flags [ :resync_all ] || flags [ :archive ]
980
989
# All keys left in old_keyhash should be for users nolonger authorized for gitolite repos
981
990
old_keyhash . each_value do |keyset |
982
991
keyset . each do |keyname |
0 commit comments