require "yk_command/gitlab/yk_gitlab" require "yk_command/analyze/request" require "yk_command/config/yk_config" module YkIosCmd GITLAB_CONFIG_FILE = ".YKGitlabConfig.yml".freeze class ComponentManagePlatform < Thor include Thor::Actions no_commands do def initialize path = __dir__ config = YkConfig.new path @gitlab_srvice = YkGitlab.new(config.read_config GITLAB_CONFIG_FILE) @api_service = Request.new(config.read_config SERVER_ENV_CONFIG_FILE) end def update_version_info(name, versions) r = @api_service.append_deprecated_versions(name, versions) pp r end def update_app_data data = @gitlab_srvice.get_all_app list = data.parsed_response["shared_projects"] list.each do |project| committers = [] commits = @gitlab_srvice.get_project_commits(project["id"], 0, 50) commits.each { |commit| committers.push(commit["committer_name"]) } project["committers"] = committers.uniq project["deprecated_versions"] = [] end r = @api_service.upload_app(list) pp r end def update_component_data data = @gitlab_srvice.get_all_components list = data.parsed_response["projects"] list.each do |project| committers = [] commits = @gitlab_srvice.get_project_commits(project["id"], 0, 50) commits.each { |commit| committers.push(commit["committer_name"]) } project["committers"] = committers.uniq project["deprecated_versions"] = [] end r = @api_service.upload_component(list) pp r end def update_third_lib_data data = @gitlab_srvice.get_third_party_lib_projects list = data.parsed_response["projects"] r = @api_service.upload_third_lib_project(list) pp r end def create_new_component(name, desc) r = @gitlab_srvice.create_project(name, desc) if r.response.code == "201" pp "创建成功" url = r.parsed_response["http_url_to_repo"] pp "repo url :#{url}" else pp "创建失败" pp r.parsed_response["message"] end end def find_project(name) r = @gitlab_srvice.search_project(name) end def delete_component(name) res = find_project(name) id = 0 res.each do |project_hash| if project_hash["namespace"]["id"] == 514 && project_hash["name"] == name id = project_hash["id"] end end pp "未找到相关的工程" if id == 0 r = @gitlab_srvice.delete_project(id) unless id == 0 if r != nil if r.code == 200 pp "#{name} 成功删除" else pp "#{name} 删除失败," end end end end end end