From 1ea0dd0ffc37232d27f4fa1350af6ebb3b5439f2 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Thu, 25 Oct 2012 11:59:41 +0300 Subject: App docs --- doc/app/Repository.html | 1566 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1566 insertions(+) create mode 100644 doc/app/Repository.html (limited to 'doc/app/Repository.html') diff --git a/doc/app/Repository.html b/doc/app/Repository.html new file mode 100644 index 00000000000..cb68146cfda --- /dev/null +++ b/doc/app/Repository.html @@ -0,0 +1,1566 @@ + + + + + + +module Repository - Rails Application Documentation + + + + + + + + + + + + + + + + +
+

module Repository

+ +
+ +
+ + + + +
+ + + + + + + + + + +
+

Public Instance Methods

+ + +
+ +
+ archive_repo(ref) + click to toggle source +
+ + +
+ +

Archive Project to .tar.gz

+ +

Already packed repo archives stored at +app_root/tmp/repositories/project_name/project_name-commit-id.tag.gz

+ + + +
+
# File app/roles/repository.rb, line 157
+def archive_repo(ref)
+  ref = ref || self.root_ref
+  commit = self.commit(ref)
+  return nil unless commit
+
+  # Build file path
+  file_name = self.code + "-" + commit.id.to_s + ".tar.gz"
+  storage_path = Rails.root.join("tmp", "repositories", self.code)
+  file_path = File.join(storage_path, file_name)
+
+  # Put files into a directory before archiving
+  prefix = self.code + "/"
+
+  # Create file if not exists
+  unless File.exists?(file_path)
+    FileUtils.mkdir_p storage_path
+    file = self.repo.archive_to_file(ref, prefix,  file_path)
+  end
+
+  file_path
+end
+
+ +
+ + + + +
+ + +
+ +
+ branch_names() + click to toggle source +
+ + +
+ +

Returns an Array of branch names

+ + + +
+
# File app/roles/repository.rb, line 53
+def branch_names
+  repo.branches.collect(&:name).sort
+end
+
+ +
+ + + + +
+ + +
+ +
+ branches() + click to toggle source +
+ + +
+ +

Returns an Array of Branches

+ + + +
+
# File app/roles/repository.rb, line 58
+def branches
+  repo.branches.sort_by(&:name)
+end
+
+ +
+ + + + +
+ + +
+ +
+ commit(commit_id = nil) + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 15
+def commit(commit_id = nil)
+  Commit.find_or_first(repo, commit_id, root_ref)
+end
+
+ +
+ + + + +
+ + +
+ +
+ commits(ref, path = nil, limit = nil, offset = nil) + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 31
+def commits(ref, path = nil, limit = nil, offset = nil)
+  Commit.commits(repo, ref, path, limit, offset)
+end
+
+ +
+ + + + +
+ + +
+ +
+ commits_between(from, to) + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 39
+def commits_between(from, to)
+  Commit.commits_between(repo, from, to)
+end
+
+ +
+ + + + +
+ + +
+ +
+ commits_since(date) + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 27
+def commits_since(date)
+  Commit.commits_since(repo, date)
+end
+
+ +
+ + + + +
+ + +
+ +
+ commits_with_refs(n = 20) + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 23
+def commits_with_refs(n = 20)
+  Commit.commits_with_refs(repo, n)
+end
+
+ +
+ + + + +
+ + +
+ +
+ destroy_repository() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 93
+def destroy_repository
+  git_host.remove_repository(self)
+end
+
+ +
+ + + + +
+ + +
+ +
+ discover_default_branch() + click to toggle source +
+ + +
+ +

Discovers the default branch based on the repository’s available branches

+
  • +

    If no branches are present, returns nil

    +
  • +

    If one branch is present, returns its name

    +
  • +

    If two or more branches are present, returns the one that has a name +matching #root_ref +(default_branch or ‘master’ if default_branch is nil)

    +
