Как стать автором
Обновить

GitHub Copilot в JetBrains IDEs в РФ

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров19K
GitHub Copilot в JetBrains IDEs в РФ
GitHub Copilot в JetBrains IDEs в РФ

Introduction

В 2022 году в публичный доступ вышел GitHub Copilot – довольно удобный современный инструмент для разработчиков, использующий генеративные языковые модели и код публичных репозиториев GitHub. Нельзя сказать, что многие приняли такую разработку с распростертыми объятьями, но все же это большой вклад в развитие инструментов для программистов и не только. Я знаю, что в компаниях запрещают пользоваться любыми AI инструментами для написания кода, однако дома, для личных проектов, фриланса Copilot – неотъемлемый инструмент.

Вышли в свет и различные интеграции с Copilot в 2023 году. Вскоре после этого его использование в РФ и ряде других стран было ограничено (как и многих других сервисов). Опытным пользователям ПК эти ограничения не показались проблемой, однако я был сильно удивлен, когда узнал, что некоторые из моих знакомых до сих пор не знают, как использовать столь мощный инструмент.

В этой короткой статье поделюсь своим опытом взаимодействия с GitHub Copilot, а главное тем, как его использовать в IDE от JetBrains. Приятного чтения!


Получаем GitHub Copilot

Не буду отнимать хлеб у коллег, поэтому про способы (бесплатного) получения Copilot вы сможете почитать в Интернете, статья не об этом. Скажу только, что я получал доступ с помощью GitHub Student Pack, есть много гайдов о том как это сделать. Обращаю внимание на то, что нужно правильно оформить справку перед отправкой GitHub.

Подробнее о том, как это сделать можно почитать здесь.

Конечно, вы также можете попробовать оплатить подписку самостоятельно. Способ выше актуален только для школьников и студентов, ведь вам нужна справка из ВУЗа/Школы. (Ее ведь очень сложно сделать самому…)


Качаем, настраиваем Tor

Начало работы

Для обхода блокировки будем использовать Tor. Нам нужен только CLI версия, поэтому браузер устанавливать не придется.

Достать CLI Tor можно 2 способами:

  • Найти и установить с помощью вашего package manager (для MacOS это brew)

  • Скачать TorBrowser и в файлах программы найти исполняемый Tor. В Windows можно найти по пути Tor Browser ▸ Browser ▸ TorBrowser ▸ Tor

Для Windows

Если вы на Windows, то можете сами пособирать все файлы: lyrebird, geoip и другие. Либо взять у меня готовый пакет. В целом все они есть в файлах TorBrowser, только вот с obfs4proxy у меня были проблемы.
Я уже собрал все в один архив. Нужно разархивировать и папку Tor поместить в Program Files.

Для MacOS

Для работы obfs в tor нужен PluggableTransport obfs4proxyилиlyrebird. В новых версиях tor актуален именно lyrebird. Его нет в brew, поэтому можно его либо самостоятельно скомпилировать, либо взять из исходников Tor Browser.

Я разместил исходник на GitHub (из браузера). Файл lyrebird нужно скопировать в директорию /usr/local/bin.

Вы также можете использовать obfs4proxy вместо lyrebird. Установить его можно командой:

brew install obfs4proxy

Рекомендую использовать lyrebird, так как это новое решение.


А как настроить?

1. Получаем мосты

  1. На сайте выбираем obfs4 https://bridges.torproject.org/options/

  2. Проходим капчу

  3. Копируем мосты (их два)

2. Вставляем в torrc

Файл torrc – конфигурационный. Там нужно прописать конфигурацию сервиса tor.

Для WIndows

Если использовали мой архив, то файл будет располагаться по пути:

C ▸ Program Files ▸ Tor ▸ torrc

В файл записываем мой шаблон.

Также в этот файл добавляем наши строки мостов. Обратите внимание, что перед obfs4 нужно добавлять слово Bridge для каждой строки конфигурации моста.

Для MacOS

После установки tor через brew, будет создан пример файла конфигурации по пути:

usr ▸ local ▸ etc ▸ tor ▸ torrc.sample

Файл torrc.sample можно переименовать в torrc или создать рядом новый файл с именем torrc. В файле torrc.sample перечислены возможные настройки, может быть полезно для более точной настройки.

В файл записываем мой шаблон.

Также в этот файл добавляем наши строки мостов. Обратите внимание, что перед obfs4 нужно добавлять слово Bridge для каждой строки конфигурации моста.

В файле конфигурации в настройке ClientTransportPlugin указывается плагин obfs4 и путь до lyrebird. Если он не совпадает с реальным путем до исполняемого файла в вашей системе, то нужно его заменить. Путь до lyrebird вернет команда:
which lyrebird

Если вы используете obfs4proxy, то путь соответственно вернет команда:
which obfs4proxy

