File: packages.rb

package info (click to toggle)
ruby-gitlab 5.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,660 kB
  • sloc: ruby: 12,582; makefile: 7; sh: 4
file content (95 lines) | stat: -rw-r--r-- 4,594 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# frozen_string_literal: true

class Gitlab::Client
  # Defines methods related to GitLab Packages.
  # @see https://docs.gitlab.com/ee/api/packages.html
  module Packages
    # Gets a list of project packages.
    #
    # @example
    #   Gitlab.project_packages(5)
    #   Gitlab.project_packages(5, { package_type: 'npm', sort: 'desc' })
    #
    # @param   [Integer, String] :project the ID or name of a project.
    # @param   [Hash] options A customizable set of options.
    # @options options [String] :order_by The field to use as order. One of created_at (default), name, version, or type.
    # @options options [String] :sort The direction of the order, either asc (default) for ascending order or desc for descending order.
    # @options options [String] :package_type Filter the returned packages by type. One of conan, maven, npm, pypi, composer, nuget, helm, terraform_module, or golang.
    # @options options [String] :package_name Filter the project packages with a fuzzy search by name.
    # @options options [String] :include_versionless When set to true, versionless packages are included in the response.
    # @options options [String] :status Filter the returned packages by status. One of default (default), hidden, processing, error, or pending_destruction.
    # @return  [Array<Gitlab::ObjectifiedHash>]
    def project_packages(project, options = {})
      get("/projects/#{url_encode project}/packages", query: options)
    end

    # Gets a list of project packages.
    #
    # @example
    #   Gitlab.group_packages(5)
    #   Gitlab.group_packages(5, { package_type: 'npm', sort: 'desc' })
    #
    # @param   [Integer, String] project the ID or name of a project.
    # @param   [Hash] options A customizable set of options.
    # @options options [String] :exclude_subgroups If the parameter is included as true, packages from projects from subgroups are not listed. Default is false.
    # @options options [String] :order_by The field to use as order. One of created_at (default), name, version, or type.
    # @options options [String] :sort The direction of the order, either asc (default) for ascending order or desc for descending order.
    # @options options [String] :package_type Filter the returned packages by type. One of conan, maven, npm, pypi, composer, nuget, helm, terraform_module, or golang.
    # @options options [String] :package_name Filter the project packages with a fuzzy search by name.
    # @options options [String] :include_versionless When set to true, versionless packages are included in the response.
    # @options options [String] :status Filter the returned packages by status. One of default (default), hidden, processing, error, or pending_destruction.
    # @return  [Array<Gitlab::ObjectifiedHash>]
    def group_packages(group, options = {})
      get("/groups/#{url_encode group}/packages", query: options)
    end

    # Get a single project package.
    #
    # @example
    #   Gitlab.project_package(5, 3)
    #
    # @param  [Integer, String] project The ID or name of a project.
    # @param  [Integer] id ID of a package.
    # @return [Gitlab::ObjectifiedHash]
    def project_package(project, id)
      get("/projects/#{url_encode project}/packages/#{id}")
    end

    # Get a list of package files of a single package.
    #
    # @example
    #   Gitlab.project_package_files(5, 3)
    #
    # @param  [Integer, String] project The ID or name of a project.
    # @param  [Integer] id ID of a package.
    # @return [Array<Gitlab::ObjectifiedHash>]
    def project_package_files(project, id)
      get("/projects/#{url_encode project}/packages/#{id}/package_files")
    end

    # Deletes a project package.
    #
    # @example
    #   Gitlab.delete_project_package(5, 3)
    #
    # @param  [Integer, String] project The ID or name of a project.
    # @param  [Integer] id ID of a package.
    # @return [void] This API call returns an empty response body.
    def delete_project_package(project, id)
      delete("/projects/#{url_encode project}/packages/#{id}")
    end

    # Delete a package file.
    #
    # @example
    #   Gitlab.delete_project_file(5, 3, 1)
    #
    # @param  [Integer, String] project The ID or name of a project.
    # @param  [Integer] package_id ID of a package.
    # @param  [Integer] file_id ID of a package file.
    # @return [void] This API call returns an empty response body.
    def delete_project_package_file(project, package_id, file_id)
      delete("/projects/#{url_encode project}/packages/#{package_id}/package_files/#{file_id}")
    end
  end
end