+ + + +
+
# File app/roles/repository.rb, line 128
+def discover_default_branch
+  if branch_names.length == 0
+    nil
+  elsif branch_names.length == 1
+    branch_names.first
+  else
+    branch_names.select { |v| v == root_ref }.first
+  end
+end
+
+ +
+ + + + +
+ + +
+ +
+ empty_repo?() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 11
+def empty_repo?
+  !repo_exists? || !has_commits?
+end
+
+ +
+ + + + +
+ + +
+ +
+ fresh_commits(n = 10) + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 19
+def fresh_commits(n = 10)
+  Commit.fresh_commits(repo, n)
+end
+
+ +
+ + + + +
+ + +
+ +
+ has_commits?() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 138
+def has_commits?
+  !!commit
+rescue Grit::NoSuchPathError
+  false
+end
+
+ +
+ + + + +
+ + +
+ +
+ has_post_receive_file?() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 47
+def has_post_receive_file?
+  hook_file = File.join(path_to_repo, 'hooks', 'post-receive')
+  File.exists?(hook_file)
+end
+
+ +
+ + + + +
+ + +
+ +
+ heads() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 103
+def heads
+  @heads ||= repo.heads
+end
+
+ +
+ + + + +
+ + +
+ +
+ http_url_to_repo() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 183
+def http_url_to_repo
+  http_url = [Gitlab.config.url, "/", path, ".git"].join('')
+end
+
+ +
+ + + + +
+ + +
+ +
+ last_commit_for(ref, path = nil) + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 35
+def last_commit_for(ref, path = nil)
+  commits(ref, path, 1).first
+end
+
+ +
+ + + + +
+ + +
+ +
+ open_branches() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 113
+def open_branches
+  if protected_branches.empty?
+    self.repo.heads
+  else
+    pnames = protected_branches.map(&:name)
+    self.repo.heads.reject { |h| pnames.include?(h.name) }
+  end.sort_by(&:name)
+end
+
+ +
+ + + + +
+ + +
+ +
+ path_to_repo() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 85
+def path_to_repo
+  File.join(Gitlab.config.git_base_path, "#{path}.git")
+end
+
+ +
+ + + + +
+ + +
+ +
+ protected_branch?(branch_name) + click to toggle source +
+ + +
+ +

Check if current branch name is marked as protected in the system

+ + + +
+
# File app/roles/repository.rb, line 188
+def protected_branch? branch_name
+  protected_branches.map(&:name).include?(branch_name)
+end
+
+ +
+ + + + +
+ + +
+ +
+ ref_names() + click to toggle source +
+ + +
+ +

Returns an Array of branch and tag names

+ + + +
+
# File app/roles/repository.rb, line 73
+def ref_names
+  [branch_names + tag_names].flatten
+end
+
+ +
+ + + + +
+ + +
+ +
+ repo() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 77
+def repo
+  @repo ||= Grit::Repo.new(path_to_repo)
+end
+
+ +
+ + + + +
+ + +
+ +
+ repo_exists?() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 97
+def repo_exists?
+  @repo_exists ||= (repo && !repo.branches.empty?)
+rescue
+  @repo_exists = false
+end
+
+ +
+ + + + +
+ + +
+ +
+ root_ref() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 144
+def root_ref
+  default_branch || "master"
+end
+
+ +
+ + + + +
+ + +
+ +
+ root_ref?(branch) + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 148
+def root_ref?(branch)
+  root_ref == branch
+end
+
+ +
+ + + + +
+ + +
+ +
+ satellite() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 43
+def satellite
+  @satellite ||= Gitlab::Satellite.new(self)
+end
+
+ +
+ + + + +
+ + +
+ +
+ ssh_url_to_repo() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 179
+def ssh_url_to_repo
+  url_to_repo
+end
+
+ +
+ + + + +
+ + +
+ +
+ tag_names() + click to toggle source +
+ + +
+ +

Returns an Array of tag names

+ + + +
+
# File app/roles/repository.rb, line 63
+def tag_names
+  repo.tags.collect(&:name).sort.reverse
+end
+
+ +
+ + + + +
+ + +
+ +
+ tags() + click to toggle source +
+ + +
+ +

Returns an Array of Tags

+ + + +
+
# File app/roles/repository.rb, line 68
+def tags
+  repo.tags.sort_by(&:name).reverse
+end
+
+ +
+ + + + +
+ + +
+ +
+ tree(fcommit, path = nil) + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 107
+def tree(fcommit, path = nil)
+  fcommit = commit if fcommit == :head
+  tree = fcommit.tree
+  path ? (tree / path) : tree
+end
+
+ +
+ + + + +
+ + +
+ +
+ update_repository() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 89
+def update_repository
+  git_host.update_repository(self)
+end
+
+ +
+ + + + +
+ + +
+ +
+ url_to_repo() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 81
+def url_to_repo
+  git_host.url_to_repo(path)
+end
+
+ +
+ + + + +
+ + +
+ +
+ valid_repo?() + click to toggle source +
+ + +
+ + + + + +
+
# File app/roles/repository.rb, line 4
+def valid_repo?
+  repo
+rescue
+  errors.add(:path, "Invalid repository path")
+  false
+end
+
+ +
+ + + + +
+ + +
+ +
+ +
+ + + + -- cgit v1.2.1