class Gb::DeleteTag
Public Class Methods
new(argv)
click to toggle source
Calls superclass method
# File lib/commands/delete_tag.rb, line 24 def initialize(argv) @tag_name = argv.shift_argument @force = argv.flag?('force') super end
options()
click to toggle source
Calls superclass method
# File lib/commands/delete_tag.rb, line 18 def self.options [ ["--force", "忽略tag是否存在,强制执行"], ].concat(super) end
Public Instance Methods
gitlab_search_project(project_name)
click to toggle source
# File lib/commands/delete_tag.rb, line 79 def gitlab_search_project(project_name) projects = Gitlab.project_search(project_name) if projects.size > 1 info "find #{projects.size} project named #{project_name}. you means which one?" projects.each do |project| print project.name + ' ' end print "\n" raise Error.new("find #{projects.size} project named #{project_name}") elsif projects.size == 1 project = projects[0]; else raise Error.new("can't find project named '#{project_name}'.") end project end
run_in_config()
click to toggle source
# File lib/commands/delete_tag.rb, line 37 def run_in_config # api: https://www.rubydoc.info/gems/gitlab/toplevel # document: https://narkoz.github.io/gitlab/cli Gitlab.configure do |config| # set an API endpoint # API endpoint URL, default: ENV['GITLAB_API_ENDPOINT'] config.endpoint = self.gb_config.gitlab.endpoint # set a user private token # user's private token or OAuth2 access token, default: ENV['GITLAB_API_PRIVATE_TOKEN'] config.private_token = self.gb_config.gitlab.private_token # user agent config.user_agent = "gb ruby gem[#{VERSION}" end info "ready delete tag '#{@tag_name}'.\n" self.gb_config.projects.each do |project| gitlab_project = gitlab_search_project(project.name) info "find project #{gitlab_project.name} on #{gitlab_project.web_url}." begin tag = Gitlab.delete_tag(gitlab_project.id, @tag_name) rescue Gitlab::Error::NotFound => error tag = nil if @force raise(error) else info "tag '#{@tag_name}' not found, skip." end rescue Gitlab::Error::Error => error raise(error) end if tag info "delete tag '#{@tag_name}' success.\n" end puts end end
validate!()
click to toggle source
Calls superclass method
# File lib/commands/delete_tag.rb, line 30 def validate! super if @tag_name.nil? help! 'tag_name is required.' end end