summaryrefslogtreecommitdiff
path: root/lib/gitlabhq
diff options
context:
space:
mode:
authorrandx <dmitriy.zaporozhets@gmail.com>2012-05-26 13:37:49 +0300
committerrandx <dmitriy.zaporozhets@gmail.com>2012-05-26 13:37:49 +0300
commit3272620f724737f4dbb5e8c02f1610946435cd29 (patch)
treeae9fb3daccdf6b008ccb9c31d435e9548113c6ee /lib/gitlabhq
parent8ceb94081ac516ccaed43f0f4841725a4f9fe2db (diff)
downloadgitlab-ce-3272620f724737f4dbb5e8c02f1610946435cd29.tar.gz
lib/ refactoring. Module Gitlabhq renamed to Gitlab
Diffstat (limited to 'lib/gitlabhq')
-rw-r--r--lib/gitlabhq/encode.rb20
-rw-r--r--lib/gitlabhq/git_host.rb21
-rw-r--r--lib/gitlabhq/gitolite.rb157
-rw-r--r--lib/gitlabhq/logger.rb8
-rw-r--r--lib/gitlabhq/satellite.rb41
5 files changed, 0 insertions, 247 deletions
diff --git a/lib/gitlabhq/encode.rb b/lib/gitlabhq/encode.rb
deleted file mode 100644
index df40206d5eb..00000000000
--- a/lib/gitlabhq/encode.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-module Gitlabhq
- module Encode
- extend self
-
- def utf8 message
- return nil unless message
-
- hash = CharlockHolmes::EncodingDetector.detect(message) rescue {}
- if hash[:encoding]
- CharlockHolmes::Converter.convert(message, hash[:encoding], 'UTF-8')
- else
- message
- end.force_encoding("utf-8")
- # Prevent app from crash cause of
- # encoding errors
- rescue
- ""
- end
- end
-end
diff --git a/lib/gitlabhq/git_host.rb b/lib/gitlabhq/git_host.rb
deleted file mode 100644
index 9a6eecb3f0a..00000000000
--- a/lib/gitlabhq/git_host.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-require File.join(Rails.root, "lib", "gitlabhq", "gitolite")
-
-module Gitlabhq
- class GitHost
- def self.system
- Gitlabhq::Gitolite
- end
-
- def self.admin_uri
- GIT_HOST["admin_uri"]
- end
-
- def self.url_to_repo(path)
- if !GIT_HOST["port"] or GIT_HOST["port"] == 22
- "#{GIT_HOST["git_user"]}@#{GIT_HOST["host"]}:#{path}.git"
- else
- "ssh://#{GIT_HOST["git_user"]}@#{GIT_HOST["host"]}:#{GIT_HOST["port"]}/#{path}.git"
- end
- end
- end
-end
diff --git a/lib/gitlabhq/gitolite.rb b/lib/gitlabhq/gitolite.rb
deleted file mode 100644
index 48c67082b22..00000000000
--- a/lib/gitlabhq/gitolite.rb
+++ /dev/null
@@ -1,157 +0,0 @@
-require 'gitolite'
-require 'timeout'
-require 'fileutils'
-
-module Gitlabhq
- class Gitolite
- class AccessDenied < StandardError; end
-
- def self.update_project(path, project)
- self.new.configure { |git| git.update_project(path, project) }
- end
-
- def self.destroy_project(project)
- self.new.configure { |git| git.destroy_project(project) }
- end
-
- def pull
- # create tmp dir
- @local_dir = File.join(Dir.tmpdir,"gitlabhq-gitolite-#{Time.now.to_i}")
- Dir.mkdir @local_dir
-
- `git clone #{GitHost.admin_uri} #{@local_dir}/gitolite`
- end
-
- def push
- Dir.chdir(File.join(@local_dir, "gitolite"))
- `git add -A`
- `git commit -am "Gitlab"`
- `git push`
- Dir.chdir(Rails.root)
-
- FileUtils.rm_rf(@local_dir)
- end
-
- def configure
- status = Timeout::timeout(20) do
- File.open(File.join(Dir.tmpdir,"gitlabhq-gitolite.lock"), "w+") do |f|
- begin
- f.flock(File::LOCK_EX)
- pull
- yield(self)
- push
- ensure
- f.flock(File::LOCK_UN)
- end
- end
- end
- rescue Exception => ex
- Gitlabhq::Logger.error(ex.message)
- raise Gitolite::AccessDenied.new("gitolite timeout")
- end
-
- def destroy_project(project)
- FileUtils.rm_rf(project.path_to_repo)
-
- ga_repo = ::Gitolite::GitoliteAdmin.new(File.join(@local_dir,'gitolite'))
- conf = ga_repo.config
- conf.rm_repo(project.path)
- ga_repo.save
- end
-
- #update or create
- def update_keys(user, key)
- File.open(File.join(@local_dir, 'gitolite/keydir',"#{user}.pub"), 'w') {|f| f.write(key.gsub(/\n/,'')) }
- end
-
- def delete_key(user)
- File.unlink(File.join(@local_dir, 'gitolite/keydir',"#{user}.pub"))
- `cd #{File.join(@local_dir,'gitolite')} ; git rm keydir/#{user}.pub`
- end
-
- # update or create
- def update_project(repo_name, project)
- ga_repo = ::Gitolite::GitoliteAdmin.new(File.join(@local_dir,'gitolite'))
- conf = ga_repo.config
- repo = update_project_config(project, conf)
- conf.add_repo(repo, true)
-
- ga_repo.save
- end
-
- # Updates many projects and uses project.path as the repo path
- # An order of magnitude faster than update_project
- def update_projects(projects)
- ga_repo = ::Gitolite::GitoliteAdmin.new(File.join(@local_dir,'gitolite'))
- conf = ga_repo.config
-
- projects.each do |project|
- repo = update_project_config(project, conf)
- conf.add_repo(repo, true)
- end
-
- ga_repo.save
- end
-
- def update_project_config(project, conf)
- repo_name = project.path
-
- repo = if conf.has_repo?(repo_name)
- conf.get_repo(repo_name)
- else
- ::Gitolite::Config::Repo.new(repo_name)
- end
-
- name_readers = project.repository_readers
- name_writers = project.repository_writers
- name_masters = project.repository_masters
-
- pr_br = project.protected_branches.map(&:name).join(" ")
-
- repo.clean_permissions
-
- # Deny access to protected branches for writers
- unless name_writers.blank? || pr_br.blank?
- repo.add_permission("-", pr_br, name_writers)
- end
-
- # Add read permissions
- repo.add_permission("R", "", name_readers) unless name_readers.blank?
-
- # Add write permissions
- repo.add_permission("RW+", "", name_writers) unless name_writers.blank?
- repo.add_permission("RW+", "", name_masters) unless name_masters.blank?
-
- repo
- end
-
- def admin_all_repo
- ga_repo = ::Gitolite::GitoliteAdmin.new(File.join(@local_dir,'gitolite'))
- conf = ga_repo.config
- owner_name = ""
-
- # Read gitolite-admin user
- #
- begin
- repo = conf.get_repo("gitolite-admin")
- owner_name = repo.permissions[0]["RW+"][""][0]
- raise StandardError if owner_name.blank?
- rescue => ex
- puts "Cant determine gitolite-admin owner".red
- raise StandardError
- end
-
- # @ALL repos premission for gitolite owner
- repo_name = "@all"
- repo = if conf.has_repo?(repo_name)
- conf.get_repo(repo_name)
- else
- ::Gitolite::Config::Repo.new(repo_name)
- end
-
- repo.add_permission("RW+", "", owner_name)
- conf.add_repo(repo, true)
- ga_repo.save
- end
- end
-end
diff --git a/lib/gitlabhq/logger.rb b/lib/gitlabhq/logger.rb
deleted file mode 100644
index 08b4bde0b0c..00000000000
--- a/lib/gitlabhq/logger.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-module Gitlabhq
- class Logger
- def self.error(message)
- @@logger ||= ::Logger.new(File.join(Rails.root, "log/githost.log"))
- @@logger.error(message)
- end
- end
-end
diff --git a/lib/gitlabhq/satellite.rb b/lib/gitlabhq/satellite.rb
deleted file mode 100644
index cd713a647cc..00000000000
--- a/lib/gitlabhq/satellite.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-module Gitlabhq
- class Satellite
-
- PARKING_BRANCH = "__parking_branch"
-
- attr_accessor :project
-
- def initialize project
- self.project = project
- end
-
- def create
- `git clone #{project.url_to_repo} #{path}`
- end
-
- def path
- File.join(Rails.root, "tmp", "repo_satellites", project.path)
- end
-
- def exists?
- File.exists? path
- end
-
- #will be deleted all branches except PARKING_BRANCH
- def clear
- Dir.chdir(path) do
- heads = Grit::Repo.new(".").heads.map{|head| head.name}
- if heads.include? PARKING_BRANCH
- `git checkout #{PARKING_BRANCH}`
- else
- `git checkout -b #{PARKING_BRANCH}`
- end
- heads.delete(PARKING_BRANCH)
- heads.each do |head|
- `git branch -D #{head}`
- end
- end
- end
-
- end
-end