Невозможно клонировать GIT-репозиторий с помощью Ant Target - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь написать цель Ant для клонирования репозитория git.Следующее - цель Муравья.Здесь ORGANIZATION - это название компании, GROUP - это имя группы, а REPOSITORY - это имя репозитория.

<target name ="clone">
     <sshexec host="github.ORGANIZATION.com"
        username="git"
        keyfile="${user.home}/.ssh/id_rsa"
        passphrase="pujain"
        trust="true"
        command="git clone git@github.ORGANIZATION.com:GROUP/REPOSITORY.git"/>
  </target>

Я получаю следующее исключение:

[sshexec] Вы, похоже, используете ssh для клонирования URL-адреса git: //.
[sshexec] Убедитесь, что ваш параметр конфигурации core.gitProxy и переменная окружения
[sshexec] GIT_PROXY_COMMAND НЕ установлены.

Я могу выполнить ту же команду из cmd.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Правильный URL-адрес SSH (для частного сервера GitLab):

git@github.ORGANIZATION.com:GROUPNAME/REPOSITORY.git
                           ^^^^^^^^^^

Должен быть знак ':' и групповая или личная учетная запись, до Название репо.

Что пытается сделать sshexec taks:

  • подключиться к хосту "git@github.ORGANIZATION.com:REPOSITORY.git" (что не имеет смысла)
  • после подключения к удаленному серверу выполните git clone.

Если вашему сценарию необходимо клонировать репозиторий GitLab, все, что вам нужно, это exec task , а неExec-задача SSH.

<exec executable="git" dir="D:\" failonerror="true">
    <arg line="clone git@github.ORGANIZATION.com:REPOSITORY.git dest" />
</exec>

Но это не сработает с закрытым ключом, защищенным парольной фразой (если только он не загружен в ssh-agent сначала).
Вы бы лучшеотключен с помощью ключа развертывания только для чтения , созданного только для этого использования, без ключевой фразы.

0 голосов
/ 24 сентября 2018

Я не думаю, что это относится к имени хоста?:REPOSITORY.git?

Возможно, это будет работать?

<target name ="clone"> <sshexec host="github.ORGANIZATION.com" username="user" password="pass" passphrase="para" trust="true" command="git clone git@github.ORGANIZATION.com:REPOSITORY.git D:/dest" /> </target>

И просто, чтобы прояснить ситуацию, поэтому вы хотите подключиться к ssh-серверу github.ORGANIZATION.com как пользователь пользователь , а затем выполните команду git clone whatever D:/dest на этом сервере.Это правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...