This is an automated email from the ASF dual-hosted git repository.
wangtao29 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozhera.git
The following commit(s) were added to refs/heads/master by this push:
new 7dc37d64 feat: add git checkout new branch and create MR flow (#620)
7dc37d64 is described below
commit 7dc37d6464a03fed4d1e94bcee68a1775f78bcae
Author: EricDing <[email protected]>
AuthorDate: Thu Dec 4 14:26:38 2025 +0800
feat: add git checkout new branch and create MR flow (#620)
* refactor: refactor ozhera intelligence
* feat: add coder tool and git mcp
* fix: update codefix agent and tool
* fix: add git suffix
* refactor: add log query tool
* fix: add endTime and update desc
* feat: add git checkout new branch and create MR flow
---
.../src/main/resources/application.properties | 4 +++-
.../main/resources/config/opensource-outer.properties | 4 +++-
.../intelligence/agents/config/AgentConfig.java | 19 +++++++++++++------
.../ozhera/intelligence/service/TraceService.java | 2 +-
4 files changed, 20 insertions(+), 9 deletions(-)
diff --git
a/ozhera-intelligence/ozhera-intelligence-server/src/main/resources/application.properties
b/ozhera-intelligence/ozhera-intelligence-server/src/main/resources/application.properties
index dd2e2af3..47d368a5 100644
---
a/ozhera-intelligence/ozhera-intelligence-server/src/main/resources/application.properties
+++
b/ozhera-intelligence/ozhera-intelligence-server/src/main/resources/application.properties
@@ -35,7 +35,7 @@ nacos.address=${nacos.address}
mcp.agent.name=${mcp.agent.name}
# Trace span sectional API
-trace.span.sectional.url=${trace.span.sectional.url}
+trace.query.section.api.url=${trace.query.section.api.url}
# Trace query mode: http or dubbo
trace.query.mode=${trace.query.mode}
@@ -67,3 +67,5 @@ metrics.api.url=${metrics.api.url}
dubbo.qps.api.url=${dubbo.qps.api.url}
log.query.api.url=${log.query.api.url}
+hera.log.detail.api.url=${hera.log.detail.api.url}
+trace.query.api.url=${trace.query.api.url}
\ No newline at end of file
diff --git
a/ozhera-intelligence/ozhera-intelligence-server/src/main/resources/config/opensource-outer.properties
b/ozhera-intelligence/ozhera-intelligence-server/src/main/resources/config/opensource-outer.properties
index f637cb22..eff53e44 100644
---
a/ozhera-intelligence/ozhera-intelligence-server/src/main/resources/config/opensource-outer.properties
+++
b/ozhera-intelligence/ozhera-intelligence-server/src/main/resources/config/opensource-outer.properties
@@ -34,7 +34,7 @@ nacos.address=nacos:80
mcp.agent.name=trace-analysis
# Trace span sectional API
-trace.span.sectional.url=http://xx
+trace.query.section.api.url=http://xx
# Trace query mode: http or dubbo,
trace.query.mode=dubbo
@@ -62,3 +62,5 @@ hera.analysis.api.flowId=
metrics.api.url=http://xxx
dubbo.qps.api.url=http://xxxx
log.query.api.url=http://xxxx
+hera.log.detail.api.url==http://xxxx
+trace.query.api.url=http://xxxx
\ No newline at end of file
diff --git
a/ozhera-intelligence/ozhera-intelligence-service/src/main/java/org/apache/ozhera/intelligence/agents/config/AgentConfig.java
b/ozhera-intelligence/ozhera-intelligence-service/src/main/java/org/apache/ozhera/intelligence/agents/config/AgentConfig.java
index 7fd0f136..f400f177 100644
---
a/ozhera-intelligence/ozhera-intelligence-service/src/main/java/org/apache/ozhera/intelligence/agents/config/AgentConfig.java
+++
b/ozhera-intelligence/ozhera-intelligence-service/src/main/java/org/apache/ozhera/intelligence/agents/config/AgentConfig.java
@@ -27,9 +27,7 @@ import org.springframework.context.annotation.Configuration;
import run.mone.hive.mcp.function.ChatFunction;
import run.mone.hive.mcp.service.RoleMeta;
import run.mone.hive.roles.tool.*;
-import run.mone.mcp.git.tool.GitCloneTool;
-import run.mone.mcp.git.tool.GitCommitTool;
-import run.mone.mcp.git.tool.GitPushTool;
+import run.mone.mcp.git.tool.*;
import run.mone.mcp.hera.analysis.tool.LogQueryTool;
import run.mone.mcp.miline.tools.GetPipelineDetailTool;
import run.mone.mcp.miline.tools.RunPipelineTool;
@@ -51,6 +49,10 @@ public class AgentConfig {
@Autowired
private GitPushTool gitPushTool;
@Autowired
+ private GitCheckoutNewBranchTool gitCheckoutNewBranchTool;
+ @Autowired
+ private GitCreateMergeRequestTool gitCreateMergeRequestTool;
+ @Autowired
private LogQueryTool logQueryTool;
private boolean isRemoteFile = false;
@@ -86,6 +88,8 @@ public class AgentConfig {
gitCloneTool,
gitCommitTool,
gitPushTool,
+ gitCheckoutNewBranchTool,
+ gitCreateMergeRequestTool,
logQueryTool
))
//mcp工具
@@ -96,9 +100,12 @@ public class AgentConfig {
2、查询对应project和流水线(env)endTime前后半小时的该traceId的全部日志
2、根据根因节点的projectId和envId(就是pipelineId)获取流水线详情
3、根据流水线详情中的gitUrl、gitBranch、gitCommitId调用git_clone工具进行git clone\s
- 4、根据trace链路上的异常信息或者是日志中的信息,结合项目代码进行异常修复\s
- 5、修复完成后,将本地代码使用git_commit工具进行git
commit,commit信息是自动代码修复, 使用git_push进行git push\s
- 6、根据projectId和envId调用RunPipelineTool进行发布
+ 4、基于gitBranch和localPath创建一个新的分支,这个分支用于代码修复分支
+ 5、根据trace链路上的异常信息或者是日志中的信息,结合项目代码进行异常修复\s
+ 6、修复完成后,将本地代码使用git_commit工具进行git
commit,commit信息是自动代码修复, 使用git_push进行git push\s
+
7、根据流水线详情中的gitUrl、代码修复分支、gitBranch创建MR,将代码修复分支的代码合并到gitBranch中
+ 8、使用ask工具询问用户是否能够发布
+
9、如果能够发布,根据projectId和envId调用RunPipelineTool进行发布,如果不能够发布,则直接结束流程
""")
.build();
}
diff --git
a/ozhera-intelligence/ozhera-intelligence-service/src/main/java/org/apache/ozhera/intelligence/service/TraceService.java
b/ozhera-intelligence/ozhera-intelligence-service/src/main/java/org/apache/ozhera/intelligence/service/TraceService.java
index 928709f4..7da5878a 100644
---
a/ozhera-intelligence/ozhera-intelligence-service/src/main/java/org/apache/ozhera/intelligence/service/TraceService.java
+++
b/ozhera-intelligence/ozhera-intelligence-service/src/main/java/org/apache/ozhera/intelligence/service/TraceService.java
@@ -57,7 +57,7 @@ public class TraceService {
/**
* Trace span sectional API URL
*/
- @Value("${trace.span.sectional.url}")
+ @Value("${trace.query.section.api.url}")
private String traceSpanSectionalUrl;
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]