Browse Source

Merge branch 'fix-719' of https://git.openi.org.cn/OpenI/aiforge into fix-719

tags/v1.22.1.1^2
wangjr 4 years ago
parent
commit
158392243a
5 changed files with 107 additions and 2 deletions
  1. +51
    -0
      models/repo.go
  2. +5
    -0
      modules/context/context.go
  3. +12
    -0
      modules/setting/setting.go
  4. +38
    -0
      routers/notice/notice.go
  5. +1
    -2
      services/repository/repository.go

+ 51
- 0
models/repo.go View File

@@ -6,6 +6,7 @@
package models

import (
"code.gitea.io/gitea/modules/git"
"context"
"crypto/md5"
"errors"
@@ -2519,3 +2520,53 @@ func UpdateRepositoryCommitNum(repo *Repository) error {

return nil
}

type RepoFile struct {
CommitId string
Content []byte
}

// ReadLatestFileRepo read latest version of file in repository
// return commitId and file content
func ReadLatestFileRepo(userName, repoName, refName, treePath string) (*RepoFile, error) {
var err error
repoPath := RepoPath(userName, repoName)
gitRepo, err := git.OpenRepository(repoPath)
if err != nil {
log.Error("ReadLatestFileRepo error when OpenRepository,error=%v", err)
return nil, err
}
commitID, err := gitRepo.GetBranchCommitID(refName)
if err != nil {
log.Error("ReadLatestFileRepo error when GetBranchCommitID,error=%v", err)
return nil, err
}
commit, err := gitRepo.GetBranchCommit(refName)
if err != nil {
log.Error("ReadLatestFileRepo error when GetBranchCommit,error=%v", err)
return nil, err
}

blob, err := commit.GetBlobByPath(treePath)
if err != nil {
log.Error("ReadLatestFileRepo error when GetBlobByPath,error=%v", err)
return nil, err
}

reader, err := blob.DataAsync()
if err != nil {
return nil, err
}
defer func() {
if err = reader.Close(); err != nil {
log.Error("ReadLatestFileRepo: Close: %v", err)
}
}()

buf := make([]byte, 1024)
n, _ := reader.Read(buf)
if n >= 0 {
buf = buf[:n]
}
return &RepoFile{CommitId: commitID, Content: buf}, nil
}

+ 5
- 0
modules/context/context.go View File

@@ -6,6 +6,7 @@
package context

import (
"code.gitea.io/gitea/routers/notice"
"html"
"html/template"
"io"
@@ -345,6 +346,10 @@ func Contexter() macaron.Handler {
ctx.Data["EnableSwagger"] = setting.API.EnableSwagger
ctx.Data["EnableOpenIDSignIn"] = setting.Service.EnableOpenIDSignIn

notice, _ := notice.GetNewestNotice()
if notice != nil {
ctx.Data["notice"] = notice
}
c.Map(ctx)
}
}

+ 12
- 0
modules/setting/setting.go View File

@@ -436,6 +436,12 @@ var (
//home page
RecommentRepoAddr string

//notice config
UserNameOfNoticeRepo string
RepoNameOfNoticeRepo string
RefNameOfNoticeRepo string
TreePathOfNoticeRepo string

//labelsystem config
LabelTaskName string
LabelDatasetDeleteQueue string
@@ -1235,6 +1241,12 @@ func NewContext() {
sec = Cfg.Section("homepage")
RecommentRepoAddr = sec.Key("Address").MustString("https://git.openi.org.cn/OpenIOSSG/promote/raw/branch/master/")

sec = Cfg.Section("notice")
UserNameOfNoticeRepo = sec.Key("USER_NAME").MustString("OpenIOSSG")
RepoNameOfNoticeRepo = sec.Key("REPO_NAME").MustString("promote")
RefNameOfNoticeRepo = sec.Key("REF_NAME").MustString("master")
TreePathOfNoticeRepo = sec.Key("TREE_PATH").MustString("notice.json")

sec = Cfg.Section("cloudbrain")
CBAuthUser = sec.Key("USER").MustString("")
CBAuthPassword = sec.Key("PWD").MustString("")


+ 38
- 0
routers/notice/notice.go View File

@@ -0,0 +1,38 @@
package notice

import (
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"encoding/json"
)

const (
NoticeInvisible int = iota
NoticeVisible
)

type Notice struct {
Title string
Link string
Visible int
CommitId string
}

func GetNewestNotice() (*Notice, error) {
//todo add local cache
defer func() {
if err := recover(); err != nil {
log.Error("recover error", err)
}
}()
repoFile, err := models.ReadLatestFileRepo(setting.UserNameOfNoticeRepo, setting.RepoNameOfNoticeRepo, setting.RefNameOfNoticeRepo, setting.TreePathOfNoticeRepo)
if err != nil {
log.Error("GetNewestNotice failed, error=%v", err)
return nil, err
}
notice := &Notice{}
json.Unmarshal(repoFile.Content, notice)
notice.CommitId = repoFile.CommitId
return notice, nil
}

+ 1
- 2
services/repository/repository.go View File

@@ -5,13 +5,12 @@
package repository

import (
"fmt"

"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/notification"
repo_module "code.gitea.io/gitea/modules/repository"
pull_service "code.gitea.io/gitea/services/pull"
"fmt"
)

// CreateRepository creates a repository for the user/organization.


Loading…
Cancel
Save