Transcription
В этом видео я покажу вам, как вы можете автоматически исправлять ваш код GitHub с помощью Claude, просто используя простую команду. Кроме того, вы можете перестать тратить часы на ручную отладку и создавать функции до 15 раз быстрее. А в конце этого видео я также раскрою простое изменение, которое вы можете внести, чтобы сократить расходы на облачный код более чем на 91%. Итак, если вы хотите повысить свою продуктивность и значительно сократить расходы, давайте приступим.
Хорошо, у меня здесь работает приложение Nex.js, запущенное локально на моем компьютере из командной строки. Это простой инструмент, который позволяет вам оставлять отзывы о видео. Вы можете посмотреть видео, и в любой момент я могу подойти сюда. Я могу писать на экране. Я могу сказать им, что они сделали это неправильно. Я могу оставить комментарий, и тогда он отслеживает все отзывы, и я могу переключаться между различными комментариями. Вы можете видеть, что если я перезагружу приложение, оно загрузится нормально.
Что я собираюсь сделать, так это зайти в мое приложение и намеренно добавить ошибку в код. Вот так. Я собираюсь сохранить его. Теперь это вызовет ошибку. Так что, если я попытаюсь запустить этот сайт, вы увидите, что у нас есть эта ошибка. И поэтому мы будем использовать облачный код внутри GitHub, чтобы автоматически исправить это внутри проблемы, как только мы отметим облачный код.
У меня здесь запущен VS Code. У меня здесь есть Cloud Code. У меня есть подсказка, которая проведет нас через этот процесс. У меня была более простая подсказка раньше, которую я использовал для прохождения этого процесса один раз, но после этого я смог доработать эту подсказку и сделать ее немного лучше. Это должно сделать этот процесс немного проще. Не стесняйтесь поставить видео на паузу и сделать скриншот подсказки, чтобы вы могли скопировать ее для себя.
Я собираюсь вставить это в Claude, но имейте в виду, что у меня уже есть этот проект на GitHub. И поэтому мы будем работать и добавлять GitHub actions прямо в этот репозиторий. Фактически, прежде чем я выполню это, я собираюсь вернуться в командную строку. Я сделаю git status. И если вы хотите узнать больше о Git, на моем канале есть видео, которым вы можете воспользоваться. Оно проведет вас через все. Если я сделаю git diff, это покажет текст, который я добавил на главную страницу здесь, который вызывает ошибку. Я сделаю git add dot, и это добавит этот файл. Затем я сделаю commit test error for cloud code GitHub integration. А затем я сделаю git push origin. И если мы перейдем обратно на GitHub и обновим, мы увидим этот коммит здесь. И если бы мы зашли внутрь, мы бы увидели ошибку, которую мы только что добавили.
Итак, я собираюсь вернуться в Visual Studio. У нас есть подсказка здесь. По сути, она проведет нас через эту интеграцию, которая есть в официальной документации Claude Code. Есть довольно много вариантов использования, через которые вы можете пройти. В данном случае мы будем использовать ее для исправления ошибок, упоминая Claude в проблемах GitHub, но я буду освещать дополнительные вещи в будущих видео, такие как обзоры безопасности, и это должно быть довольно круто.
Итак, эта подсказка собирается обновить код, чтобы добавить GitHub actions для реализации этой функции. Она также проведет нас через различные шаги настройки, которые нам нужно предпринять внутри самого GitHub, включая создание ключей и секретов и тому подобное. Поэтому, прежде чем я выполню это, я собираюсь нажать Shift Tab и перейти в режим плана. Таким образом, Cloud Code составит план, прежде чем приступить к работе.
Итак, здесь он начинает проводить собственное исследование. Хорошо, у него есть план. Я собираюсь позволить ему начать, и все, что он сделает неправильно, мы просто исправим по ходу дела, потому что никогда не знаешь, что он сделает. И кстати, как только мы закончим настройку с Cloud Code, я покажу вам, как интегрировать Cloud Code с DeepSeek, чтобы вы могли запускать это в 12 раз дешевле, чем при использовании моделей Cloud Code.
Итак, он создает GitHub action здесь. Продолжайте принимать. Это означает, что он создаст эту папку здесь, GitHub, и у нас есть этот файл, который я только что создал здесь. Поэтому его нужно будет закоммитить на GitHub, прежде чем он действительно заработает.
Хорошо, он создал GitHub action, который запустит процесс. Теперь есть несколько ручных шагов, которые нам нужно предпринять, и нам нужно отправить это на GitHub, чтобы это работало. Итак, давайте просто пройдемся по шагам, как здесь указано. Первое, что нам нужно сделать, это перейти в Anthropic и получить ключ. Я просто назову его delete me. Вот наш ключ. Вернемся к инструкциям.
Шаг второй: нам нужно установить приложение Cloud GitHub. Нажмите на эту ссылку. Мы установим. Я установлю его только для этого конкретного репозитория. Установить и авторизовать. Вернемся к инструкциям здесь. Теперь нам нужно добавить наш ключ API Claude в наши секреты. Итак, я собираюсь создать новый секрет. Я добавлю секрет сюда, но нам нужно назвать его так. Я скопирую и вставлю. Вот так. Мы добавим секрет.
Теперь нам нужно отправить этот файл GitHub action на GitHub, чтобы он имел к нему доступ. Итак, снова сделаем git status. Похоже, Cloud Code уже закоммитил это в наш локальный репозиторий. Итак, нам просто нужно сделать git push origin main. Я перейду обратно на GitHub. Итак, у нас есть это. Теперь у нас есть наш рабочий процесс Git здесь. Прямо здесь. Отлично. Вернемся к инструкциям.
Теперь он говорит нам перейти к тестированию. Однако есть одна вещь, которую нам нужно добавить. Нам нужно создать токен GitHub и также установить его в секреты, как мы сделали с ключом API. Это произошло в прошлый раз, когда я настраивал это сам. Он забыл это сделать. Он добавил это сюда, но на самом деле не сказал нам создать токен и добавить его в секреты.
Итак, я собираюсь вернуться на GitHub. Перейду в мои личные настройки. Я спущусь сюда, в настройки разработчика. Перейду в личные токены доступа, токены классические. Я сгенерирую новый токен. Я установлю его срок действия до завтра. Я назову его delete me. Теперь, что касается разрешений, я не на 100% уверен, что нам нужно здесь, но я знаю, что нам нужен доступ к репозиторию, и я полагаю, к рабочему процессу. Нам не нужно будет записывать и удалять пакеты или управлять ключами или управлять веб-хуками. Нам могут понадобиться уведомления. Я также выберу проекты здесь. И если это не сработает, мы всегда можем добавить больше. Сгенерируйте этот токен. Затем я скопирую этот токен здесь. Затем я вернусь к настройкам репозитория здесь. И я добавлю еще один секрет для GitHub actions. Создать новый секрет. И давайте посмотрим, каким был ключ снова. Похоже, он ищет GitHub token. Я просто скопирую это, и мы добавим это сюда. Добавить секрет.
Хорошо. Похоже, нельзя начинать с GitHub. Поэтому я просто собираюсь назвать его GH. Теперь в этом случае я собираюсь напрямую изменить файл здесь. Я мог бы попросить Cloud Code сделать это, и мы могли бы просто отправить изменения локально обратно. Но чтобы сделать вещи немного быстрее, я просто изменю это на GitHub. Мы закоммитим эти изменения. Закоммитим напрямую в основную ветку. Я скачаю эти изменения. Однако, git pull origin. Таким образом, у нас будет это локально. Так что, если вы посмотрите сюда, у нас это есть.
Итак, теперь я считаю, что мы сможем перейти к нашей проблеме здесь и протестировать ее, чтобы увидеть, как это работает. Главная страница не загружается. Я собираюсь набрать npm rundev. И снова я попытаюсь загрузить сайт. Вы можете взять ошибку отсюда. Вы также можете взять ее из терминала здесь. Создайте эту проблему. И теперь я собираюсь отметить Claude. Привет, помоги мне решить эту проблему. Продолжайте оставлять комментарий. Обратите внимание, что у нас появились эти маленькие глаза. Это означает, что Claude смотрит на это. Как только вы это увидите, вы сможете перейти к действиям, и мы сможем фактически наблюдать, что здесь происходит, верно? Итак, он фактически запускается. Вы можете видеть, что Cloud Code запускается. Похоже, он нашел проблему. Есть ошибка. Теперь он отправит изменения. Он оставит комментарий.
Итак, пока это работает, я просто перейду сюда и зайду в проблемы. Посмотрим, оставил ли он комментарий. Итак, он нашел проблему. Он говорит, что закончил. Я вернусь на главный сайт. Похоже, у нас здесь проблема. Отлично. Что здорово. И если мы посмотрим на фактическое исправление, мы увидим, что он убрал ошибку, что здорово. Но мы не видим фактического pull request. Поэтому, как только он создаст эту проблему, он должен отправить новый pull request.
Итак, я просто вернусь к Cloud Code. Все прошло хорошо. Мне пришлось обновить имя токена GitHub, потому что в имени не должно быть GitHub. Однако, после создания новой ветки и ее успешного коммита, он не отправил PR для этой проблемы. Пожалуйста, обновите GitHub action, чтобы автоматически добавлять pull request с комментариями к GitHub action.
Хорошо, с этим я просто собираюсь двигаться дальше. Теперь одна вещь, которую я заметил здесь, это то, что иногда, когда он пытается разобраться в чем-то, связанном с GitHub actions, он продолжает спрашивать Claude. Но на самом деле это не проблема Cloud Code. Это проблема GitHub. Поэтому я просто остановлю это. И я просто знаю это. Поэтому я скажу, что вам не нужно искать документацию по Claude Code. Это функция GitHub actions. Поэтому ищите документацию по GitHub actions, если вам нужна помощь в обновлении GitHub action.
Итак, мы уже сделали то, что нам нужно было сделать с Cloud Code. Что нам нужно здесь, так это дополнительный шаг, когда это успешно, он создает pull request. Это не имеет никакого отношения к Cloud Code и интеграции между GitHub на данный момент. И это как бы, вы правы. Поэтому он просто добавит это.
Теперь, если вам нравится это видео, обязательно поставьте лайк и подпишитесь. Это говорит мне, какой контент вы хотите видеть больше. Теперь одна вещь, которую я знаю, это то, что он должен выдавать этот pull request только в том случае, если он успешен. И есть команда, которую нужно добавить. Убедитесь, что вы добавляете pull request только в том случае, если предыдущий шаг был успешным.
Итак, теперь у него есть "if success". Отлично. Хорошо, отлично. Добавить коммит. И затем я вручную отправлю в main. Итак, я просто говорю ему добавить файл. И я написал комментарий. Посмотрим, закоммитит ли он его. Я имел в виду коммит. Я открою новый терминал, чтобы я мог запустить приложение и одновременно запустить GitHub. Git push origin main.
Хорошо, обратно на GitHub. И теперь здесь у нас есть наш новый обновленный GitHub action прямо здесь. Итак, теперь я вернусь к проблеме. Я просто удалю это на всякий случай, если это вызовет какие-либо проблемы, и мы сделаем это снова. Там мы видим, что Claude снова смотрит на проблему. Мы можем перейти к действиям. Он снова работает. Отлично.
Итак, вы можете видеть, что на этот раз он делает то же самое, за исключением того, что он создаст этот pull request. Хорошо, похоже, он закончил. Мы перейдем обратно на GitHub. Хорошо, у нас есть наш pull request здесь. Мы проверим его. И вот он. Я собираюсь зайти туда. Мой Verselbot также пришел после этого, чтобы переразвернуть исправление. Мы можем посмотреть на измененные файлы. Мы должны увидеть, что он обновил страницу. И похоже, что он этого не сделал. Итак, похоже, у нас здесь небольшая проблема. Что мы должны увидеть здесь, так это фактический pull request для этой конкретной проблемы, которую мы только что закончили здесь.
Итак, если я вернусь к GitHub action, посмотрю. Я думаю, я вижу, что происходит здесь, это то, что он создает pull request, но использует чью-то другую методологию. Итак, здесь Cloud Code допустил ошибку и использовал что-то, чего не должен был. Я не вижу проблемы с pull request. Он фактически не использовал предыдущую ветку, которая была успешно создана на предыдущем шаге. Вместо этого он создал новую ветку и сделал комментарий в файле output.TXT, что было очень странно. Я заметил использование "Я просто скопирую это", что вызывает неожиданное поведение. Пожалуйста, упростите и отправьте стандартный PR для ветки, созданной на предыдущем шаге.
Итак, снова, просто вещи, на которые нужно обращать внимание и быть готовым к ним и тестировать. Хорошо, теперь у нас есть обновленная версия. Я просто вернусь. Я могу сделать это быстрее сам. Git status. Git add it. Commit fix to GitHub action. Git push origin main. Я закрою это и удалю на всякий случай. И у нас есть наш новый код здесь. Вернемся. Вот так. Обратно к GitHub action. Мы вернемся после того, как это будет завершено правильно на этот раз.
Правильно. Итак, теперь он создал pull request. Посмотрите на этот. Измененные файлы. Круто. Итак, теперь он фактически исправляет ошибку в pull request, используя проблему, которую он создал, вместо того, чтобы отклоняться и использовать чье-то другое решение. Это те вещи, о которых вам нужно знать, потому что иногда Claude может делать странные вещи, подобные этому. И если вы видите проблему, по крайней мере, вы должны уметь сказать Cloud Code, что вы видели, и любые аномалии, которые вы можете увидеть, чтобы он мог понять, как исправить это для вас.
Итак, я собираюсь объединить этот pull request в основную ветку. Вернемся сюда. Теперь основная ветка имеет эту новую проблему. Поэтому, если я вернусь в терминал и скажу git pull origin main, он скачает это исправление, и наше приложение автоматически перезапустится. И если я вернусь к нашему приложению, оно снова загрузится. Отлично.
И если не было очевидно, что я только что сделал с этим git pull origin main, так это то, что я скачал исправление, которое мы только что сделали в этом PR. Этот PR вернулся в основную ветку из этой другой ветки. И снова, если вы хотите лучше понять git, обязательно посмотрите основы Git на моем канале. Но мы, по сути, скачали это исправление из Cloud Code обратно в нашу локальную среду, чтобы оно работало успешно.
Хорошо. Теперь я хочу показать вам, как настроить DeepSeek с Cloud Code. Обычно Cloud Code использует свои собственные облачные модели в бэкэнде. Мы просто использовали Sonnet 4.5. Но мы можем использовать DeepSeek с Cloud Code вместо этого. И это в 12 раз дешевле. И я сделал еще одно видео об этом конкретно на моем канале, и я сделал два разных проекта бок о бок. Claude Code с Deepseek и Claude Code с Sonnet 4.5. И результаты были примерно такими же, за исключением того, что Deepseek был в 12 раз быстрее, и для выполнения таких вещей, как автоматическое исправление ошибок, я думаю, это отличный вариант использования DeepSeek.
Итак, я собираюсь использовать эту информацию, чтобы помочь мне изменить наш GitHub action здесь, чтобы использовать DeepSeek вместо этого. И кстати, если вы хотите получить доступ ко всей этой простой в использовании информации, включая получение этого файла GitHub actions, который вы можете добавить в свой репозиторий, чтобы вам не пришлось использовать Cloud Code для его создания, обязательно присоединяйтесь к сообществу Vibe Encoders. У меня есть курс здесь о том, как создать свой собственный SAS, как использовать Cloud Code с MCP, как использовать Git, и у меня не только есть фреймворк SAS с встроенной аутентификацией пользователей и платежами, но я на самом деле показываю, как создать этот фреймворк шаг за шагом, используя Cloud Code, что является отличным введением в то, как кодировать с помощью ИИ.
Хорошо. Итак, я собираюсь перейти к Claude Code. Я хотел бы получить помощь в обновлении раздела Claude Code в GitHub actions, чтобы использовать модель DeepSeek вместо этого. Я уже проверил, что это работает. Нам просто нужно отправить ключ API DeepSeek вместо Anthropic. И нам нужно передать пару дополнительных переменных окружения. Итак, я собираюсь взять это здесь. Вы можете поставить видео на паузу и сделать скриншот. Я собираюсь вставить это сюда. Теперь мне действительно нужно получить рабочий ключ API. У меня есть учетная запись DeepSec. Я собираюсь перейти к своим ключам API. Я собираюсь создать новый ключ. Я собираюсь скопировать этот ключ. Мы поместим его прямо сюда. Есть еще пара переменных, которые мы добавим, потому что это просто помогает DeepSeek лучше работать с Cloud Code. Это некоторые вещи, которые я уже проверил сам.
Итак, чтобы подытожить, добавьте базовый URL, модель, маленькую быструю модель, тайм-аут API и неважный трафик в качестве переменных окружения, а затем обновите GitHub action, чтобы использовать. Я также собираюсь взять это, вместо Anthropic. Итак, мы позволим этому обновиться. Пока это работает, я собираюсь добавить ключ Deepseek в свои секреты и GitHub. Вернемся сюда. Вернемся к настройкам. Секреты, действия. Добавить новый секрет. Это будет ключ API Deep Seek. Мы возьмем его из DeepSeek. Добавить секрет.
Похоже, Cloud Code закончил. Итак, теперь мы передаем ключ API DeepSeek вместо этого. И у нас есть наши новые переменные окружения, которые были важны для использования DeepSeek вместо модели Sonnet от Claude. Я также собираюсь вернуться на нашу страницу. Я собираюсь вернуть ошибку, чтобы у нас было что исправить. Вернемся к нашему терминалу. У нас снова появляется ошибка. Это означает, что наше приложение не загрузится. Вернемся к репозиторию. Сделаем git status. Git add dot. Git commit. Добавлена еще одна ошибка и поддержка Deepseek. Git push origin main. Вернемся на GitHub. И мы можем увидеть наше изменение прямо здесь. Я собираюсь создать новую проблему. Страница не загружается. Я собираюсь взять новую проблему, просто потому, что я мог поместить ее на другую строку, и это может сбить с толку, если я не помещу новую ошибку. Создайте это.
И поэтому мы снова отметим Cloud Code, но Cloud Code будет использовать Deepseek для решения проблемы вместо своего собственного, тем самым делая его в 12 раз дешевле. Итак, мы сделаем комментарий. Мы должны увидеть, как появятся наши маленькие глаза. Вот так. Я собираюсь перейти к действиям. Теперь, когда вы увидите, что это работает на этот раз, мы должны увидеть некоторые признаки того, что мы используем Deepseek вместо Cloud Code. И это займет секунду, но если вы перейдете к DeepSeek здесь и зайдете в использование, это может занять секунду. Говорится, что задержка составляет несколько минут, но вы должны начать видеть это здесь и то, сколько вы на самом деле платите. Но тот факт, что мы видим, что он взаимодействует с чатом DeepSeek прямо здесь в журналах, является хорошим знаком того, что он использует его. И если бы я вернулся сюда к коду и посмотрел на GitHub action здесь, мы можем видеть, что у нас есть новая информация здесь. Он просто использует DeepSeek и ключ Deepseek.
Хорошо. Итак, это было успешно, и он сделал pull request. Мы можем проверить это. Измененные файлы. Удалена ошибка. Итак, снова, мы можем объединить pull request. Подтвердить слияние. А затем мы можем скачать это. И теперь мы можем видеть, что это автоматически перезапустилось, и наше приложение загружается. И мы можем видеть, как эти зарядки начинают поступать сюда в API Deepseek.
Теперь, если вы хотите получить доступ ко всем этим ресурсам, включая эти файлы, такие как GitHub action, чтобы вам не пришлось создавать все это с помощью Cloud Code, а также доступ к этому классу, чтобы вы могли создать свой собственный фреймворк SAS, научиться лучше использовать MCP и Git и создать свой собственный SAS с нашим фреймворком SAS. Заходите в сообщество Vibe Encoders. Это отличная группа предпринимателей, которые работают вместе и помогают друг другу. У нас есть звонки по средам для поддержки и звонок для нетворкинга по пятницам. Я был бы рад видеть вас в сообществе. В любом случае, я надеюсь, вам понравилось это видео, и я увижу вас в следующем.