8000 Feature: Github Retriever and PR Summary Chain by Arcadia822 · Pull Request #9 · codedog-ai/codedog · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Feature: Github Retriever and PR Summary Chain #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jul 25, 2023
Merged

Conversation

Arcadia822
Copy link
Member

No description provided.

Arcadia822 and others added 5 commits July 21, 2023 19:38
support:
1. extract code files (by suffix whitelist) from pr change list
2. summarize changed file list and there status
Summarize PR with description, PR Type, major files
@Codedog-Bot
Copy link

codedog #9 代码审查报告

powered by GPT3.5-Turbo and Codedog 0.4.0

执行记录

  • 开始时间: 2023-07-25 07:51:29
  • 审查耗时: 94秒
  • 审查文件数量: 34
  • OPENAI API TOKEN数量: 43297 (约$0.0866)

PR概要

这次pull request主要新增了一些模型类和Retriever类,用于表示和获取代码数据。其中PRSummary类用于表示pull request的类型和概述信息,PullRequest模型包含PR的基本信息、相关的Issue和改动的文件。同时,GithubRetriever类中的get_pull_requests方法增加了对pull request状态的判断。

主要变动
1. codedog/chains/pr_summary/init.py
codedog/chains/pr_summary/init.py文件改动
2. codedog/chains_old.py
codedog/chains_old.py文件有大量业务逻辑改动
3. codedog/models/blob.py
新增了一个名为Blob的类,包含了blob_id、sha、content、encoding、size和url等属性
4. codedog/models/change_file.py
新增ChangeFile模型,包含文件变更信息和状态
5. codedog/models/commit.py
新增Commit模型类,包含commit_id、sha、url、message等属性
6. codedog/models/issue.py
新增Issue模型类,包含issue_id、title、description、url和_raw等字段
7. codedog/models/pr_summary.py
新增PRSummary类,包含PRType枚举类和PRSummary模型,用于表示pull request的类型和概述信息,以及主要逻辑改动的文件列表
8. codedog/models/pull_request.py
新增PullRequest模型,包含PR的基本信息、相关的Issue和改动的文件
9. codedog/models/repository.py
新增Repository类,包含repository_id、repository_name、repository_full_name、repository_url和_raw属性
10. codedog/retrievers/base.py
新增Retriever类,定义了从不同平台获取代码数据的接口
11. codedog/retrievers/gitlab_retriever.py
添加GitlabRetriever类
12. tests/codedog/retrievers/test_github_retriever.py
修改了GithubRetriever类中的get_pull_requests方法,增加了对pull request状态的判断
次要变动
1. .flake8
增加了tmp/目录的排除规则
2. codedog/init.py
增加了verbose变量
3. codedog/chains/init.py
导入PRSummaryChain模块
4. codedog/chains/pr_summary/base.py
该文件为一个包含大量业务逻辑改动的代码文件,主要改动为新增了一个名为PRSummaryChain的类,该类用于对pull request进行总结,包括对代码变更的总结和对PR的总结。
5. codedog/chains/pr_summary/processor.py
该diff改动为codedog/chains/pr_summary/processor.py文件添加了一个名为PRSummaryProcessor的类,该类包含了一些方法用于生成PR的摘要信息,包括获取PR中的代码文件、生成代码文件的变更摘要、生成代码文件的变更总结、生成PR的元数据等。
6. codedog/chains/pr_summary/prompts.py
添加了一个名为PromptTemplate的类,该类包含了一个PR_SUMMARY_PROMPT和一个CODE_SUMMARY_PROMPT模板
7. codedog/models/init.py
添加codedog.models中的所有模块
8. codedog/models/change_summary.py
增加了一个ChangeSummary类,包含full_name和summary两个属性
9. codedog/models/diff.py
该diff改动增加了一个名为DiffContent的类,其中包含了一些DiffSegment类的属性,用于表示代码差异的一些细节信息。
10. codedog/retrievers/init.py
添加了GithubRetriever和GitlabRetriever两个类的引用
11. codedog/retrievers/github_retriever.py
该diff改动内容为在codedog/retrievers/github_retriever.py文件中新增了一些import语句和类方法,包括GithubRetriever类的初始化方法和一些私有方法。
12. codedog/review.py
将codedog.chains改为codedog.chains_old
13. codedog/templates/grimoire_en.py
Add code and PR summary templates for code review assistant
14. codedog/templates/template_en.py
添加了一个名为MATERIAL_CODE_SUMMARY的字符串变量和一个名为MATERIAL_PR_METADATA的字符串变量,用于生成PR的元数据
15. codedog/utils.py
修改了get_jwt_token函数中的jwt.encode函数的参数格式,修改了get_access_token_by_installation_id函数中的返回值格式,修改了load_private_key函数中的代码格式
16. codedog/utils/init.py
修改了一些函数的参数和返回值,增加了一些注释
17. codedog/utils/diff_utils.py
新增了两个函数,用于将diff内容解析为unidiff.PatchSet对象
18. codedog/utils/langchain_utils.py
添加了两个函数load_gpt_llm和load_gpt4_llm,用于加载ChatOpenAI和AzureChatOpenAI模型
19. examples/github/github_review_new.py
该diff增加了导入了一些模块,定义了一些变量,并且调用了一些函数,最后调用了一个可视化函数。
20. poetry.lock
更新了依赖库requests的版本号
21. pyproject.toml
更新了codedog的依赖库版本和源地址,并添加了新的依赖库
22. tests/codedog/pr_summary/test_pr_summary_rocessor.py
该diff改动了codedog.chains.pr_summary.processor模块中的PRSummaryProcessor类,增加了一些测试函数和辅助函数。

