From aa556ea9b365a318ad615d7ff3446cad2e8b2a84 Mon Sep 17 00:00:00 2001
From: lewis <747342561@qq.com>
Date: Tue, 24 Aug 2021 11:20:48 +0800
Subject: [PATCH 1/6] limit req count
---
models/blockchain.go | 1 +
models/repo.go | 1 +
models/user.go | 1 +
3 files changed, 3 insertions(+)
diff --git a/models/blockchain.go b/models/blockchain.go
index 00a47969f..484222557 100755
--- a/models/blockchain.go
+++ b/models/blockchain.go
@@ -91,6 +91,7 @@ func GetBlockChainUnSuccessCommits() ([]*BlockChain, error) {
blockChains := make([]*BlockChain, 0, 10)
return blockChains, x.
Where("status != ?", BlockChainCommitSuccess).
+ Limit(100).
Find(&blockChains)
}
diff --git a/models/repo.go b/models/repo.go
index be84a462e..f4c396677 100755
--- a/models/repo.go
+++ b/models/repo.go
@@ -2421,6 +2421,7 @@ func GetBlockChainUnSuccessRepos() ([]*Repository, error) {
repos := make([]*Repository, 0, 10)
return repos, x.
Where("block_chain_status != ?", RepoBlockChainSuccess).
+ Limit(100).
Find(&repos)
}
diff --git a/models/user.go b/models/user.go
index 42e688358..83bf1b2c0 100755
--- a/models/user.go
+++ b/models/user.go
@@ -2047,6 +2047,7 @@ func GetBlockChainUnSuccessUsers() ([]*User, error) {
users := make([]*User, 0, 10)
err := x.Where("public_key = ''").
Or("private_key = ''").
+ Limit(100).
Find(&users)
return users, err
}
From 346b5d9c3fa14a7458f89e2f1fc3c4372a051bcf Mon Sep 17 00:00:00 2001
From: lewis <747342561@qq.com>
Date: Tue, 24 Aug 2021 19:31:23 +0800
Subject: [PATCH 2/6] no require dataset
---
modules/auth/modelarts.go | 2 +-
modules/modelarts/modelarts.go | 30 +++++++++++++++++++++++++-----
modules/setting/setting.go | 11 ++++++-----
modules/storage/obs.go | 14 ++++++++++++++
templates/repo/modelarts/new.tmpl | 7 ++++---
5 files changed, 50 insertions(+), 14 deletions(-)
diff --git a/modules/auth/modelarts.go b/modules/auth/modelarts.go
index 11a3bc562..0be3e3882 100755
--- a/modules/auth/modelarts.go
+++ b/modules/auth/modelarts.go
@@ -7,7 +7,7 @@ import (
type CreateModelArtsForm struct {
JobName string `form:"job_name" binding:"Required"`
- Attachment string `form:"attachment" binding:"Required"`
+ Attachment string `form:"attachment"`
Description string `form:"description"`
}
diff --git a/modules/modelarts/modelarts.go b/modules/modelarts/modelarts.go
index a5cb8388b..edd9d5d6b 100755
--- a/modules/modelarts/modelarts.go
+++ b/modules/modelarts/modelarts.go
@@ -1,13 +1,13 @@
package modelarts
import (
- "code.gitea.io/gitea/modules/setting"
- "encoding/json"
- "path"
-
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
+ "code.gitea.io/gitea/modules/setting"
+ "code.gitea.io/gitea/modules/storage"
+ "encoding/json"
+ "path"
)
const (
@@ -25,7 +25,27 @@ var (
)
func GenerateTask(ctx *context.Context, jobName, uuid, description string) error {
- dataActualPath := setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + "/"
+ var dataActualPath string
+ if uuid != "" {
+ dataActualPath = setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + "/"
+ } else {
+ userPath := setting.UserBasePath + ctx.User.Name + "/"
+ isExist, err := storage.ObsHasObject(userPath)
+ if err != nil {
+ log.Error("ObsHasObject failed:%v", err.Error(), ctx.Data["MsgID"])
+ return err
+ }
+
+ if !isExist {
+ if err = storage.ObsCreateObject(userPath); err != nil {
+ log.Error("ObsCreateObject failed:%v", err.Error(), ctx.Data["MsgID"])
+ return err
+ }
+ }
+
+ dataActualPath = setting.Bucket + "/" + userPath
+ }
+
if poolInfos == nil {
json.Unmarshal([]byte(setting.PoolInfos), &poolInfos)
}
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index 142369f88..687f02605 100755
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -463,7 +463,7 @@ var (
Bucket string
Location string
BasePath string
- //RealPath string
+ UserBasePath string
//modelarts config
ModelArtsHost string
@@ -473,10 +473,10 @@ var (
ModelArtsUsername string
ModelArtsPassword string
ModelArtsDomain string
- ProfileID string
- PoolInfos string
- Flavor string
- FlavorInfos string
+ ProfileID string
+ PoolInfos string
+ Flavor string
+ FlavorInfos string
)
// DateLang transforms standard language locale name to corresponding value in datetime plugin.
@@ -1177,6 +1177,7 @@ func NewContext() {
Bucket = sec.Key("BUCKET").MustString("testopendata")
Location = sec.Key("LOCATION").MustString("cn-south-222")
BasePath = sec.Key("BASE_PATH").MustString("attachment/")
+ UserBasePath = sec.Key("BASE_PATH_USER").MustString("users/")
sec = Cfg.Section("modelarts")
ModelArtsHost = sec.Key("ENDPOINT").MustString("112.95.163.80")
diff --git a/modules/storage/obs.go b/modules/storage/obs.go
index b4de303cf..77fe49b4e 100755
--- a/modules/storage/obs.go
+++ b/modules/storage/obs.go
@@ -143,3 +143,17 @@ func ObsGetPreSignedUrl(uuid, fileName string) (string, error) {
return output.SignedUrl, nil
}
+
+func ObsCreateObject(path string) error {
+ input := &obs.PutObjectInput{}
+ input.Bucket = setting.Bucket
+ input.Key = path
+
+ _, err := ObsCli.PutObject(input)
+ if err != nil {
+ log.Error("PutObject failed:", err.Error())
+ return err
+ }
+
+ return nil
+}
diff --git a/templates/repo/modelarts/new.tmpl b/templates/repo/modelarts/new.tmpl
index c77a1fe47..5664de181 100755
--- a/templates/repo/modelarts/new.tmpl
+++ b/templates/repo/modelarts/new.tmpl
@@ -112,14 +112,15 @@
-
+
-
+
From 56713d4cd61b684c8f8ad0b6f89f2dd338b9d488 Mon Sep 17 00:00:00 2001
From: OpenIhu
Date: Mon, 30 Aug 2021 11:45:31 +0800
Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7?=
=?UTF-8?q?=E5=90=8D=E8=BF=87=E9=95=BF=E6=97=B6=EF=BC=8CPR=E5=90=8D?=
=?UTF-8?q?=E7=A7=B0=E5=A4=AA=E9=95=BF=E5=AF=BC=E8=87=B4=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=E4=BB=93=E9=A1=B5=E9=9D=A2=E5=B7=A6=E5=8F=B3=E9=87=8D=E5=8F=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web_src/less/_repository.less | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web_src/less/_repository.less b/web_src/less/_repository.less
index 9103d7e24..0ffe8d0ee 100644
--- a/web_src/less/_repository.less
+++ b/web_src/less/_repository.less
@@ -2685,7 +2685,7 @@ tbody.commit-list {
width: 1127px;
}
th .message-wrapper {
- max-width: 510px;
+ max-width: 400px;
}
}
From 36206f83c158eeef5d1a2ec9dd6a37aee90ef265 Mon Sep 17 00:00:00 2001
From: ychao_1983
Date: Tue, 31 Aug 2021 09:08:49 +0800
Subject: [PATCH 4/6] =?UTF-8?q?#244#310=E4=B8=BB=E9=A2=98=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E4=B8=AD=E6=96=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
models/models.go | 2 ++
models/topic.go | 7 ++++---
options/locale/locale_en-US.ini | 2 +-
options/locale/locale_zh-CN.ini | 2 +-
web_src/js/index.js | 6 ++++--
5 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/models/models.go b/models/models.go
index 0e06c60b3..67892399a 100755
--- a/models/models.go
+++ b/models/models.go
@@ -185,6 +185,8 @@ func SetEngine() (err error) {
x.SetMaxOpenConns(setting.Database.MaxOpenConns)
x.SetMaxIdleConns(setting.Database.MaxIdleConns)
x.SetConnMaxLifetime(setting.Database.ConnMaxLifetime)
+ x.Sync2(tables...)
+ MigrateCustom(x)
return nil
}
diff --git a/models/topic.go b/models/topic.go
index 4a5bffa08..b8d3d9d85 100644
--- a/models/topic.go
+++ b/models/topic.go
@@ -8,6 +8,7 @@ import (
"fmt"
"regexp"
"strings"
+ "unicode/utf8"
"code.gitea.io/gitea/modules/timeutil"
@@ -21,12 +22,12 @@ func init() {
)
}
-var topicPattern = regexp.MustCompile(`^[a-z0-9][a-z0-9-]*$`)
+var topicPattern = regexp.MustCompile(`^[\x{4e00}-\x{9fa5}a-z0-9][\x{4e00}-\x{9fa5}a-z0-9-]*$`)
// Topic represents a topic of repositories
type Topic struct {
ID int64
- Name string `xorm:"UNIQUE VARCHAR(25)"`
+ Name string `xorm:"UNIQUE VARCHAR(105)"`
RepoCount int
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
@@ -56,7 +57,7 @@ func (err ErrTopicNotExist) Error() string {
// ValidateTopic checks a topic by length and match pattern rules
func ValidateTopic(topic string) bool {
- return len(topic) <= 35 && topicPattern.MatchString(topic)
+ return utf8.RuneCountInString(topic) <= 35 && topicPattern.MatchString(topic)
}
// SanitizeAndValidateTopics sanitizes and checks an array or topics
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 61a233589..56cf564e7 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -1815,7 +1815,7 @@ branch.included = Included
topic.manage_topics = Manage Topics
topic.done = Done
topic.count_prompt = You can not select more than 25 topics
-topic.format_prompt = Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
+topic.format_prompt = Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
[org]
org_name_holder = Organization Name
diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini
index 89db6536c..31398b927 100755
--- a/options/locale/locale_zh-CN.ini
+++ b/options/locale/locale_zh-CN.ini
@@ -1817,7 +1817,7 @@ branch.included=已包含
topic.manage_topics=管理主题
topic.done=保存
topic.count_prompt=您最多选择25个主题
-topic.format_prompt=主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
+topic.format_prompt=主题必须以汉字、字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
[org]
org_name_holder=组织名称
diff --git a/web_src/js/index.js b/web_src/js/index.js
index 991a13c21..cad60cdc2 100755
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -4117,7 +4117,9 @@ function initTopicbar() {
topics
.last()
.attr('data-value')
- .match(regExp);
+ .match(regExp) || topics
+ .last()
+ .attr('data-value').length <= 35;
if (!status) {
topics
.last()
@@ -4136,7 +4138,7 @@ function initTopicbar() {
rules: [
{
type: 'validateTopic',
- value: /^[a-z0-9][a-z0-9-]{0,35}$/,
+ value: /^[\u4e00-\u9fa5a-z0-9][\u4e00-\u9fa5a-z0-9-]{0,105}$/,
prompt: topicPrompts.formatPrompt
},
{
From 32a46bfa96b38f814d51edffedb25b0832498b8a Mon Sep 17 00:00:00 2001
From: ychao_1983
Date: Tue, 31 Aug 2021 09:12:56 +0800
Subject: [PATCH 5/6] #fix-244
---
models/custom_migrations.go | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 models/custom_migrations.go
diff --git a/models/custom_migrations.go b/models/custom_migrations.go
new file mode 100644
index 000000000..b196c5a8b
--- /dev/null
+++ b/models/custom_migrations.go
@@ -0,0 +1,36 @@
+package models
+
+import (
+ "code.gitea.io/gitea/modules/log"
+ "xorm.io/xorm"
+)
+
+type CustomMigration struct {
+ Description string
+ Migrate func(*xorm.Engine) error
+}
+
+var customMigrations = []CustomMigration{
+ {"Custom v1 Topic struct change to support chinese", syncTopicStruct},
+}
+
+func MigrateCustom(x *xorm.Engine) {
+
+ for _, m := range customMigrations {
+ log.Info("Migration: %s", m.Description)
+ if err := m.Migrate(x); err != nil {
+
+ log.Error("Migration: %v", err)
+
+ }
+ }
+
+}
+
+func syncTopicStruct(x *xorm.Engine) error {
+
+ query := "ALTER TABLE topic ALTER COLUMN name TYPE varchar(105);"
+
+ _, err := x.Exec(query)
+ return err
+}
From ce51dd2db88065581fe27f77544fe6ded7c8de33 Mon Sep 17 00:00:00 2001
From: ychao_1983
Date: Tue, 31 Aug 2021 17:31:55 +0800
Subject: [PATCH 6/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=89=8D=E7=AB=AF?=
=?UTF-8?q?=E8=BE=93=E5=85=A5=E4=B8=BB=E9=A2=98=E5=9B=9E=E8=BD=A6=E4=B8=8D?=
=?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=A0=BC=E5=BC=8F=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web_src/js/index.js | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/web_src/js/index.js b/web_src/js/index.js
index cad60cdc2..2cc622cc0 100755
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -4113,13 +4113,7 @@ function initTopicbar() {
$.fn.form.settings.rules.validateTopic = function (_values, regExp) {
const topics = topicDropdown.children('a.ui.label');
const status =
- topics.length === 0 ||
- topics
- .last()
- .attr('data-value')
- .match(regExp) || topics
- .last()
- .attr('data-value').length <= 35;
+ topics.length === 0 || (topics.last().attr('data-value').match(regExp) !== null && topics.last().attr('data-value').length <= 35);
if (!status) {
topics
.last()