Проверка подлинности Github: как использовать Github как репозиторий Maven при закрытии репо

Я пытаюсь хранить некоторые из наших частных артефактов в Github и хотел бы получить к ним доступ, как если бы они были частью репозитория Maven. Есть много страниц, которые объясняют, как создать публичный репозиторий Maven в Github: вы просто помещаете артефакты в правильную структуру каталогов в свой проект, а затем обращаетесь к ним с использованием "необработанного" URL-адреса:

<repositories>
  <repository>
    <id>myrepo.myname.github.com</id>
    <url>https://github.com/myname/myproject/raw/master/repositories/releases/</url>
  </repository>
</repositories>   

До сих пор так хорошо. Теперь проблема в том, что я не могу понять, как получить доступ к репо, если он частный. Я добавил имя пользователя и пароль в свой файл settings.xml, но он не работает:

<servers>
    <server>
      <id>myrepo.myname.github.com</id>
      <username>myusername</username>
      <password>mypassword</password>
    </server>
 </servers>

Какой трюк?

Ответ 1

Вопрос теперь спорный. Github исключил загрузки. У них больше нет бинарных файлов. Вероятно, из-за такого рода злоупотреблений, которые я предложил...

Ответ 2

Я тоже этого не делал. Но github допускает проверку подлинности ssh/key, которая может работать?

<servers>
    <server>
        <username/>
        <password/>
        <privateKey/>
        <passphrase/>
        <filePermissions/>
        <directoryPermissions/>
        <configuration/>
        <id/>
    </server>
</servers>

В GitHub вы можете добавить ключ (по крайней мере, похоже, если это возможно) в этот репозиторий (репозиторий → Admin → Deploy Keys): https://help.github.com/articles/managing-deploy-keys

Я использовал ssh для развертывания артефактов на сервере linux несколько лет назад, прежде чем мы установили прокси-сервер репозитория. Это было немного сложно настроить на клиенте (доверенные ключи и т.д.), Но это сработало хорошо. Я помню, что вам нужно было вручную выполнить mvn deploy вручную, чтобы добавить серверный ключ/отпечаток пальца локально, прежде чем это может быть сделано автоматически с помощью script или CI-сервера.