3. Автозапуск

Нужно настроить автоматический запуск tor при старте системы. Этот пункт можно пропустить, если вы не хотите, чтобы tor запускался автоматически.

Для Windows

Создаем сервис командой:

"C:\Program Files\Tor\tor\tor.exe" —nt-service "-f" "C:\Program Files\Tor\torrc"

Сервис появится в диспетчере задач в разделе Службы. Там можно узнать состояние сервиса и включить автоматический запуск при старте системы.

Службы Windows
Службы Windows

Для MacOS

Создаем сервис командой:

brew services start tor

В настройках переходим в пункт Настройки ▸ Основные ▸ Объекты входа. Включаем пункт рядом с tor.

Объекты входа
Объекты входа

Что можно настроить?

В поле HTTPTunnelPort можно указать порт, который будет проксировать трафик для copilot.

Как проверить работу tor?

Чтобы убедиться в том, что tor сервис запущен, можно посмотреть работу портов на вашем ПК любым удобным способом. Ниже приведены примеры, как это сделать.

Для Windows

В терминале нужно выполнить команду:

netstat -anob | find "9080"

9080 – замените на ваш порт, если указали другой.

Вывод в консоли
Вывод в консоли

Если команда вернула похожий ответ, значит tor запущен. Можно посмотреть статус порта: LISTENING – значит порт прослушивается и можно работать. Последнее число в выводе это PID. По нему в разделе служб можно найти программу, которая занимаем порт (полезно, если tor не запускается, так как другая программа заняла порт).

Далее можно выполнить команду:

http_proxy=http://127.0.0.1:9080  curl -I https://www.google.com/

Мы должны получить успешный ответ HTTP/2 200 и другие данные. Так и произошло – значит, все работает.

Для MacOS

В терминале нужно выполнить команду:

lsof -i -P -n | grep "tor"
Вывод в консоли
Вывод в консоли

В выводе команды получим все порты, занимаемые программой tor. Если ничего не вышло – tor не запустился. Можно увидеть порт, который мы настроили. У меня это вторая строка и порт 9081 (у вас может быть и другой). Можно посмотреть статус порта: LISTENING – значит порт прослушивается и можно работать.

Далее можно выполнить команду:

http_proxy=http://127.0.0.1:9080  curl -I https://www.google.com/

Мы должны получить успешный ответ HTTP/2 200 и другие данные. Так и произошло – значит, все работает.


Подключаем в IDE

1. Конфигурация Proxy

В любой JetBrains IDE заходим в настройки и ищем пункт Proxy. Выставляем настройки как на скриншоте.

Proxy settings
Proxy settings

Host name – только 127.0.0.1 (localhost не работает)

No proxy – необязательно.

Port number – ваш порт из предыдущего пункта.

2. Скачиваем плагин Copilot.

Он пока не будет работать.

3. Сохраняем, перезапускаем.

Входим в аккаунт Copilot и радуемся.

Важные доработки для Android Studio

Если вы работаете в Android Studio, то вероятно вы используете Gradle. Каждый раз при запуске, Studio будет просить добавить конфигурацию прокси для демона Gradle.

Нужно найти свой gradle.properties (Global) файл Gradle системный (именно глобальный). Он будет внизу в списке файлов проекта, если выбрать отображение проекта как Android.

Там нужно добавить следующие строки:

systemProp.http.nonProxyHosts=dl.google.com|repo.maven.apache.org
systemProp.https.nonProxyHosts=dl.google.com|repo.maven.apache.org
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=<ВАШ ПОРТ>
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=<ВАШ ПОРТ>

Делаем это, чтобы не проксировать трафик загрузки зависимостей проекта, какие-то из хостов не работают и Gradle не может найти ресурс для загрузки. Не забывайте перезапускать программу после изменений настроек прокси.


Заключение

Я привел подробную инструкцию по настройке Copilot. Это решение работает у меня уже больше года на маке и ноутбуке с Windows. К преимуществам такого подхода относится то, что нам не нужно прогонять весь трафик устройства через VPN или Proxy, это полностью бесплатно, быстро работает и легко настраивается.

Я не сторонник написания кода вслепую, не использую Copilot для разработки сложных частей проекта. Но это незаменимый инструмент для составления тестов, моковых данных, моделей и других рутинных задач. Используйте его с умом!

Если хотите видеть больше интересных публикаций, подписывайтесь на мой тг канал https://t.me/stakan_live

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Используете GitHub copilot в работе?
15.35% Да, постоянно 👌33
9.3% Иногда приходится ☝20
45.58% Нет, не считаю правильным/нужным 💪98
29.77% Пользуюсь другими AI 🚀64
Проголосовали 215 пользователей. Воздержались 56 пользователей.
Теги:
Хабы:
+6
Комментарии45

Публикации

Истории

Ближайшие события