lib/gitlab/client/repository_files.rb in gitlab-4.6.0 vs lib/gitlab/client/repository_files.rb in gitlab-4.6.1

- old
+ new

@@ -1,113 +1,115 @@ # frozen_string_literal: true require 'base64' -# Defines methods related to repository files. -# @see https://docs.gitlab.com/ce/api/repository_files.html -module RepositoryFiles - # Get the contents of a file - # - # @example - # Gitlab.file_contents(42, 'Gemfile') - # Gitlab.repo_file_contents(3, 'Gemfile', 'ed899a2f4b50b4370feeea94676502b42383c746') - # - # @param [Integer, String] project The ID or name 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/#{url_encode project}/repository/files/#{url_encode filepath}/raw", - query: { ref: ref }, - format: nil, - headers: { Accept: 'text/plain' }, - parser: ::Gitlab::Request::Parser - end - alias repo_file_contents file_contents +class Gitlab::Client + # Defines methods related to repository files. + # @see https://docs.gitlab.com/ce/api/repository_files.html + module RepositoryFiles + # Get the contents of a file + # + # @example + # Gitlab.file_contents(42, 'Gemfile') + # Gitlab.repo_file_contents(3, 'Gemfile', 'ed899a2f4b50b4370feeea94676502b42383c746') + # + # @param [Integer, String] project The ID or name 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/#{url_encode project}/repository/files/#{url_encode filepath}/raw", + query: { ref: ref }, + format: nil, + headers: { Accept: 'text/plain' }, + parser: ::Gitlab::Request::Parser + end + alias repo_file_contents file_contents - # Gets a repository file. - # - # @example - # Gitlab.get_file(42, "README.md", "master") - # - # @param [Integer, String] project The ID or name of a project. - # @param [String] file_path The full path of the file. - # @param [String] ref The name of branch, tag or commit. - # @return [Gitlab::ObjectifiedHash] - def get_file(project, file_path, ref) - get("/projects/#{url_encode project}/repository/files/#{url_encode file_path}", query: { - ref: ref - }) - end + # Gets a repository file. + # + # @example + # Gitlab.get_file(42, "README.md", "master") + # + # @param [Integer, String] project The ID or name of a project. + # @param [String] file_path The full path of the file. + # @param [String] ref The name of branch, tag or commit. + # @return [Gitlab::ObjectifiedHash] + def get_file(project, file_path, ref) + get("/projects/#{url_encode project}/repository/files/#{url_encode file_path}", query: { + ref: ref + }) + end - # Creates a new repository file. - # - # @example - # Gitlab.create_file(42, "path", "branch", "content", "commit message") - # - # @param [Integer, String] project The ID or name of a project. - # @param [String] path full path to new file. - # @param [String] branch the name of the branch. - # @param [String] content file content. - # @param [String] commit_message ...commit message. - # @param [Hash] options Optional additional details for commit - # @option options [String] :author_name Commit author's name - # @option options [String] :author_email Commit author's email address - # @return [Gitlab::ObjectifiedHash] - def create_file(project, path, branch, content, commit_message, options = {}) - post("/projects/#{url_encode project}/repository/files/#{url_encode path}", body: { - branch: branch, - commit_message: commit_message - }.merge(options).merge(encoded_content_attributes(content))) - end + # Creates a new repository file. + # + # @example + # Gitlab.create_file(42, "path", "branch", "content", "commit message") + # + # @param [Integer, String] project The ID or name of a project. + # @param [String] path full path to new file. + # @param [String] branch the name of the branch. + # @param [String] content file content. + # @param [String] commit_message ...commit message. + # @param [Hash] options Optional additional details for commit + # @option options [String] :author_name Commit author's name + # @option options [String] :author_email Commit author's email address + # @return [Gitlab::ObjectifiedHash] + def create_file(project, path, branch, content, commit_message, options = {}) + post("/projects/#{url_encode project}/repository/files/#{url_encode path}", body: { + branch: branch, + commit_message: commit_message + }.merge(options).merge(encoded_content_attributes(content))) + end - # Edits an existing repository file. - # - # @example - # Gitlab.edit_file(42, "path", "branch", "content", "commit message") - # - # @param [Integer, String] project The ID or name of a project. - # @param [String] path full path of file to update. - # @param [String] branch the name of the branch to commit changes to. - # @param [String] content new file content. - # @param [String] commit_message ...commit message. - # @param [Hash] options Optional additional details for commit - # @option options [String] :author_name Commit author's name - # @option options [String] :author_email Commit author's email address - # @return [Gitlab::ObjectifiedHash] - def edit_file(project, path, branch, content, commit_message, options = {}) - put("/projects/#{url_encode project}/repository/files/#{url_encode path}", body: { - branch: branch, - commit_message: commit_message - }.merge(options).merge(encoded_content_attributes(content))) - end + # Edits an existing repository file. + # + # @example + # Gitlab.edit_file(42, "path", "branch", "content", "commit message") + # + # @param [Integer, String] project The ID or name of a project. + # @param [String] path full path of file to update. + # @param [String] branch the name of the branch to commit changes to. + # @param [String] content new file content. + # @param [String] commit_message ...commit message. + # @param [Hash] options Optional additional details for commit + # @option options [String] :author_name Commit author's name + # @option options [String] :author_email Commit author's email address + # @return [Gitlab::ObjectifiedHash] + def edit_file(project, path, branch, content, commit_message, options = {}) + put("/projects/#{url_encode project}/repository/files/#{url_encode path}", body: { + branch: branch, + commit_message: commit_message + }.merge(options).merge(encoded_content_attributes(content))) + end - # Removes an existing repository file. - # - # @example - # Gitlab.remove_file(42, "path", "branch", "commit message") - # - # @param [Integer, String] project The ID or name of a project. - # @param [String] path full path of file to delete. - # @param [String] branch the name of the branch to commit the deletion to. - # @param [String] commit_message ...a commit message ;) - # @param [Hash] options Optional additional details for commit - # @option options [String] :author_name Commit author's name - # @option options [String] :author_email Commit author's email address - # @return [Gitlab::ObjectifiedHash] - def remove_file(project, path, branch, commit_message, options = {}) - delete("/projects/#{url_encode project}/repository/files/#{url_encode path}", - body: { - branch: branch, - commit_message: commit_message - }.merge(options)) - end + # Removes an existing repository file. + # + # @example + # Gitlab.remove_file(42, "path", "branch", "commit message") + # + # @param [Integer, String] project The ID or name of a project. + # @param [String] path full path of file to delete. + # @param [String] branch the name of the branch to commit the deletion to. + # @param [String] commit_message ...a commit message ;) + # @param [Hash] options Optional additional details for commit + # @option options [String] :author_name Commit author's name + # @option options [String] :author_email Commit author's email address + # @return [Gitlab::ObjectifiedHash] + def remove_file(project, path, branch, commit_message, options = {}) + delete("/projects/#{url_encode project}/repository/files/#{url_encode path}", + body: { + branch: branch, + commit_message: commit_message + }.merge(options)) + end - private + private - def encoded_content_attributes(content) - { - encoding: 'base64', - content: Base64.encode64(content) - } + def encoded_content_attributes(content) + { + encoding: 'base64', + content: Base64.encode64(content) + } + end end end