diff --git a/教程/工具/20250617-门户网站使用教程.md b/教程/工具/20250617-门户网站使用教程.md
new file mode 100644
index 0000000..74c68bb
--- /dev/null
+++ b/教程/工具/20250617-门户网站使用教程.md
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# 门户网站使用教程
+
+## 解决问题
+
+- 公司各种工具和环境混杂
+- 许多工具开发无法很好的感知
+- 统一书签管理
+
+---
+
+## 快速使用
+
+1. 打开 http://menhu.qifu.com
+2. 选择企微登录
+
+---
+
+## 附加说明
+
+### 修改密码
+
+- 修改密码之后,可以用账户和密码登录,而不需要企微登录
+ - 打开设置 (头像 -> 设置)
+ - 选择左侧 `密码` 选项
+ - 填入新密码,点击 `保存修改`。旧密码默认为空
+
+### 扩展使用
+
+- 使用扩展可以快速添加自己的链接到自定义收藏夹
+
+#### 浏览器安装扩展程序
+
+- [Chrome/Edge地址](https://chromewebstore.google.com/detail/linkwarden/pnidmkljnhbjfffciajlcpeldoljnidn)
+ - 
+- [Firefox地址](https://chromewebstore.google.com/detail/linkwarden/pnidmkljnhbjfffciajlcpeldoljnidn)
+ - 
+- 如果网络不方便的可以使用下面的压缩包,扩展解压缩后,在扩展界面添加已解压的扩展进行安装
+ - [扩展包下载](https://drive.weixin.qq.com/s?k=AE0Auwd4ACg2LReqE1)
+ - 
+
+#### 配置服务信息
+
+- 新建 AccessToken(头像 -> 设置)
+ - 
+- 浏览器插件配置
+ - 
+ - URL:http://menhu.qifu.com
+ - API Key:第一步创建的 AccessToken
+- 在需要收藏的界面点击插件图标,保存到自己的文件夹下(官方文件夹无权限收藏)
+
+---
+
+## 参考
+
+- [官方说明文档](https://docs.linkwarden.app/getting-started/browser-extension)
\ No newline at end of file
diff --git a/文档/基础组件/20250527-元盟核心包说明.md b/文档/基础组件/00-元盟核心包说明.md
similarity index 100%
rename from 文档/基础组件/20250527-元盟核心包说明.md
rename to 文档/基础组件/00-元盟核心包说明.md
diff --git a/文档/基础组件/01-元盟核心包变更记录.md b/文档/基础组件/01-元盟核心包变更记录.md
new file mode 100644
index 0000000..befaf7b
--- /dev/null
+++ b/文档/基础组件/01-元盟核心包变更记录.md
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# 元盟核心包变更记录
+## 2.0.2
+- 修复脚手架扫描路径导致的问题
+- 自动填充工具类多层级支持
+
+## 2.0.1(Deprecated)
+- 用户重构兼容
+
+## 2.0.0
+- 重构核心包结构
+- 抽离兼容包
\ No newline at end of file
diff --git a/文档/基础组件/web/20250617-engine-starter-web-2.0.2.md b/文档/基础组件/web/20250617-engine-starter-web-2.0.2.md
new file mode 100644
index 0000000..317fd14
--- /dev/null
+++ b/文档/基础组件/web/20250617-engine-starter-web-2.0.2.md
@@ -0,0 +1,400 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# engine-starter-web 使用教程
+
+> 基于 web 的各种工具封装
+> 具体使用可参考 [engine-sample > engine-sample-starter-web](../engine-sample/engine-sample-starter-web)
+
+## 功能特性
+
+- [X] `YmAutofillResponseAdvice`: 全局返回结果填充处理
+- [X] `@YmAutoFill` 和 `@YmAutoFillResp`: 结果自动填充
+ - 多层级填充实现,[使用样例](#结果自动填充)
+ - 多层级字段需要使用 `@YmAutofillResp` 标识
+- [X] `@YmIgnoreResultWrapper`: 忽略 `Result` 结果包装
+- [X] `YmResponseAdvice`: 全局结果封装
+- [X] `YmGlobalExceptionHandlerAdvice`: 全局异常拦截处理
+- [X] `YmI18nResponseAdvice`: I18n全局处理
+- [X] `@YmIgnoreI18n`: 忽略I18n
+- [X] `YmHealthCheckFilter`: 全局健康检查接口
+- [X] `YmRequestBodyWrapperFilter`: request 和 response 可重复读封装
+- [X] `YmRequestPrintFilter`: 请求日志打印
+- [X] `YmThreadLocalFilter`: 登录用户信息解析存储(兼容新网关)
+- [X] `YmUserLoginFilter`: 用户登录校验(后续会迁移到网关,默认关闭)
+- [X] `YmThreadLocalUtils`: 获取当前线程中的上下文信息
+
+-------
+
+## 快速使用
+
+- **注意:** `qifu-saas-parent >= 2.0.1-SNAPSHOT`
+- **注意:** 启动类 `@ComponentScan` 需要变更为如下形式
+- ```java
+ @ComponentScan(value = "com.yuanmeng.*",
+ excludeFilters = {
+ @ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
+ @ComponentScan.Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class)
+ })
+ @SpringBootApplication
+ public class SampleStarterWebApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SampleStarterWebApplication.class, args);
+ }
+
+ }
+ ```
+
+### 添加依赖
+
+```xml
+
+
+ com.yuanmeng.engine
+ engine-starter-web
+
+```
+
+### 添加兼容包(可选)
+
+- 项目中存在 `web-core` 或者 `oauth2-core` 时需要添加兼容包
+
+```xml
+
+
+ com.yuanmeng.engine
+ engine-starter-compatible-web
+
+```
+
+----
+
+## 使用工具
+
+### 忽略结果封装
+
+```java
+public class Usage {
+
+ /**
+ * 测试忽略包装
+ *
+ * @return 结果
+ */
+ @YmIgnoreResultWrapper
+ @GetMapping("/ignore-result-wrapper")
+ public String ignoreResultWrapper() {
+ return "ignore-result-wrapper success";
+ }
+
+}
+```
+
+### 全局异常拦截
+
+```java
+public class Usage {
+
+ @GetMapping("/exception")
+ public String exception() {
+ // 打印error日志,触发告警
+ throw new RuntimeException("exception");
+ }
+
+ @GetMapping("/ym-exception")
+ public String ymException() {
+ // 打印error日志,触发告警
+ throw new YmException("ym exception");
+ }
+
+ @GetMapping("/ym-biz-exception")
+ public String ymBizException() {
+ // 打印 warning 日志
+ throw new YmBizException(YmResultCode.BASE_ERROR);
+ }
+
+ @GetMapping("/ym-biz-data-exception")
+ public String ymBizDataException() {
+ // 打印 info 日志
+ throw new YmBizDataException(YmResultCode.BASE_ERROR,
+ new TestData(TestStatusEnum.SUCCESS.getCode(), "1"));
+ }
+
+ @YmAutofillResp
+ @GetMapping("/ym-biz-data-exception-fill")
+ public String ymBizDataExceptionFill() {
+ // 触发结果数据自动填充
+ throw new YmBizDataException(YmResultCode.BASE_ERROR,
+ new TestData(TestStatusEnum.SUCCESS.getCode(), "1"));
+ }
+
+}
+```
+
+### 国际化支持
+
+- 开启国际化支撑
+
+```yaml
+yuanmeng:
+ web:
+ i18n:
+ enable: true
+```
+
+- 添加国际化文件
+ - 默认 `resources > i18n > messages_zh_CN.properties`
+
+```properties
+Base\ Error=服务端错误
+```
+
+- 编写代码
+
+```java
+
+@GetMapping("/i18n")
+public String i18n() {
+ return "test success";
+}
+
+@YmIgnoreI18n
+@GetMapping("/i18n-ignore")
+public String i18nIgnore() {
+ return "i18n ignore";
+}
+
+@GetMapping("/i18n-error")
+public String i18nError() {
+ // 触发国际化配置
+ throw new YmBizException(YmResultCode.BASE_ERROR);
+}
+```
+
+- **自定义国际化处理类(可选)**
+
+```java
+
+@RequiredArgsConstructor
+public class CustomI18nMessageHandler implements YmI18nMessageHandler {
+
+ private final MessageSource messageSource;
+
+ @Override
+ public String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale) {
+ return messageSource.getMessage(code, args, defaultMessage, locale);
+ }
+
+ @Override
+ public String getMessage(String code, @Nullable Object[] args, Locale locale) throws NoSuchMessageException {
+ return messageSource.getMessage(code, args, locale);
+ }
+
+ @Override
+ public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException {
+ return messageSource.getMessage(resolvable, locale);
+ }
+
+}
+
+@Configuration
+public class YmI18nConfiguration {
+
+ public static final String I18N_MESSAGE_SOURCE = "ymI18nMessageSource";
+ public static final String I18N_MESSAGE_HANDLER = "ymI18nMessageHandler";
+
+ @Bean(I18N_MESSAGE_SOURCE)
+ @ConditionalOnMissingBean(name = I18N_MESSAGE_SOURCE)
+ public MessageSource messageSource() {
+ log.info("[WEB_STARTER_INIT]: CUSTOM I18N_MESSAGE_SOURCE init");
+ ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
+ messageSource.setBasename("i18n/test");
+ messageSource.setDefaultEncoding(StandardCharsets.UTF_8.toString());
+ return messageSource;
+ }
+
+ @Bean(I18N_MESSAGE_HANDLER)
+ @ConditionalOnMissingBean(name = I18N_MESSAGE_HANDLER)
+ public YmI18nMessageHandler ymI18nMessageHandler(@Qualifier(I18N_MESSAGE_SOURCE) MessageSource messageSource) {
+ log.info("[WEB_STARTER_INIT]: CUSTOM YmI18nMessageHandler init");
+ return new CustomI18nMessageHandler(messageSource);
+ }
+
+}
+```
+
+### 结果自动填充
+
+```java
+
+import java.util.List;
+
+@Getter
+@AllArgsConstructor
+public enum TestStatusEnum implements YmBaseEnum {
+
+ SUCCESS("SUCCESS", "成功"),
+ FAIL("FAIL", "失败"),
+ ;
+
+ private final String code;
+ private final String desc;
+
+}
+
+@Component
+public class TestAutoFillHandler implements YmAutofillHandler {
+
+ @Override
+ public Map, ?> handle(Collection> ids, YmAutofillInfo autofill) {
+ Collection string = (Collection) ids;
+ Map result = new HashMap<>();
+ string.forEach(k -> result.put(k, k + "value"));
+ return result;
+ }
+
+}
+
+@Data
+@NoArgsConstructor
+public class TestData {
+
+ @YmAutofill(enumCls = TestStatusEnum.class)
+ private String statusName;
+ private String status;
+
+ private String code;
+ @YmAutofill(from = "code", type = YmAutofillType.BEAN, handler = TestAutoFillHandler.class)
+ private String msg;
+
+ @YmAutofillResp
+ private List secondList;
+ @YmAutofillResp
+ private List childList;
+
+ public TestData(String status, String code) {
+ this.status = status;
+ this.code = code;
+ }
+
+}
+
+@Data
+@NoArgsConstructor
+public class TestDataSecond {
+
+ private String statusName;
+ private String status;
+
+ private String code;
+ private String msg;
+
+ @YmAutofillResp
+ private TestData testData;
+
+ public TestDataSecond(String status, String code) {
+ this.status = status;
+ this.code = code;
+ }
+
+}
+
+
+public class Usage {
+
+ @YmAutofillResp
+ @GetMapping("/autofill")
+ public List autofill() {
+ List list = new ArrayList<>();
+ list.add(new TestData(TestStatusEnum.SUCCESS.getCode(), "1"));
+ list.add(new TestData(TestStatusEnum.FAIL.getCode(), "2"));
+ return list;
+ }
+
+ @YmAutofillResp({
+ @YmAutofill(from = "status", target = "statusName", enumCls = TestStatusEnum.class),
+ @YmAutofill(from = "code", target = "msg", type = YmAutofillType.BEAN, handler = TestAutoFillHandler.class)
+ })
+ @GetMapping("/autofill-second")
+ public List autofillSecond() {
+ List list = new ArrayList<>();
+ list.add(new TestDataSecond(TestStatusEnum.SUCCESS.getCode(), "1"));
+ list.add(new TestDataSecond(TestStatusEnum.FAIL.getCode(), "2"));
+ return list;
+ }
+
+}
+```
+
+------
+
+## 完整默认配置文件
+
+```yaml
+yuanmeng:
+ web:
+ #- 开启starter
+ enable: true
+ #- 开启兼容排除
+ enable-ignore: true
+ #- 开启返回结果填充
+ enable-audit-handler: true
+ #- 开启返回结果自动封装 YmResult
+ enable-result-wrapper: true
+ #- 开启全局异常拦截
+ enable-exception-handler: true
+ filter:
+ #- 开启健康检查接口
+ enable-health-check: true
+ #- 开启上下文信息解析
+ enable-thread-local: true
+ #- 开启登录拦截器(token校验)
+ enable-user-login: false
+ #- 需要跳过的路径
+ skip-path:
+ - "/test"
+ #- 可重复读请求封装
+ request-body:
+ enable: true
+ filter-uris:
+ - "/test1"
+ #- 请求日志打印封装
+ track:
+ enable: true
+ filter-uris:
+ - "/test2"
+ sensitive-keys:
+ - "password"
+ print-type: 2
+ #- 打印请求体
+ print-request-body: true
+ #- 打印返回体
+ print-response-body: true
+ external-url-list:
+ - "/external/test"
+ #- i18n全局拦截
+ i18n:
+ enable: false
+```
\ No newline at end of file
diff --git a/杂项/test1.json b/杂项/test1.json
index 7a0fba8..63ee5f0 100644
--- a/杂项/test1.json
+++ b/杂项/test1.json
@@ -1,13 +1,370 @@
-
-{
- "Labels": [
- {
- "LabelBase64": "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PDwKICAvUmVzb3VyY2VzIDE1IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgMjg4IDQzMl0KICAvQ3JvcEJveCBbMCAwIDI4OCA0MzJdCiAgL0JsZWVkQm94IFswIDAgMjg4IDQzMl0KICAvVHJpbUJveCBbMCAwIDI4OCA0MzJdCiAgL1BhcmVudCAxNiAwIFIKICAvQ29udGVudHMgMTIgMCBSCj4+CmVuZG9iagoxNyAwIG9iago8PAogIC9UeXBlIC9Gb250CiAgL1N1YnR5cGUgL1R5cGUxCiAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKMTggMCBvYmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMQogIC9CYXNlRm9udCAvSGVsdmV0aWNhLU9ibGlxdWUKICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKMTkgMCBvYmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMQogIC9CYXNlRm9udCAvSGVsdmV0aWNhLUJvbGQKICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKMTYgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzCi9Db3VudCAxCi9LaWRzIFsxNCAwIFIgXSA+PgplbmRvYmoKMjAgMCBvYmoKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAxNiAwIFIKICAvTGFuZyAoeC11bmtub3duKQo+PgplbmRvYmoKMTUgMCBvYmoKPDwKICAvRm9udCA8PAogIC9GMSAxNyAwIFIKICAvRjIgMTggMCBSCiAgL0YzIDE5IDAgUgo+PgogIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUIgL0ltYWdlQyAvVGV4dF0KICAvWE9iamVjdCA8PCAvSW0xIDUgMCBSIC9JbTIgMTAgMCBSID4+CiAgL0NvbG9yU3BhY2UgPDwgL0lDQzIgNCAwIFIgL0lDQzcgOSAwIFIgPj4KPj4KZW5kb2JqCnhyZWYKMCAyMQowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDEzMSAwMDAwMCBuIAowMDAwMDAyNjg4IDAwMDAwIG4gCjAwMDAwMDI3MDggMDAwMDAgbiAKMDAwMDAwMjc0MSAwMDAwMCBuIAowMDAwMDAzMDEzIDAwMDAwIG4gCjAwMDAwMDMwMzEgMDAwMDAgbiAKMDAwMDAwNTU4OCAwMDAwMCBuIAowMDAwMDA1NjA4IDAwMDAwIG4gCjAwMDAwMDU2NDEgMDAwMDAgbiAKMDAwMDAwNTk2MiAwMDAwMCBuIAowMDAwMDA1OTgyIDAwMDAwIG4gCjAwMDAwMTI1NzAgMDAwMDAgbiAKMDAwMDAxMjU5MSAwMDAwMCBuIAowMDAwMDEzMjUxIDAwMDAwIG4gCjAwMDAwMTMxMTYgMDAwMDAgbiAKMDAwMDAxMjc4NSAwMDAwMCBuIAowMDAwMDEyODkxIDAwMDAwIG4gCjAwMDAwMTMwMDUgMDAwMDAgbiAKMDAwMDAxMzE3NiAwMDAwMCBuIAp0cmFpbGVyCjw8CiAgL1Jvb3QgMjAgMCBSCiAgL0luZm8gMSAwIFIKICAvSUQgWzxCQzhFRDNDNzk0RDY4NTg0QkM1MDAxQ0VBNDRBRjI5RT4gPEJDOEVEM0M3OTRENjg1ODRCQzUwMDFDRUE0NEFGMjlFPl0KICAvU2l6ZSAyMQo+PgpzdGFydHhyZWYKMTM0NTAKJSVFT0YK",
- "LabelType": "pdf",
- "Tracknumber": "9234690346749900475340"
- }
- ],
- "Message": "OK",
- "OrderNo": "613048161388470272",
- "Success": true
-}
\ No newline at end of file
+[
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/02c09b568c28050ee877a3196c098f92?s=80&d=identicon",
+ "id": 116,
+ "name": "jeecg",
+ "state": "active",
+ "username": "jeecg",
+ "webUrl": "http://git.keyfil.com/jeecg"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/575b820b74359c0bb6377bc62843e6ec?s=80&d=identicon",
+ "id": 115,
+ "name": "yuting.chen",
+ "state": "active",
+ "username": "yuting.chen",
+ "webUrl": "http://git.keyfil.com/yuting.chen"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/467fb2ece15e8c641b8e40f70b7fe1c7?s=80&d=identicon",
+ "id": 114,
+ "name": "杨承锦",
+ "state": "active",
+ "username": "chengjin.yang",
+ "webUrl": "http://git.keyfil.com/chengjin.yang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/84478e8f4bd851604453cd7c25979680?s=80&d=identicon",
+ "id": 112,
+ "name": "ying.huang",
+ "state": "active",
+ "username": "ying.huang",
+ "webUrl": "http://git.keyfil.com/ying.huang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/883cfb0cee084f7c8709fe7811abcc92?s=80&d=identicon",
+ "id": 111,
+ "name": "bingjie.li",
+ "state": "active",
+ "username": "bingjie.li",
+ "webUrl": "http://git.keyfil.com/bingjie.li"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/5f5405423431aa2ebd2dd13cb1b605d6?s=80&d=identicon",
+ "id": 110,
+ "name": "xi.mao",
+ "state": "active",
+ "username": "xi.mao",
+ "webUrl": "http://git.keyfil.com/xi.mao"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/2d70598bfe61b3f1ff60789485ee1b09?s=80&d=identicon",
+ "id": 109,
+ "name": "ziqi.huang",
+ "state": "active",
+ "username": "ziqi.huang",
+ "webUrl": "http://git.keyfil.com/ziqi.huang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/757648fa429847f74bae81092638f5c3?s=80&d=identicon",
+ "id": 107,
+ "name": "xining.guan",
+ "state": "active",
+ "username": "xining.guan",
+ "webUrl": "http://git.keyfil.com/xining.guan"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/b6bdf111bfc0cc6fc3bb87e8bd104c12?s=80&d=identicon",
+ "id": 105,
+ "name": "lingjie.zheng",
+ "state": "active",
+ "username": "lingjie.zheng",
+ "webUrl": "http://git.keyfil.com/lingjie.zheng"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/a461c956e7614b3e6cb28a33ee204431?s=80&d=identicon",
+ "id": 103,
+ "name": "peiwen.zhang",
+ "state": "active",
+ "username": "peiwen.zhang",
+ "webUrl": "http://git.keyfil.com/peiwen.zhang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/f734c3ed344b015cc94c4ce0babb0591?s=80&d=identicon",
+ "id": 101,
+ "name": "zhaohui.fu",
+ "state": "active",
+ "username": "zhaohui.fu",
+ "webUrl": "http://git.keyfil.com/zhaohui.fu"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/ea16ac3d56d5ed0a47b65ea30d84e2f6?s=80&d=identicon",
+ "id": 100,
+ "name": "zhixuan.lin",
+ "state": "active",
+ "username": "zhixuan.lin",
+ "webUrl": "http://git.keyfil.com/zhixuan.lin"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/f2ce43c48b7b7b21a30c8de7bdae5bbc?s=80&d=identicon",
+ "id": 99,
+ "name": "liu.jiang",
+ "state": "active",
+ "username": "liu.jiang",
+ "webUrl": "http://git.keyfil.com/liu.jiang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/a8ddcd044ad6b84914312fd2e8694658?s=80&d=identicon",
+ "id": 98,
+ "name": "ce.zhang",
+ "state": "active",
+ "username": "ce.zhang",
+ "webUrl": "http://git.keyfil.com/ce.zhang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/449ab37c7333793c918fa1b6c5a8201c?s=80&d=identicon",
+ "id": 94,
+ "name": "aijiao.jia",
+ "state": "active",
+ "username": "aijiao.jia",
+ "webUrl": "http://git.keyfil.com/aijiao.jia"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/38c7876a835251aa31a2ef44b8451d15?s=80&d=identicon",
+ "id": 93,
+ "name": "yuanzhi.li",
+ "state": "active",
+ "username": "yuanzhi.li",
+ "webUrl": "http://git.keyfil.com/yuanzhi.li"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/4263838346cbd71feb8af0baeb5893e4?s=80&d=identicon",
+ "id": 92,
+ "name": "江臻宇",
+ "state": "active",
+ "username": "zhenyu.jiang",
+ "webUrl": "http://git.keyfil.com/zhenyu.jiang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/9e084e69c5019a75a6a567e9a6ac3bdc?s=80&d=identicon",
+ "id": 90,
+ "name": "siqi.lin",
+ "state": "active",
+ "username": "siqi.lin",
+ "webUrl": "http://git.keyfil.com/siqi.lin"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/254c609b6ccd67bd51b3ed5063a861fc?s=80&d=identicon",
+ "id": 85,
+ "name": "hongmei.luo",
+ "state": "active",
+ "username": "hongmei.luo",
+ "webUrl": "http://git.keyfil.com/hongmei.luo"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/de43d8df4da81aa3fb7ae95814a8ad01?s=80&d=identicon",
+ "id": 83,
+ "name": "liwei.he",
+ "state": "active",
+ "username": "liwei.he",
+ "webUrl": "http://git.keyfil.com/liwei.he"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/1a7ee56156790934b33cddf52a6831c1?s=80&d=identicon",
+ "id": 82,
+ "name": "junfan.fan",
+ "state": "active",
+ "username": "junfan.fan",
+ "webUrl": "http://git.keyfil.com/junfan.fan"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/2b1b880319eb1dad322a8cc112a5433e?s=80&d=identicon",
+ "id": 81,
+ "name": "tao.zhou",
+ "state": "active",
+ "username": "tao.zhou",
+ "webUrl": "http://git.keyfil.com/tao.zhou"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/2cfee2f716a00e0849faa2f0ebc50760?s=80&d=identicon",
+ "id": 77,
+ "name": "analysis",
+ "state": "active",
+ "username": "analysis",
+ "webUrl": "http://git.keyfil.com/analysis"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/b9f48da54848ff998ca99b6aceb54e14?s=80&d=identicon",
+ "id": 76,
+ "name": "qifeng.nie",
+ "state": "active",
+ "username": "qifeng.nie",
+ "webUrl": "http://git.keyfil.com/qifeng.nie"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/ce128f83b31da0a340bc1ac9be5dda22?s=80&d=identicon",
+ "id": 71,
+ "name": "jenkins",
+ "state": "active",
+ "username": "jenkins",
+ "webUrl": "http://git.keyfil.com/jenkins"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/f9d1e35a720adee100ae7dd8dc0a4290?s=80&d=identicon",
+ "id": 70,
+ "name": "shihang.wu",
+ "state": "active",
+ "username": "shihang.wu",
+ "webUrl": "http://git.keyfil.com/shihang.wu"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/5a3f26cee3ea39ea0fa060ab87442184?s=80&d=identicon",
+ "id": 61,
+ "name": "yongwei.zhang",
+ "state": "active",
+ "username": "yongwei.zhang",
+ "webUrl": "http://git.keyfil.com/yongwei.zhang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/fb559f1d9ed7eeafb6fdc5f1faadf41c?s=80&d=identicon",
+ "id": 60,
+ "name": "weiming.liu",
+ "state": "active",
+ "username": "weiming.liu",
+ "webUrl": "http://git.keyfil.com/weiming.liu"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/666ab4b308018f07cb90e6e49b9737d2?s=80&d=identicon",
+ "id": 59,
+ "name": "quanliang.qiu",
+ "state": "active",
+ "username": "quanliang.qiu",
+ "webUrl": "http://git.keyfil.com/quanliang.qiu"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/08bb39d086dd2d2d2cc18944e1b68a2e?s=80&d=identicon",
+ "id": 54,
+ "name": "徐会派",
+ "state": "active",
+ "username": "huipai.xu",
+ "webUrl": "http://git.keyfil.com/huipai.xu"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/bed79d77c88b55070cea6797121b413c?s=80&d=identicon",
+ "id": 53,
+ "name": "刘晓华",
+ "state": "active",
+ "username": "xiaohua.liu",
+ "webUrl": "http://git.keyfil.com/xiaohua.liu"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/835d48ea0b7203a8328297941c747eef?s=80&d=identicon",
+ "id": 52,
+ "name": "xiujian.li",
+ "state": "active",
+ "username": "xiujian.li",
+ "webUrl": "http://git.keyfil.com/xiujian.li"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/b3a861f6fc02980fbc0f9b29ced98526?s=80&d=identicon",
+ "id": 50,
+ "name": "youkai.deng",
+ "state": "active",
+ "username": "youkai.deng",
+ "webUrl": "http://git.keyfil.com/youkai.deng"
+ },
+ {
+ "avatarUrl": "http://git.keyfil.com/uploads/-/system/user/avatar/47/avatar.png",
+ "id": 47,
+ "name": "李金锋",
+ "state": "active",
+ "username": "jinfeng.li",
+ "webUrl": "http://git.keyfil.com/jinfeng.li"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/6955365adc7d3bb58d59ba60fc3123e3?s=80&d=identicon",
+ "id": 46,
+ "name": "mingchang.chen",
+ "state": "active",
+ "username": "mingchang.chen",
+ "webUrl": "http://git.keyfil.com/mingchang.chen"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/1ef224e4fde9b88db074bd164498d649?s=80&d=identicon",
+ "id": 45,
+ "name": "ruihong.zheng",
+ "state": "active",
+ "username": "ruihong.zheng",
+ "webUrl": "http://git.keyfil.com/ruihong.zheng"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/c957e301ea72b35a0ba5943330982e43?s=80&d=identicon",
+ "id": 41,
+ "name": "ziai.wang",
+ "state": "active",
+ "username": "ziai.wang",
+ "webUrl": "http://git.keyfil.com/ziai.wang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/86aff4c9e779ada01458c169f806ca9b?s=80&d=identicon",
+ "id": 36,
+ "name": "xiangyi.feng",
+ "state": "active",
+ "username": "xy.fung",
+ "webUrl": "http://git.keyfil.com/xy.fung"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/cc0e53128fc2c21bff3c24c1f8e14719?s=80&d=identicon",
+ "id": 27,
+ "name": "test",
+ "state": "active",
+ "username": "test",
+ "webUrl": "http://git.keyfil.com/test"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/d524f58f5b37e2ff6a1cc1c3d8e10d9d?s=80&d=identicon",
+ "id": 13,
+ "name": "高小冰",
+ "state": "active",
+ "username": "gaoxiaobing",
+ "webUrl": "http://git.keyfil.com/gaoxiaobing"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/3ceed6336043ae7ffc3ed1381490fdf3?s=80&d=identicon",
+ "id": 11,
+ "name": "刘强",
+ "state": "active",
+ "username": "liuqiang",
+ "webUrl": "http://git.keyfil.com/liuqiang"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/74da63baa41807bc459bbe13115bf706?s=80&d=identicon",
+ "id": 9,
+ "name": "leader",
+ "state": "active",
+ "username": "leader",
+ "webUrl": "http://git.keyfil.com/leader"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/6cdd0990f537f80a8c62070eeebff391?s=80&d=identicon",
+ "id": 4,
+ "name": "林明郁",
+ "state": "active",
+ "username": "linmingyu",
+ "webUrl": "http://git.keyfil.com/linmingyu"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/15543a95e429e483dbc320beb2e82139?s=80&d=identicon",
+ "id": 3,
+ "name": "刘微",
+ "state": "active",
+ "username": "liuwei",
+ "webUrl": "http://git.keyfil.com/liuwei"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/16902bae01d35831c6772a1a6fac8f7c?s=80&d=identicon",
+ "id": 2,
+ "name": "周英桥",
+ "state": "active",
+ "username": "zhou",
+ "webUrl": "http://git.keyfil.com/zhou"
+ },
+ {
+ "avatarUrl": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
+ "id": 1,
+ "name": "Administrator",
+ "state": "active",
+ "username": "root",
+ "webUrl": "http://git.keyfil.com/root"
+ }
+]