lib/gitlab/client/repositories.rb in gitlab-3.2.0 vs lib/gitlab/client/repositories.rb in gitlab-3.3.0
- old
+ new
@@ -17,18 +17,19 @@
alias_method :repo_tags, :tags
# Creates a new project repository tag.
#
# @example
- # Gitlab.create_tag(42,'new_tag','master'))
+ # Gitlab.create_tag(42,'new_tag','master')
#
# @param [Integer] project The ID of a project.
# @param [String] tag_name The name of the new tag.
# @param [String] ref The ref (commit sha, branch name, or another tag) the tag will point to.
+ # @param [String] message Optional message for tag, creates annotated tag if specified.
# @return [Gitlab::ObjectifiedHash]
- def create_tag(project, tag_name, ref)
- post("/projects/#{project}/repository/tags", body: {tag_name: tag_name, ref: ref})
+ def create_tag(project, tag_name, ref, message='')
+ post("/projects/#{project}/repository/tags", body: {tag_name: tag_name, ref: ref, message: message})
end
alias_method :repo_create_tag, :create_tag
# Gets a list of project commits.
#
@@ -69,10 +70,89 @@
#
# @param [Integer] project The ID of a project.
# @param [String] sha The name of a repository branch or tag or if not given the default branch.
# @return [Gitlab::ObjectifiedHash]
def commit_diff(project, sha)
- get("/projects/#{project}/repository/commits/#{sha}/diff")
+ get("/projects/#{project}/repository/commits/#{sha}/diff")
end
alias_method :repo_commit_diff, :commit_diff
+
+ # Get the contents of a file
+ #
+ # @example
+ # Gitlab.file_contents(42, 'Gemfile')
+ # Gitlab.repo_file_contents(3, 'Gemfile', 'ed899a2f4b50b4370feeea94676502b42383c746')
+ #
+ # @param [Integer] project The ID of a project.
+ # @param [String] filepath The relative path of the file in the repository
+ # @param [String] ref The name of a repository branch or tag or if not given the default branch.
+ # @return [String]
+ def file_contents(project, filepath, ref = 'master')
+ get "/projects/#{project}/repository/blobs/#{ref}?filepath=#{filepath}",
+ format: nil,
+ headers: { Accept: 'text/plain' },
+ parser: ::Gitlab::Request::Parser
+ end
+ alias_method :repo_file_contents, :file_contents
+
+ # Gets a list of comments for a commit.
+ #
+ # @example
+ # Gitlab.commit_comments(5, c9f9662a9b1116c838b523ed64c6abdb4aae4b8b)
+ #
+ # @param [Integer] project The ID of a project.
+ # @param [String] sha The commit hash or name of a repository branch or tag.
+ # @option options [Integer] :page The page number.
+ # @option options [Integer] :per_page The number of results per page.
+ # @return [Array<Gitlab::ObjectifiedHash>]
+ def commit_comments(project, commit, options={})
+ get("/projects/#{project}/repository/commits/#{commit}/comments", :query => options)
+ end
+ alias_method :repo_commit_comments, :commit_comments
+
+ # Creates a new comment for a commit.
+ #
+ # @param [Integer] project The ID of a project.
+ # @param [String] sha The commit hash or name of a repository branch or tag.
+ # @param [String] note The text of a comment.
+ # @param [Hash] options A customizable set of options.
+ # @option options [String] :path The file path.
+ # @option options [Integer] :line The line number.
+ # @option options [String] :line_type The line type (new or old).
+ # @return [Gitlab::ObjectifiedHash] Information about created comment.
+ def create_commit_comment(project, commit, note, options={})
+ post("/projects/#{project}/repository/commits/#{commit}/comments", :body => options.merge(:note => note))
+ end
+ alias_method :repo_create_commit_comment, :create_commit_comment
+
+ # Get file tree project (root level).
+ #
+ # @example
+ # Gitlab.tree(42)
+ # Gitlab.tree(42, path: "Gemfile")
+ #
+ # @param [Integer] project The ID of a project.
+ # @param [Hash] options A customizable set of options.
+ # @option options [String] :path The path inside repository.
+ # @option options [String] :ref_name The name of a repository branch or tag.
+ # @return [Gitlab::ObjectifiedHash]
+ def tree(project, options={})
+ get("/projects/#{project}/repository/tree", query: options)
+ end
+ alias_method :repo_tree, :tree
+
+ # Compares branches, tags or commits.
+ #
+ # @example
+ # Gitlab.compare(42, 'master', 'feature/branch')
+ # Gitlab.repo_compare(42, 'master', 'feature/branch')
+ #
+ # @param [Integer] project The ID of a project.
+ # @param [String] from The commit SHA or branch name of from branch.
+ # @param [String] to The commit SHA or branch name of to branch.
+ # @return [Gitlab::ObjectifiedHash]
+ def compare(project, from, to)
+ get("/projects/#{project}/repository/compare", :query => {:from => from, :to => to})
+ end
+ alias_method :repo_compare, :compare
end
end