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 3.4 kB

3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. publicRepositoryNumer, err := models.GetAllPublicRepositoriesCount()
  38. if err != nil {
  39. log.Error("can not get public repository number", err)
  40. publicRepositoryNumer = 0
  41. }
  42. privateRepositoryNumer := repositoryNumer - publicRepositoryNumer
  43. mirrorRepositoryNumber, err := models.GetAllMirrorRepositoriesCount()
  44. if err != nil {
  45. log.Error("can not get mirror repository number", err)
  46. mirrorRepositoryNumber = 0
  47. }
  48. forkRepositoryNumber, err := models.GetAllForkRepositoriesCount()
  49. if err != nil {
  50. log.Error("can not get fork mirror repository number", err)
  51. forkRepositoryNumber = 0
  52. }
  53. selfRepositoryNumber := repositoryNumer - mirrorRepositoryNumber - forkRepositoryNumber
  54. //repository size
  55. repositorySize, err := models.GetAllRepositoriesSize()
  56. if err != nil {
  57. log.Error("can not get repository size", err)
  58. repositorySize = 0
  59. }
  60. // dataset size
  61. allDatasetSize, err := models.GetAllAttachmentSize()
  62. if err != nil {
  63. log.Error("can not get dataset size", err)
  64. allDatasetSize = 0
  65. }
  66. //topic repo number
  67. topics, err := models.GetAllUsedTopics()
  68. if err != nil {
  69. log.Error("can not get topics", err)
  70. }
  71. var topicsCount [11]int
  72. for _, topic := range topics {
  73. index, exists := models.DomainMap[topic.Name]
  74. if exists {
  75. topicsCount[index] = topic.RepoCount
  76. }
  77. }
  78. summaryStat := models.SummaryStatistic{
  79. Date: date,
  80. NumUsers: userNumber,
  81. RepoSize: repositorySize,
  82. DatasetSize: allDatasetSize,
  83. NumOrganizations: organizationNumber,
  84. NumRepos: repositoryNumer,
  85. NumRepoFork: forkRepositoryNumber,
  86. NumRepoMirror: mirrorRepositoryNumber,
  87. NumRepoPrivate: privateRepositoryNumer,
  88. NumRepoPublic: publicRepositoryNumer,
  89. NumRepoSelf: selfRepositoryNumber,
  90. NumRepoBigModel: topicsCount[0],
  91. NumRepoAI: topicsCount[1],
  92. NumRepoVision: topicsCount[2],
  93. NumRepoNLP: topicsCount[3],
  94. NumRepoML: topicsCount[4],
  95. NumRepoNN: topicsCount[5],
  96. NumRepoAutoDrive: topicsCount[6],
  97. NumRepoRobot: topicsCount[7],
  98. NumRepoLeagueLearn: topicsCount[8],
  99. NumRepoDataMining: topicsCount[9],
  100. NumRepoRISC: topicsCount[10],
  101. }
  102. if _, err = models.InsertSummaryStatistic(&summaryStat); err != nil {
  103. log.Error("Insert summary Stat failed: %v", err.Error())
  104. }
  105. log.Info("finish summary statistic")
  106. }