summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/gitlab/git/blame.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/gitlab/git/blame.rb b/lib/gitlab/git/blame.rb
new file mode 100644
index 00000000000..d6e988b6762
--- /dev/null
+++ b/lib/gitlab/git/blame.rb
@@ -0,0 +1,22 @@
+module Gitlab
+ module Git
+ class Blame
+
+ attr_accessor :repository, :sha, :path
+
+ def initialize(repository, sha, path)
+ @repository, @sha, @path = repository, sha, path
+
+ end
+
+ def each
+ raw_blame = Grit::Blob.blame(repository.repo, sha, path)
+
+ raw_blame.each do |commit, lines|
+ commit = Gitlab::Git::Commit.new(commit)
+ yield(commit, lines)
+ end
+ end
+ end
+ end
+end