module GitCommon extend ActiveSupport::Concern included do end # ------------------------ # 版本库目录结构 def repository begin @repo_url = repo_url @repo_path @trees = GitService.file_tree(repo_path: @repo_path, path: @path) logger.info("#11@@#@#@#@111#@@@@###{@trees}") # TPI(学员实训)不需要获取最近的一次提交 if params[:controller] != "myshixuns" && @trees logger.info("#@@#@#@#@#@@@@###{@trees.try(:count)}") @latest_commit = [GitService.commits(repo_path: @repo_path).first] Rails.logger.info("########## #{@latest_commit}") end rescue Exception => e logger.error(e.message) end end def file_content @content = git_fle_content @repo_path, @path end # 版本库提交记录 # Redo: commit接口需要按倒叙排列 def commits begin @commits = GitService.commits(repo_path: @repo_path) logger.info("git first commit is #{@commits.try(:first)}") raise Educoder::TipException.new("请先创建版本库") if @commits.nil? rescue Exception => e uid_logger_error(e.message) raise Educoder::TipException.new("提交记录异常") end end # 为版本库添加文件 def add_file @path, message, content = params[:path].strip, params[:message], params[:content] author_name, author_email = current_user.real_name, current_user.git_mail Rails.logger.info(" good repo_name is #{@repo_path}") @content = GitService.update_file(repo_path: @repo_path, file_path: @path, message: message.force_encoding('UTF-8'), content: content.force_encoding('UTF-8'), author_name: author_name, author_email: author_email) end end