PR改进建议 preview

** 目前改进建议功能仍在调试中,建议仅供参考 **

1. codedog/retrievers/github_retriever.py

缺少代码部分,无法进行审查。请提供完整的代码文件。

2. codedog/review.py

需要修复的部分:将from codedog.chains_old import Chains改为from codedog.chains import Chains,以使用最新的代码库。

@Arcadia822 Arcadia822 merged commit 3105595 into master Jul 25, 2023
@Arcadia822 Arcadia822 deleted the feat/retriever branch July 25, 2023 07:53
@codedog-assistant
Copy link

codedog #9 代码审查报告

powered by GPT3.5-Turbo and Codedog 0.4.0

执行记录

  • 开始时间: 2023-07-25 07:51:32
  • 审查耗时: 698秒
  • 审查文件数量: 34
  • OPENAI API TOKEN数量: 43854 (约$0.0877)

PR概要

这次pull request主要新增了codedog模块中的多个类和模型,包括Blob、Commit、DiffSegment、DiffContent、Issue、PRSummary、PullRequest和Repository等。同时,还新增了Retriever类和GitlabRetriever类,以及修改了GithubRetriever类中的get_pull_requests方法。

主要变动
1. codedog/chains/pr_summary/init.py
codedog/chains/pr_summary/init.py文件改动
2. codedog/chains_old.py
codedog/chains_old.py文件有大量业务逻辑改动
3. codedog/models/init.py
添加codedog.models中的所有模块
4. codedog/models/blob.py
新增了一个名为Blob的类,包含了blob_id、sha、content、encoding、size和url等属性
5. codedog/models/commit.py
新增Commit模型类,包含commit_id、sha、url、message等属性
6. codedog/models/diff.py
新增DiffSegment和DiffContent两个类,用于表示diff的内容和段落信息
7. codedog/models/issue.py
新增Issue模型,包含id、标题、描述、url等字段
8. codedog/models/pr_summary.py
新增PRSummary模型,包含PR类型、摘要和主要文件等信息
9. codedog/models/pull_request.py
新增PullRequest模型,包含PR的基本信息、相关的Issue和改动的文件
10. codedog/models/repository.py
新增Repository类,包含repository_id、repository_name、repository_full_name、repository_url和_raw属性
11. codedog/retrievers/base.py
新增Retriever类,定义了从不同平台获取代码数据的接口
12. codedog/retrievers/gitlab_retriever.py
添加GitlabRetriever类
13. tests/codedog/retrievers/test_github_retriever.py
修改了GithubRetriever类中的get_pull_requests方法,增加了对pull request状态的判断
次要变动
1. .flake8
增加了tmp/目录的排除规则
2. codedog/init.py
增加了verbose变量
3. codedog/chains/init.py
导入PRSummaryChain模块
4. codedog/chains/pr_summary/base.py
该文件为一个包含大量业务逻辑改动的代码文件,主要改动为新增了一个名为PRSummaryChain的类,该类用于对pull request进行总结,包括对代码变更的总结和对PR的总结。
5. codedog/chains/pr_summary/processor.py
该diff改动为codedog/chains/pr_summary/processor.py文件添加了一个名为PRSummaryProcessor的类,该类包含了一些方法用于生成PR的摘要信息,包括获取PR中的代码文件、生成代码文件的变更摘要、生成代码文件的变更总结、生成PR的元数据等。
6. codedog/chains/pr_summary/prompts.py
该diff改动添加了一个名为PromptTemplate的类,其中包含了一个名为PR_SUMMARY_PROMPT的模板和一个名为CODE_SUMMARY_PROMPT的模板,这些模板用于生成代码摘要和PR摘要。同时还引入了一些其他模块和类。
7. codedog/models/change_file.py
该diff改动为新增了一个ChangeFile类,包含了一个文件的变更信息,包括文件名、变更状态、变更前后的commit id等。同时还新增了一个ChangeStatus枚举类,用于表示文件变更的状态。
8. codedog/models/change_summary.py
增加了一个ChangeSummary类,包含full_name和summary两个属性
9. codedog/retrievers/init.py
添加了GithubRetriever和GitlabRetriever两个类的引用
10. codedog/retrievers/github_retriever.py
该diff改动内容为在codedog/retrievers/github_retriever.py文件中新增了GithubRetriever类的实现,包括了该类的属性、方法和构造函数等。
11. codedog/review.py
将codedog.chains改为codedog.chains_old
12. codedog/templates/grimoire_en.py
Add code and PR summary templates for code review assistant
13. codedog/templates/template_en.py
添加了一个名为MATERIAL_CODE_SUMMARY的字符串变量和一个名为MATERIAL_PR_METADATA的多行字符串变量,用于生成PR的元数据
14. codedog/utils.py
修改了get_jwt_token函数中的jwt.encode函数的参数格式,修改了get_access_token_by_installation_id函数中的返回值格式,修改了load_private_key函数中的代码格式
15. codedog/utils/init.py
修改了get_config函数的返回值类型为dict
16. codedog/utils/diff_utils.py
新增了两个函数,用于将diff内容解析为unidiff.PatchSet对象
17. codedog/utils/langchain_utils.py
添加了两个函数load_gpt_llm和load_gpt4_llm,用于加载ChatOpenAI和AzureChatOpenAI模型
18. examples/github/github_review_new.py
该diff增加了导入了一些模块,定义了一些变量,并且调用了一些函数,最后调用了一个可视化函数。
19. poetry.lock
更新了依赖库requests的版本号
20. pyproject.toml
更新了codedog的依赖库版本和源地址,并添加了新的依赖库
21. tests/codedog/pr_summary/test_pr_summary_rocessor.py
该diff改动了codedog.chains.pr_summary.processor模块中的PRSummaryProcessor类,增加了一些测试函数和辅助函数。

PR改进建议 preview

** 目前改进建议功能仍在调试中,建议仅供参考 **

1. codedog/retrievers/github_retriever.py

缺少代码部分,无法进行审查。

2. codedog/review.py

需要修复的部分:将from codedog.chains_old import Chains改为from codedog.chains import Chains。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Assignees
No one assigned
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0