diff --git a/lib/tasks/total_commit_count.rake b/lib/tasks/total_commit_count.rake new file mode 100644 index 000000000..e121dcff5 --- /dev/null +++ b/lib/tasks/total_commit_count.rake @@ -0,0 +1,54 @@ +namespace :total_commit_count do + desc "total_commit_count" + task git_demo_raw: :environment do + project_name = ENV['name'] || "mindspore" + puts "project_id=================#{project_name}" + projects = Project.where("name like ?", "%#{project_name}%") + if ENV['count'].present? + projects = projects.limit(ENV['count'].to_i) + end + + @date_count_hash = {} + # projects = Project.where(:name => 'opensource0311') + projects.each_with_index do |project, index| + result = Gitea::Repository::Commits::ListService.call(project.owner.login,project.identifier,sha: "", page: 1, limit: 5, token: project.owner.gitea_token) + total_count = result[:total_count] + puts "#{index} total_count==========#{total_count}" + if total_count > 50 + total_page = (total_count / 50) + 1 + total_page.times do |i| + add_commit_to_index(project, i + 1) + end + else + add_commit_to_index(project, 1) + end + + end + puts "@date_count_hash===========#{@date_count_hash.to_json}" + + + + + # Time.now + # Wed Mar 15 14:12:09 2023 +0800 + # Time.now.strftime("%a %b %d %H:%M:%S %Y") + # Time.now.strftime("%a %b %d %H:%M:%S %Y +0800") + Time.parse("2023-03-15 14:12:09").strftime("%a %b %d %H:%M:%S %Y +0800") + + end + + def add_commit_to_index(project, page) + # Gitea::Repository::Commits::ListSliceService.call(project.owner.login,project.identifier,sha: "", page: 1, limit: 1000, token: "a9244ecac647dd33fee3b480c5898baab1d3fe7d") + result = Gitea::Repository::Commits::ListService.call(project.owner.login,project.identifier,sha: "", page: page, limit: 50, token: project.owner.gitea_token) + result[:body].each do |commit| + commit_date = Time.parse(commit['commit']['author']['date']) + commit_date_str = commit_date.strftime("%Y-%m") + if @date_count_hash[commit_date_str].present? + @date_count_hash[commit_date_str] = @date_count_hash[commit_date_str] + 1 + else + @date_count_hash[commit_date_str] = 1 + end + end + end + +end \ No newline at end of file