Использование maven-scm-plugin с git без сохранения пароля в открытом тексте

Мне нужно использовать maven-scm-plugin для экспорта / извлечения (ветка по умолчанию) хранилища на github. Я могу заставить это работать, если я жестко закодирую где-нибудь имя пользователя / пароль, но не могу заставить его использовать ssh-ключи или менеджер паролей локальной файловой системы.

В командной строке я могу сделать "git clone git@github.com:org/repo" или "git clone https://github.com/org/repo ", и он будет завершен без необходимости повторного ввода вручную Имя пользователя / пароль.

В моем плагине у меня может быть connectionUrl быть scm: git: https://github.com/org/repo "и я могу передать"-Dusername=foo -Dpassword=bar". Но тогда где-то мне нужно иметь имя пользователя / пароль (foo/bar) где-нибудь в открытом тексте.

Я видел совет, как поместить его в файл setting.xml, передать их в виде аргументов и поместить их в файл pom. И я нахожу доказательства того, что ssh-соединения поддерживаются. Но я не могу найти фактическое использование ssh-соединения или https-соединения, где у вас где-то нет пароля в виде простого текста. Любой совет?

Я получил следующее для работы (если я передам -Dusername= -Dpassword=):

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.4</version>
<executions>
    <execution>
        <phase>generate-resources</phase>
        <goals>
            <goal>checkout</goal>
        </goals>
        <id>perform-export</id>
        <configuration>
            <!-- Would be happy to get rid of provider -->
            <providerImplementations> 
                <git>jgit</git>
            </providerImplementations>
            <!-- 
                 Want to use ssh, but cannot 
                 <connectionUrl>scm:git:ssh://github.com/org/repo</connectionUrl>
            -->
            <connectionUrl>scm:git:https://github.com/org/repo</connectionUrl>
            <exportDirectory>target</exportDirectory>
        </configuration>
    </execution>
</executions>
<dependencies>
    <dependency>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-provider-jgit</artifactId>
        <version>1.9.4</version>
    </dependency>
</dependencies>

1 ответ

Вы можете поставить пароль на свой ~/.netrc файл:

machine github.com login john.smith password mypass

Другие вопросы по тегам