根据当前的用户习惯,寻找待生成的内容作为示例,而后作为生成式 AI 的输入。
AutoDev: 提交信息示例
步骤:
- 获取当前项目的版本控制系统(VCS)日志提供者。
- 获取当前分支和用户。
- 根据用户或分支过滤日志。
- 收集示例提交信息。
代码示例:
private fun findExampleCommitMessages(project: Project): String? {
val logProviders = VcsProjectLog.getLogProviders(project)
val entry = logProviders.entries.firstOrNull() ?: return null
val logProvider = entry.value
val branch = logProvider.getCurrentBranch(entry.key) ?: return null
val user = logProvider.getCurrentUser(entry.key)
val logFilter = if (user != null) {
VcsLogFilterObject.collection(VcsLogFilterObject.fromUser(user, setOf()))
} else {
VcsLogFilterObject.collection(VcsLogFilterObject.fromBranch(branch))
}
return collectExamples(logProvider, entry.key, logFilter)
}