Module: Gitlab::Client::Repositories

Included in:
Gitlab::Client
Defined in:
lib/gitlab/client/repositories.rb

Overview

Defines methods related to repositories.

Instance Method Summary collapse

Instance Method Details

#compare(project, from, to) ⇒ Gitlab::ObjectifiedHash Also known as: repo_compare

Compares branches, tags or commits.

Examples:

Gitlab.compare(42, 'master', 'feature/branch')
Gitlab.repo_compare(42, 'master', 'feature/branch')

Parameters:

  • project (Integer)

    The ID of a project.

  • from (String)

    The commit SHA or branch name of from branch.

  • to (String)

    The commit SHA or branch name of to branch.

Returns:



58
59
60
# File 'lib/gitlab/client/repositories.rb', line 58

def compare(project, from, to)
  get("/projects/#{url_encode project}/repository/compare", query: { from: from, to: to })
end

#contributors(project, options = {}) ⇒ Array<Gitlab::ObjectifiedHash> Also known as: repo_contributors

Get project repository contributors.

Examples:

Gitlab.contributors(42)
Gitlab.contributors(42, { order: 'name' })

Parameters:

  • project (Integer, String)

    The ID or name of a project.

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :order_by (String)

    Order by name, email or commits (default = commits).

  • :sort (String)

    Sort order asc or desc (default = asc).

Returns:



87
88
89
# File 'lib/gitlab/client/repositories.rb', line 87

def contributors(project, options = {})
  get("/projects/#{url_encode project}/repository/contributors", query: options)
end

#generate_changelog(project, version, options = {}) ⇒ bool

Generate changelog data

Examples:

Gitlab.generate_changelog(42, 'v1.0.0')
Gitlab.generate_changelog(42, 'v1.0.0', branch: 'main')

Parameters:

  • project (Integer, String)

    The ID or name of a project

  • version (String)

    The version to generate the changelog for

  • options (Hash) (defaults to: {})

    A customizable set of options

Options Hash (options):

  • :from (String)

    The start of the range of commits (SHA)

  • :to (String)

    The end of the range of commits (as a SHA) to use for the changelog

  • :date (String)

    The date and time of the release, defaults to the current time

  • :branch (String)

    The branch to commit the changelog changes to

  • :trailer (String)

    The Git trailer to use for including commits

  • :file (String)

    The file to commit the changes to

  • :message (String)

    The commit message to produce when committing the changes

Returns:

  • (bool)


109
110
111
# File 'lib/gitlab/client/repositories.rb', line 109

def generate_changelog(project, version, options = {})
  post("/projects/#{url_encode project}/repository/changelog", body: options.merge(version: version))
end

#merge_base(project, refs) ⇒ Gitlab::ObjectifiedHash

Get the common ancestor for 2 refs (commit SHAs, branch names or tags).

Examples:

Gitlab.merge_base(42, ['master', 'feature/branch'])
Gitlab.merge_base(42, ['master', 'feature/branch'])

Parameters:

  • project (Integer, String)

    The ID or URL-encoded path of the project.

  • refs (Array)

    Array containing 2 commit SHAs, branch names, or tags.

Returns:



72
73
74
# File 'lib/gitlab/client/repositories.rb', line 72

def merge_base(project, refs)
  get("/projects/#{url_encode project}/repository/merge_base", query: { refs: refs })
end

#repo_archive(project, ref = 'master', format = 'tar.gz') ⇒ Gitlab::FileResponse

Get project repository archive

Examples:

Gitlab.repo_archive(42)
Gitlab.repo_archive(42, 'deadbeef')

Parameters:

  • project (Integer, String)

    The ID or name of a project.

  • ref (String) (defaults to: 'master')

    The commit sha, branch, or tag to download.

  • format (String) (defaults to: 'tar.gz')

    The archive format. Options are: tar.gz (default), tar.bz2, tbz, tbz2, tb2, bz2, tar, and zip

Returns:



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/gitlab/client/repositories.rb', line 34

def repo_archive(project, ref = 'master', format = 'tar.gz')
  get("/projects/#{url_encode project}/repository/archive.#{format}",
      format: nil,
      headers: { Accept: 'application/octet-stream' },
      query: { sha: ref },
      parser: proc { |body, _|
        if body.encoding == Encoding::ASCII_8BIT # binary response
          ::Gitlab::FileResponse.new StringIO.new(body, 'rb+')
        else # error with json response
          ::Gitlab::Request.parse(body)
        end
      })
end

#tree(project, options = {}) ⇒ Gitlab::ObjectifiedHash Also known as: repo_tree

Get file tree project (root level).

Examples:

Gitlab.tree(42)
Gitlab.tree(42, { path: 'Gemfile' })

Parameters:

  • project (Integer, String)

    The ID or name of a project.

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :path (String)

    The path inside repository.

  • :ref (String)

    The name of a repository branch or tag.

  • :per_page (Integer)

    Number of results to show per page (default = 20)

Returns:



19
20
21
# File 'lib/gitlab/client/repositories.rb', line 19

def tree(project, options = {})
  get("/projects/#{url_encode project}/repository/tree", query: options)
end