Comments 24
Интересно, разберётся ли он в более сложной логике? Например, метод getMessage
может существовать намеренно, потому что ожидается , что в будущем он будет возвращать не messageCode
, а что-то другое, и он был добавлен, чтобы потом не рефакторить сотни мест использования по всему проекту?
Раз уж пошла такая пьянка, то можете сразу и статьи ему давать вычитывать перед публикацией :)
Сколько примерно будет стоить таким образом в среднем один PR?
Как добавить мы разобрались. А кто-то понял зачем?
PROMPT ты прошел курс "Синьор JS за 30 дней", твоя задача ревьювить пул реквесты
В стандартном Review можно уточнять дальнейшие шаги реализации.
Реализованно ли это в ChatGPT-CodeReview или он дает только первоначальные замечания по коммиту и при следующих комментах (реакциях) от юзера в PullRequest будет тишина?
интересно как вы ищете готовые github actions для своих нужд? не про ChatGPT а вообще? часто вижу готовые в yml файлах.
Для этого есть специальный маркетплейс https://github.com/marketplace?type=actions
Кажется с тем же успехом можно вывести лог ошибок action.checkstyle, заслать их в какой то переводчик и добавить в коммент на русском. зато будет бесплатно и без фантазирования.
ChatGPT не такой глупый, он может сильно больше чем лог ошибок action.checkstyle. Все зависит от промпта. Он может по небольшим кускам кода предлагать улучшения: по производительности, по памяти, по бест практис и т.д.
Тогда надо вот что сделать !
На входе промпт на написание кода. GPT пишет код. Далее код пушится и создается ПР. GPT делает ревью кода. Из Ревью формируется новый промпт на улучшение кода.
процесс повторяется. Пока не получим идеальный код!
Заинтересовался и попробовал. Взял тупо стартовый проект со start.spring.io
Модель gpt-3.5-turbo выдала кучу замечаний. Как разумных, так и не очень. Например:
.gitignore: «Файлы
HELP.md
,.gradle
,build/
должны быть добавлены в.gitignore
». Но файлы эти как раз и присутствуют в gitignore.build.gradle: «Не следует указывать версию плагина 'org.springframework.boot' в файле сборки». Мне кажется, что версии плугинов всё-таки надо фиксировать.
build.gradle: «Версия исходной совместимости '21' в блоке
java
выбрана некорректно». Ну да, старый он, про JDK 21 не ведает :)build.gradle: «Обратите внимание, что нет пробела между "+" и "-" операторами в строках, начинающихся с плюсов или минусов. Рекомендуется добавить пробел для улучшения читаемости кода». Этого вообще не понял. В файле вообще нет плюсов и минусов.
gradle-wrapper.properties, application.properties: «Представленный код является настройками Gradle Wrapper'а и не является кодом Kotlin или Java ... Если хотите сосредоточиться на проверке кода на Kotlin или Java, пожалуйста, предоставьте соответствующий код ». А что ж ты тогда .gitignore комментировал?
DemoApplication.java: «Разбейте код на более мелкие методы». Вот задачку задал... Разбить на более мелкие методы класс с единственным методом, содержащим одну строчку кода.
gradlew.bat: «Код находится в файле с расширением "bat". Хорошей практикой будет переписать этот код на Groovy-скрипт (с расширением ".gradle"), чтобы использовать его в качестве декларативной конфигурации Gradle ». Без комментариев.
Это я написал только спорные моменты. А так-то там ещё много воды. https://github.com/Timo1979-x/equipment-spring/pull/1, если кому интересно.
Чтобы использовать запросы к OpenAI из РФ, можно создать ключ в сервисе
Не понял к чему эти сложности, ведь обращение к OpenAI идет с серверов гитхаба, которые не в РФ. Или Вы раннеры у себя хостите?
А можно ли как то сделать чтобы он файлы не по одному оценивал, а все вместе, их связи и т.д.?
Шаг за шагом: Как интегрировать ChatGPT для ревью пулл-реквестов на GitHub с помощью GitHub Actions