# frozen_string_literal: trueclassGitlab::Client# Defines methods related to builds.# @see https://docs.gitlab.com/ce/api/build_variables.html# @see https://docs.gitlab.com/ee/api/group_level_variables.htmlmoduleBuildVariables# Gets a list of the project's build variables## @example# Gitlab.variables(5)## @param [Integer, String] project The ID or name of a project.# @return [Array<Gitlab::ObjectifiedHash>] The list of variables.defvariables(project)get("/projects/#{url_encodeproject}/variables")end# Gets details of a project's specific build variable.## @example# Gitlab.variable(5, "TEST_VARIABLE_1")## @param [Integer, String] project The ID or name of a project.# @param [String] key The key of a variable.# @return [Gitlab::ObjectifiedHash] The variable.defvariable(project,key)get("/projects/#{url_encodeproject}/variables/#{key}")end# Create a build variable for a project.## @example# Gitlab.create_variable(5, "NEW_VARIABLE", "new value")## @param [Integer, String] project The ID or name of a project.# @param [String] key The key of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9` and `_` are allowed# @param [String] value The value of a variable# @return [Gitlab::ObjectifiedHash] The variable.defcreate_variable(project,key,value)post("/projects/#{url_encodeproject}/variables",body: {key: key,value: value})end# Update a project's build variable.## @example# Gitlab.update_variable(5, "NEW_VARIABLE", "updated value")## @param [Integer, String] project The ID or name of a project.# @param [String] key The key of a variable# @param [String] value The value of a variable# @return [Gitlab::ObjectifiedHash] The variable.defupdate_variable(project,key,value)put("/projects/#{url_encodeproject}/variables/#{key}",body: {value: value})end# Remove a project's build variable.## @example# Gitlab.remove_variable(5, "VARIABLE_1")## @param [Integer, String] project The ID or name of a project.# @param [String] key The key of a variable.# @return [Gitlab::ObjectifiedHash] The variable.defremove_variable(project,key)delete("/projects/#{url_encodeproject}/variables/#{key}")end# Gets a list of the group's build variables## @example# Gitlab.group_variables(5)## @param [Integer, String] group The ID or name of a group.# @return [Array<Gitlab::ObjectifiedHash>] The list of variables.defgroup_variables(group)get("/groups/#{url_encodegroup}/variables")end# Gets details of a group's specific build variable.## @example# Gitlab.group_variable(5, "TEST_VARIABLE_1")## @param [Integer, String] group The ID or name of a group.# @param [String] key The key of a variable.# @return [Gitlab::ObjectifiedHash] The variable.defgroup_variable(group,key)get("/groups/#{url_encodegroup}/variables/#{key}")end# Create a build variable for a group.## @example# Gitlab.create_group_variable(5, "NEW_VARIABLE", "new value")## @param [Integer, String] group The ID or name of a group.# @param [String] key The key of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9` and `_` are allowed# @param [String] value The value of a variable# @return [Gitlab::ObjectifiedHash] The variable.defcreate_group_variable(group,key,value)post("/groups/#{url_encodegroup}/variables",body: {key: key,value: value})end# Update a group's build variable.## @example# Gitlab.update_group_variable(5, "NEW_VARIABLE", "updated value")## @param [Integer, String] group The ID or name of a group.# @param [String] key The key of a variable# @param [String] value The value of a variable# @return [Gitlab::ObjectifiedHash] The variable.defupdate_group_variable(group,key,value)put("/groups/#{url_encodegroup}/variables/#{key}",body: {value: value})end# Remove a group's build variable.## @example# Gitlab.remove_group_variable(5, "VARIABLE_1")## @param [Integer, String] group The ID or name of a group.# @param [String] key The key of a variable.# @return [Gitlab::ObjectifiedHash] The variable.defremove_group_variable(group,key)delete("/groups/#{url_encodegroup}/variables/#{key}")endendend