You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

repo_summary_statistic.go 2.5 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package repo
  2. import (
  3. "time"
  4. "code.gitea.io/gitea/models"
  5. "code.gitea.io/gitea/modules/log"
  6. )
  7. func SummaryStatistic() {
  8. log.Info("Generate summary statistic begin")
  9. yesterday := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
  10. SummaryStatisticDaily(yesterday)
  11. log.Info("Generate summary statistic end")
  12. }
  13. func SummaryStatisticDaily(date string) {
  14. log.Info("%s", date)
  15. if err := models.DeleteSummaryStatisticDaily(date); err != nil {
  16. log.Error("DeleteRepoStatDaily failed: %v", err.Error())
  17. return
  18. }
  19. //user number
  20. userNumber, err := models.GetUsersCount()
  21. if err != nil {
  22. log.Error("can not get user number", err)
  23. userNumber = 0
  24. }
  25. //organization number
  26. organizationNumber, err := models.GetOrganizationsCount()
  27. if err != nil {
  28. log.Error("can not get orgnazition number", err)
  29. organizationNumber = 0
  30. }
  31. // repository number
  32. repositoryNumer, err := models.GetAllRepositoriesCount()
  33. if err != nil {
  34. log.Error("can not get repository number", err)
  35. repositoryNumer = 0
  36. }
  37. //repository size
  38. repositorySize, err := models.GetAllRepositoriesSize()
  39. if err != nil {
  40. log.Error("can not get repository size", err)
  41. repositorySize = 0
  42. }
  43. // dataset size
  44. allDatasetSize, err := models.GetAllAttachmentSize()
  45. if err != nil {
  46. log.Error("can not get dataset size", err)
  47. allDatasetSize = 0
  48. }
  49. //topic repo number
  50. topics, err := models.GetAllUsedTopics()
  51. if err != nil {
  52. log.Error("can not get topics", err)
  53. }
  54. var topicsCount [11]int
  55. for _, topic := range topics {
  56. index, exists := models.DomainMap[topic.Name]
  57. if exists {
  58. topicsCount[index] = topic.RepoCount
  59. }
  60. }
  61. summaryStat := models.SummaryStatistic{
  62. Date: date,
  63. NumUsers: userNumber,
  64. RepoSize: repositorySize,
  65. DatasetSize: allDatasetSize,
  66. NumOrganizations: organizationNumber,
  67. NumRepos: repositoryNumer,
  68. NumRepoBigModel: topicsCount[0],
  69. NumRepoAI: topicsCount[1],
  70. NumRepoVision: topicsCount[2],
  71. NumRepoNLP: topicsCount[3],
  72. NumRepoML: topicsCount[4],
  73. NumRepoNN: topicsCount[5],
  74. NumRepoAutoDrive: topicsCount[6],
  75. NumRepoRobot: topicsCount[7],
  76. NumRepoLeagueLearn: topicsCount[8],
  77. NumRepoDataMining: topicsCount[9],
  78. NumRepoRISC: topicsCount[10],
  79. }
  80. if _, err = models.InsertSummaryStatistic(&summaryStat); err != nil {
  81. log.Error("Insert summary Stat failed: %v", err.Error())
  82. }
  83. log.Info("finish summary statistic")
  84. }