This is an automated email from the ASF dual-hosted git repository.

kumfo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-answer-plugins.git


The following commit(s) were added to refs/heads/main by this push:
     new 46c0511  fix(util): change info.yaml with go:embed
46c0511 is described below

commit 46c05115c7950089f66b821b5dd72d3aeb9209a6
Author: kumfo <[email protected]>
AuthorDate: Tue Jul 16 18:11:28 2024 +0800

    fix(util): change info.yaml with go:embed
---
 cache-redis/go.mod                       |  2 +-
 cache-redis/go.sum                       |  4 ++--
 cache-redis/redis.go                     |  6 +++++-
 captcha-basic/basic.go                   |  6 +++++-
 captcha-basic/go.mod                     |  2 +-
 captcha-basic/go.sum                     |  4 ++--
 captcha-google-v2/go.mod                 |  2 +-
 captcha-google-v2/go.sum                 |  4 ++--
 captcha-google-v2/recaptcha.go           |  6 +++++-
 connector-apache/apache.go               |  6 +++++-
 connector-apache/go.mod                  |  2 +-
 connector-apache/go.sum                  |  4 ++--
 connector-basic/basic.go                 |  5 ++++-
 connector-basic/go.mod                   |  2 +-
 connector-basic/go.sum                   |  4 ++--
 connector-dingtalk/dingtalk.go           |  6 +++++-
 connector-dingtalk/go.mod                |  2 +-
 connector-dingtalk/go.sum                |  4 ++--
 connector-github/github.go               |  6 +++++-
 connector-github/go.mod                  |  2 +-
 connector-github/go.sum                  |  4 ++--
 connector-google/go.mod                  |  2 +-
 connector-google/go.sum                  |  4 ++--
 connector-google/google.go               |  6 +++++-
 editor-chart/chart.go                    |  6 +++++-
 editor-chart/go.mod                      |  2 +-
 editor-chart/go.sum                      |  4 ++--
 editor-formula/formula.go                |  6 +++++-
 editor-formula/go.mod                    |  2 +-
 editor-formula/go.sum                    |  4 ++--
 embed-basic/basic.go                     |  6 +++++-
 embed-basic/go.mod                       |  2 +-
 embed-basic/go.sum                       |  4 ++--
 notification-slack/go.mod                |  2 +-
 notification-slack/go.sum                |  4 ++--
 notification-slack/slack_notification.go |  6 +++++-
 reviewer-akismet/basic.go                |  6 +++++-
 reviewer-akismet/go.mod                  |  2 +-
 reviewer-akismet/go.sum                  |  4 ++--
 reviewer-basic/basic.go                  |  6 +++++-
 reviewer-basic/go.mod                    |  2 +-
 reviewer-basic/go.sum                    |  4 ++--
 search-algolia/algolia.go                |  6 +++++-
 search-algolia/go.mod                    |  2 +-
 search-algolia/go.sum                    |  4 ++--
 search-elasticsearch/es.go               |  6 +++++-
 search-elasticsearch/go.mod              |  2 +-
 search-elasticsearch/go.sum              |  4 ++--
 search-meilisearch/go.mod                |  2 +-
 search-meilisearch/go.sum                |  4 ++--
 search-meilisearch/meilisearch.go        |  6 +++++-
 storage-aliyunoss/aliyunoss.go           |  6 +++++-
 storage-aliyunoss/go.mod                 |  2 +-
 storage-aliyunoss/go.sum                 |  4 ++--
 storage-s3/go.mod                        |  2 +-
 storage-s3/go.sum                        |  4 ++--
 storage-s3/s3.go                         |  6 +++++-
 user-center-wecom/go.mod                 |  2 +-
 user-center-wecom/go.sum                 |  4 ++--
 user-center-wecom/wecom_user_center.go   |  6 +++++-
 util/util.go                             | 12 +++---------
 61 files changed, 162 insertions(+), 89 deletions(-)

diff --git a/cache-redis/go.mod b/cache-redis/go.mod
index 51e0b59..f564872 100644
--- a/cache-redis/go.mod
+++ b/cache-redis/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/go-redis/redis/v8 v8.11.5
 )
 
diff --git a/cache-redis/go.sum b/cache-redis/go.sum
index dbbb330..526f36a 100644
--- a/cache-redis/go.sum
+++ b/cache-redis/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/cache-redis/redis.go b/cache-redis/redis.go
index c2497cb..4c915c1 100644
--- a/cache-redis/redis.go
+++ b/cache-redis/redis.go
@@ -21,6 +21,8 @@ package redis
 
 import (
        "context"
+       "embed"
+       _ "embed"
        "encoding/json"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
@@ -34,6 +36,8 @@ import (
 
 var (
        configuredErr = fmt.Errorf("redis is not configured correctly")
+       //go:embed  info.yaml
+       Info embed.FS
 )
 
 type Cache struct {
@@ -55,7 +59,7 @@ func init() {
 
 func (c *Cache) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/captcha-basic/basic.go b/captcha-basic/basic.go
index 3703d81..8a16cc3 100644
--- a/captcha-basic/basic.go
+++ b/captcha-basic/basic.go
@@ -20,6 +20,7 @@
 package basic
 
 import (
+       "embed"
        "github.com/apache/incubator-answer-plugins/util"
        "image/color"
 
@@ -28,6 +29,9 @@ import (
        "github.com/mojocn/base64Captcha"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type Captcha struct {
 }
 
@@ -37,7 +41,7 @@ func init() {
 
 func (c *Captcha) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/captcha-basic/go.mod b/captcha-basic/go.mod
index bd87c13..1efc75a 100644
--- a/captcha-basic/go.mod
+++ b/captcha-basic/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/mojocn/base64Captcha v1.3.6
 )
 
diff --git a/captcha-basic/go.sum b/captcha-basic/go.sum
index 64dc003..2f4b62e 100644
--- a/captcha-basic/go.sum
+++ b/captcha-basic/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/captcha-google-v2/go.mod b/captcha-google-v2/go.mod
index 890fe89..086340f 100644
--- a/captcha-google-v2/go.mod
+++ b/captcha-google-v2/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
 )
 
diff --git a/captcha-google-v2/go.sum b/captcha-google-v2/go.sum
index 6a45f37..32f7197 100644
--- a/captcha-google-v2/go.sum
+++ b/captcha-google-v2/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/captcha-google-v2/recaptcha.go b/captcha-google-v2/recaptcha.go
index 5106c02..ae4e7b1 100644
--- a/captcha-google-v2/recaptcha.go
+++ b/captcha-google-v2/recaptcha.go
@@ -20,6 +20,7 @@
 package recaptcha
 
 import (
+       "embed"
        "github.com/apache/incubator-answer-plugins/util"
        "io"
        "net/http"
@@ -33,6 +34,9 @@ import (
        "github.com/segmentfault/pacman/log"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type Captcha struct {
        Config *CaptchaConfig
 }
@@ -55,7 +59,7 @@ func init() {
 
 func (c *Captcha) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/connector-apache/apache.go b/connector-apache/apache.go
index cf5b80e..718ea04 100644
--- a/connector-apache/apache.go
+++ b/connector-apache/apache.go
@@ -20,6 +20,7 @@
 package apache
 
 import (
+       "embed"
        "encoding/json"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
@@ -32,6 +33,9 @@ import (
        "github.com/segmentfault/pacman/log"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type Connector struct {
 }
 
@@ -41,7 +45,7 @@ func init() {
 
 func (g *Connector) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/connector-apache/go.mod b/connector-apache/go.mod
index 1e3a704..230c38e 100644
--- a/connector-apache/go.mod
+++ b/connector-apache/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
 )
 
diff --git a/connector-apache/go.sum b/connector-apache/go.sum
index 4bd322c..c6fe130 100644
--- a/connector-apache/go.sum
+++ b/connector-apache/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/connector-basic/basic.go b/connector-basic/basic.go
index 6665414..4ea5d72 100644
--- a/connector-basic/basic.go
+++ b/connector-basic/basic.go
@@ -21,6 +21,7 @@ package basic
 
 import (
        "context"
+       "embed"
        "encoding/json"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
@@ -40,6 +41,8 @@ import (
 
 var (
        replaceUsernameReg = regexp.MustCompile(`[^a-zA-Z0-9._-]+`)
+       //go:embed  info.yaml
+       Info embed.FS
 )
 
 type Connector struct {
@@ -76,7 +79,7 @@ func init() {
 
 func (g *Connector) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/connector-basic/go.mod b/connector-basic/go.mod
index e084905..fcac552 100644
--- a/connector-basic/go.mod
+++ b/connector-basic/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
        github.com/tidwall/gjson v1.14.4
        golang.org/x/oauth2 v0.4.0
diff --git a/connector-basic/go.sum b/connector-basic/go.sum
index e891c11..4c01320 100644
--- a/connector-basic/go.sum
+++ b/connector-basic/go.sum
@@ -21,8 +21,8 @@ github.com/alecthomas/units 
v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
 github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod 
h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/apache/thrift v0.12.0/go.mod 
h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
 github.com/apache/thrift v0.13.0/go.mod 
h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
 github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod 
h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
diff --git a/connector-dingtalk/dingtalk.go b/connector-dingtalk/dingtalk.go
index e81edad..f19e70a 100644
--- a/connector-dingtalk/dingtalk.go
+++ b/connector-dingtalk/dingtalk.go
@@ -21,6 +21,7 @@ package dingtalk
 
 import (
        "bytes"
+       "embed"
        "encoding/json"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
@@ -31,6 +32,9 @@ import (
        "github.com/segmentfault/pacman/log"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 const (
        LogoSVG      = 
"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCI+PHBhdGggZmlsbD0iIzAwODlmZiIgZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDhzNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0bTIyNyAzODUuM2MtMSA0LjItMy41IDEwLjQtNyAxNy44aC4xbC0uNC43Yy0yMC4zIDQzLjEtNzMuMSAxMjcuNy03My4xIDEyNy43cy0uMS0uMi0uMy0uNWwtMTUuNSAyNi44aDc0LjVMNTc1LjEgODEwbDMyLjMtMTI4aC01OC42bDIwLjQtODQuN2MtMTYuNSAzLjktMzUuOSA5LjQtNTk
 [...]
        AuthorizeURL = "https://login.dingtalk.com/oauth2/auth";
@@ -72,7 +76,7 @@ func init() {
 
 func (g *Connector) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/connector-dingtalk/go.mod b/connector-dingtalk/go.mod
index 1a54a93..c5c54a2 100644
--- a/connector-dingtalk/go.mod
+++ b/connector-dingtalk/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
 )
 
diff --git a/connector-dingtalk/go.sum b/connector-dingtalk/go.sum
index f43b649..e8d4ee1 100644
--- a/connector-dingtalk/go.sum
+++ b/connector-dingtalk/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/connector-github/github.go b/connector-github/github.go
index 0f6c139..3e5e634 100644
--- a/connector-github/github.go
+++ b/connector-github/github.go
@@ -21,6 +21,7 @@ package github
 
 import (
        "context"
+       "embed"
        "encoding/json"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
@@ -34,6 +35,9 @@ import (
        oauth2GitHub "golang.org/x/oauth2/github"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type Connector struct {
        Config *ConnectorConfig
 }
@@ -51,7 +55,7 @@ func init() {
 
 func (g *Connector) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/connector-github/go.mod b/connector-github/go.mod
index 819462d..d35028d 100644
--- a/connector-github/go.mod
+++ b/connector-github/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/google/go-github/v50 v50.1.0
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
        golang.org/x/oauth2 v0.4.0
diff --git a/connector-github/go.sum b/connector-github/go.sum
index 0aad1ba..de86b60 100644
--- a/connector-github/go.sum
+++ b/connector-github/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/connector-google/go.mod b/connector-google/go.mod
index d42275c..74029ba 100644
--- a/connector-google/go.mod
+++ b/connector-google/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        golang.org/x/oauth2 v0.4.0
 )
 
diff --git a/connector-google/go.sum b/connector-google/go.sum
index 70763c1..dd68c42 100644
--- a/connector-google/go.sum
+++ b/connector-google/go.sum
@@ -6,8 +6,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/connector-google/google.go b/connector-google/google.go
index 0724e58..fdf623f 100644
--- a/connector-google/google.go
+++ b/connector-google/google.go
@@ -21,6 +21,7 @@ package google
 
 import (
        "context"
+       "embed"
        "encoding/json"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
@@ -33,6 +34,9 @@ import (
        oauth2Google "golang.org/x/oauth2/google"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type Connector struct {
        Config *ConnectorConfig
 }
@@ -62,7 +66,7 @@ func init() {
 
 func (g *Connector) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/editor-chart/chart.go b/editor-chart/chart.go
index abffcd8..3875664 100644
--- a/editor-chart/chart.go
+++ b/editor-chart/chart.go
@@ -20,11 +20,15 @@
 package chart
 
 import (
+       "embed"
        "github.com/apache/incubator-answer-plugins/editor-chart/i18n"
        "github.com/apache/incubator-answer-plugins/util"
        "github.com/apache/incubator-answer/plugin"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type ChartPlugin struct {
 }
 
@@ -34,7 +38,7 @@ func init() {
 
 func (d ChartPlugin) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/editor-chart/go.mod b/editor-chart/go.mod
index 5cffea9..943f729 100644
--- a/editor-chart/go.mod
+++ b/editor-chart/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
 )
 
 require (
diff --git a/editor-chart/go.sum b/editor-chart/go.sum
index f43b649..e8d4ee1 100644
--- a/editor-chart/go.sum
+++ b/editor-chart/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/editor-formula/formula.go b/editor-formula/formula.go
index 2ebba9c..b95b532 100644
--- a/editor-formula/formula.go
+++ b/editor-formula/formula.go
@@ -20,11 +20,15 @@
 package formula
 
 import (
+       "embed"
        "github.com/apache/incubator-answer-plugins/editor-formula/i18n"
        "github.com/apache/incubator-answer-plugins/util"
        "github.com/apache/incubator-answer/plugin"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type FormulaPlugin struct {
 }
 
@@ -34,7 +38,7 @@ func init() {
 
 func (d FormulaPlugin) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/editor-formula/go.mod b/editor-formula/go.mod
index 4b79e4f..7b86fb4 100644
--- a/editor-formula/go.mod
+++ b/editor-formula/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
 )
 
 require (
diff --git a/editor-formula/go.sum b/editor-formula/go.sum
index f43b649..e8d4ee1 100644
--- a/editor-formula/go.sum
+++ b/editor-formula/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/embed-basic/basic.go b/embed-basic/basic.go
index 409ea55..9c723af 100644
--- a/embed-basic/basic.go
+++ b/embed-basic/basic.go
@@ -28,6 +28,10 @@ import (
        "github.com/apache/incubator-answer/plugin"
 )
 
+
+//go:embed  info.yaml
+var Info embed.FS
+
 //go:embed components
 var Build embed.FS
 
@@ -55,7 +59,7 @@ func init() {
 
 func (e *Embed) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/embed-basic/go.mod b/embed-basic/go.mod
index 9c01f8c..003adb1 100644
--- a/embed-basic/go.mod
+++ b/embed-basic/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer 
v1.2.5-RC1.0.20240315093158-ba71c22bc841
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
 )
 
 require (
diff --git a/embed-basic/go.sum b/embed-basic/go.sum
index d99c0db..b90d214 100644
--- a/embed-basic/go.sum
+++ b/embed-basic/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.2.5-RC1.0.20240315093158-ba71c22bc841 
h1:4JCvWWF9ydPDy4DTVrZQT2JGoRvGtXAJlc3xtzZM4T8=
 github.com/apache/incubator-answer 
v1.2.5-RC1.0.20240315093158-ba71c22bc841/go.mod 
h1:yoYETRAnY3Bng3wEo+B6R9nXjZ1O3brs2DKWGpKYPcA=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/notification-slack/go.mod b/notification-slack/go.mod
index cc92bc4..dee4bfc 100644
--- a/notification-slack/go.mod
+++ b/notification-slack/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/go-resty/resty/v2 v2.11.0
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
 )
diff --git a/notification-slack/go.sum b/notification-slack/go.sum
index c173c99..9ce9c70 100644
--- a/notification-slack/go.sum
+++ b/notification-slack/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/notification-slack/slack_notification.go 
b/notification-slack/slack_notification.go
index 75dc63f..c6b0158 100644
--- a/notification-slack/slack_notification.go
+++ b/notification-slack/slack_notification.go
@@ -20,6 +20,7 @@
 package slack
 
 import (
+       "embed"
        "github.com/apache/incubator-answer-plugins/util"
        "github.com/go-resty/resty/v2"
        "strings"
@@ -30,6 +31,9 @@ import (
        "github.com/segmentfault/pacman/log"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type Notification struct {
        Config          *NotificationConfig
        UserConfigCache *UserConfigCache
@@ -45,7 +49,7 @@ func init() {
 
 func (n *Notification) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(slackI18n.InfoName),
diff --git a/reviewer-akismet/basic.go b/reviewer-akismet/basic.go
index 3dc81b8..6de7b42 100644
--- a/reviewer-akismet/basic.go
+++ b/reviewer-akismet/basic.go
@@ -20,6 +20,7 @@
 package basic
 
 import (
+       "embed"
        "encoding/json"
        "github.com/apache/incubator-answer-plugins/util"
 
@@ -29,6 +30,9 @@ import (
        "github.com/segmentfault/pacman/log"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type Reviewer struct {
        Config *ReviewerConfig
 }
@@ -46,7 +50,7 @@ func init() {
 
 func (r *Reviewer) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/reviewer-akismet/go.mod b/reviewer-akismet/go.mod
index 40407b6..6618a32 100644
--- a/reviewer-akismet/go.mod
+++ b/reviewer-akismet/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/go-resty/resty/v2 v2.12.0
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
 )
diff --git a/reviewer-akismet/go.sum b/reviewer-akismet/go.sum
index 6194990..0217780 100644
--- a/reviewer-akismet/go.sum
+++ b/reviewer-akismet/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/reviewer-basic/basic.go b/reviewer-basic/basic.go
index 7b38884..b0a87c0 100644
--- a/reviewer-basic/basic.go
+++ b/reviewer-basic/basic.go
@@ -20,6 +20,7 @@
 package basic
 
 import (
+       "embed"
        "encoding/json"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
@@ -30,6 +31,9 @@ import (
        myI18n "github.com/segmentfault/pacman/i18n"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type Reviewer struct {
        Config *ReviewerConfig
 }
@@ -49,7 +53,7 @@ func init() {
 
 func (r *Reviewer) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/reviewer-basic/go.mod b/reviewer-basic/go.mod
index c300bc2..ef543af 100644
--- a/reviewer-basic/go.mod
+++ b/reviewer-basic/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
 )
 
diff --git a/reviewer-basic/go.sum b/reviewer-basic/go.sum
index 6a45f37..32f7197 100644
--- a/reviewer-basic/go.sum
+++ b/reviewer-basic/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/search-algolia/algolia.go b/search-algolia/algolia.go
index 2623d7a..230ac89 100644
--- a/search-algolia/algolia.go
+++ b/search-algolia/algolia.go
@@ -21,6 +21,7 @@ package algolia
 
 import (
        "context"
+       "embed"
        "github.com/apache/incubator-answer-plugins/util"
        "strconv"
        "strings"
@@ -31,6 +32,9 @@ import (
        "github.com/apache/incubator-answer/plugin"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type SearchAlgolia struct {
        Config *AlgoliaSearchConfig
        client *search.Client
@@ -44,7 +48,7 @@ func init() {
 
 func (s *SearchAlgolia) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/search-algolia/go.mod b/search-algolia/go.mod
index 63ec04e..64f83a1 100644
--- a/search-algolia/go.mod
+++ b/search-algolia/go.mod
@@ -5,7 +5,7 @@ go 1.19
 require (
        github.com/algolia/algoliasearch-client-go/v3 v3.29.2
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
 )
 
diff --git a/search-algolia/go.sum b/search-algolia/go.sum
index ce365c2..a12668e 100644
--- a/search-algolia/go.sum
+++ b/search-algolia/go.sum
@@ -6,8 +6,8 @@ github.com/algolia/algoliasearch-client-go/v3 v3.29.2 
h1:lmAD/gNui2TLoT8az22ECr0
 github.com/algolia/algoliasearch-client-go/v3 v3.29.2/go.mod 
h1:i7tLoP7TYDmHX3Q7vkIOL4syVse/k5VJ+k0i8WqFiJk=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/search-elasticsearch/es.go b/search-elasticsearch/es.go
index 4e32d55..8ea9a8a 100644
--- a/search-elasticsearch/es.go
+++ b/search-elasticsearch/es.go
@@ -21,6 +21,7 @@ package es
 
 import (
        "context"
+       "embed"
        "encoding/json"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
@@ -32,6 +33,9 @@ import (
        "github.com/segmentfault/pacman/log"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type SearchEngine struct {
        Config   *SearchEngineConfig
        Operator *Operator
@@ -52,7 +56,7 @@ func init() {
 
 func (s *SearchEngine) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/search-elasticsearch/go.mod b/search-elasticsearch/go.mod
index ec48c21..95b1074 100644
--- a/search-elasticsearch/go.mod
+++ b/search-elasticsearch/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/olivere/elastic/v7 v7.0.32
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
 )
diff --git a/search-elasticsearch/go.sum b/search-elasticsearch/go.sum
index 420d45c..245785c 100644
--- a/search-elasticsearch/go.sum
+++ b/search-elasticsearch/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/search-meilisearch/go.mod b/search-meilisearch/go.mod
index 1ef50e8..14f948a 100644
--- a/search-meilisearch/go.mod
+++ b/search-meilisearch/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/meilisearch/meilisearch-go v0.25.0
        github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
 )
diff --git a/search-meilisearch/go.sum b/search-meilisearch/go.sum
index a36d025..d38957a 100644
--- a/search-meilisearch/go.sum
+++ b/search-meilisearch/go.sum
@@ -6,8 +6,8 @@ github.com/andybalholm/brotli v1.0.4 
h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY
 github.com/andybalholm/brotli v1.0.4/go.mod 
h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/search-meilisearch/meilisearch.go 
b/search-meilisearch/meilisearch.go
index 3b6d7dc..57b7e17 100644
--- a/search-meilisearch/meilisearch.go
+++ b/search-meilisearch/meilisearch.go
@@ -21,6 +21,7 @@ package meilisearch
 
 import (
        "context"
+       "embed"
        "encoding/json"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
@@ -34,6 +35,9 @@ import (
        "github.com/segmentfault/pacman/log"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 const (
        primaryKey       = "objectID"
        defaultIndexName = "answer_post"
@@ -67,7 +71,7 @@ func init() {
 
 func (s *Search) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/storage-aliyunoss/aliyunoss.go b/storage-aliyunoss/aliyunoss.go
index 20ea7c0..66a065e 100644
--- a/storage-aliyunoss/aliyunoss.go
+++ b/storage-aliyunoss/aliyunoss.go
@@ -21,6 +21,7 @@ package aliyunoss
 
 import (
        "crypto/rand"
+       "embed"
        "encoding/hex"
        "encoding/json"
        "fmt"
@@ -35,6 +36,9 @@ import (
        "github.com/apache/incubator-answer/plugin"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 const (
        // 10MB
        defaultMaxFileSize int64 = 10 * 1024 * 1024
@@ -62,7 +66,7 @@ func init() {
 
 func (s *Storage) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/storage-aliyunoss/go.mod b/storage-aliyunoss/go.mod
index f5cf6a5..72ee36e 100644
--- a/storage-aliyunoss/go.mod
+++ b/storage-aliyunoss/go.mod
@@ -5,7 +5,7 @@ go 1.19
 require (
        github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
 )
 
 require (
diff --git a/storage-aliyunoss/go.sum b/storage-aliyunoss/go.sum
index a8f4fe8..e188314 100644
--- a/storage-aliyunoss/go.sum
+++ b/storage-aliyunoss/go.sum
@@ -6,8 +6,8 @@ github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible 
h1:KXeJoM1wo9I/6xPTyt6qC
 github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible/go.mod 
h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bytedance/sonic v1.5.0/go.mod 
h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
diff --git a/storage-s3/go.mod b/storage-s3/go.mod
index e443abe..09556ed 100644
--- a/storage-s3/go.mod
+++ b/storage-s3/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/aws/aws-sdk-go v1.44.314
 )
 
diff --git a/storage-s3/go.sum b/storage-s3/go.sum
index d1044ba..cd2b1ea 100644
--- a/storage-s3/go.sum
+++ b/storage-s3/go.sum
@@ -4,8 +4,8 @@ github.com/LinkinStars/go-i18n/v2 v2.2.2 
h1:ZfjpzbW13dv6btv3RALKZkpN9A+7K1JA//2Q
 github.com/LinkinStars/go-i18n/v2 v2.2.2/go.mod 
h1:hLglSJ4/3M0Y7ZVcoEJI+OwqkglHCA32DdjuJJR2LbM=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aws/aws-sdk-go v1.44.314 
h1:d/5Jyk/Fb+PBd/4nzQg0JuC2W4A0knrDIzBgK/ggAow=
 github.com/aws/aws-sdk-go v1.44.314/go.mod 
h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
diff --git a/storage-s3/s3.go b/storage-s3/s3.go
index 19ec38a..83b5545 100644
--- a/storage-s3/s3.go
+++ b/storage-s3/s3.go
@@ -21,6 +21,7 @@ package s3
 
 import (
        "crypto/rand"
+       "embed"
        "encoding/hex"
        "encoding/json"
        "fmt"
@@ -34,6 +35,9 @@ import (
        "github.com/apache/incubator-answer/plugin"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 const (
        // 10MB
        defaultMaxFileSize int64 = 10 * 1024 * 1024
@@ -65,7 +69,7 @@ func init() {
 
 func (s *Storage) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/user-center-wecom/go.mod b/user-center-wecom/go.mod
index 75ffd47..7c83969 100644
--- a/user-center-wecom/go.mod
+++ b/user-center-wecom/go.mod
@@ -4,7 +4,7 @@ go 1.19
 
 require (
        github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe
-       github.com/apache/incubator-answer-plugins/util v1.0.0
+       github.com/apache/incubator-answer-plugins/util v1.0.1
        github.com/gin-gonic/gin v1.9.1
        github.com/imroc/req/v3 v3.33.1
        github.com/patrickmn/go-cache v2.1.0+incompatible
diff --git a/user-center-wecom/go.sum b/user-center-wecom/go.sum
index 3a4466a..32ebc87 100644
--- a/user-center-wecom/go.sum
+++ b/user-center-wecom/go.sum
@@ -8,8 +8,8 @@ github.com/alicebob/miniredis/v2 v2.30.0 
h1:uA3uhDbCxfO9+DI/DuGeAMr9qI+noVWwGPNT
 github.com/alicebob/miniredis/v2 v2.30.0/go.mod 
h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe 
h1:qjPRGlo6u24SQJDKqGpLNz2ju/BuTH4FO5Xy5RPXZC0=
 github.com/apache/incubator-answer v1.3.1-0.20240506084933-9681c026adfe/go.mod 
h1:YKwpG0rwRC0kHcbILcIyIbPMwsWaZ8j5lHJ34DPIdMI=
-github.com/apache/incubator-answer-plugins/util v1.0.0 
h1:Wr5N72iUt2bkzIZ+EVoi/1CFw0xNjc19lwx9V01yzbY=
-github.com/apache/incubator-answer-plugins/util v1.0.0/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
+github.com/apache/incubator-answer-plugins/util v1.0.1 
h1:8KYYuQL6aILlbMif0+EtR6rT9ftYRUt502VjyCHpT+4=
+github.com/apache/incubator-answer-plugins/util v1.0.1/go.mod 
h1:KPMSiM4ec4uEl2njaGINYuSl6zVmHdvPB2nHUxVcQDo=
 github.com/aymerick/douceur v0.2.0 
h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/bradfitz/gomemcache v0.0.0-20220106215444-fb4bf637b56d 
h1:pVrfxiGfwelyab6n21ZBkbkmbevaf+WvMIiR7sr97hw=
diff --git a/user-center-wecom/wecom_user_center.go 
b/user-center-wecom/wecom_user_center.go
index c56fbaf..594d3be 100644
--- a/user-center-wecom/wecom_user_center.go
+++ b/user-center-wecom/wecom_user_center.go
@@ -20,6 +20,7 @@
 package wecom
 
 import (
+       "embed"
        "fmt"
        "github.com/apache/incubator-answer-plugins/util"
        "net/http"
@@ -33,6 +34,9 @@ import (
        "github.com/segmentfault/pacman/log"
 )
 
+//go:embed  info.yaml
+var Info embed.FS
+
 type UserCenter struct {
        Config          *UserCenterConfig
        Company         *Company
@@ -101,7 +105,7 @@ func init() {
 
 func (uc *UserCenter) Info() plugin.Info {
        info := &util.Info{}
-       info.GetInfo()
+       info.GetInfo(Info)
 
        return plugin.Info{
                Name:        plugin.MakeTranslator(i18n.InfoName),
diff --git a/util/util.go b/util/util.go
index b2d7d6b..21cefc5 100644
--- a/util/util.go
+++ b/util/util.go
@@ -20,11 +20,9 @@
 package util
 
 import (
+       "embed"
        "fmt"
        "gopkg.in/yaml.v3"
-       "os"
-       "path/filepath"
-       "runtime"
 )
 
 type Info struct {
@@ -35,12 +33,8 @@ type Info struct {
        Link     string `yaml:"link"`
 }
 
-func (c *Info) GetInfo() *Info {
-       _, filename, _, _ := runtime.Caller(1)
-       wd := filepath.Dir(filename)
-
-       yamlFilePath := filepath.Join(wd, "info.yaml")
-       yamlFile, err := os.ReadFile(yamlFilePath)
+func (c *Info) GetInfo(info embed.FS) *Info {
+       yamlFile, err := info.ReadFile("info.yaml")
        if err != nil {
                fmt.Println(err)
        }

Reply via email to