Я пытаюсь клонировать только последний коммит, но получаю следующую ошибку в задании jenkins:
+ git config credential.username ****
+ git config user.name jenkins
+ git config user.email jenkins@comp.com
+ git remote add origin https://bitbucket.org/base/my-repo.git
[Pipeline] sh
+ GIT_ASKPASS=true
+ git clone -b master --single-branch https://bitbucket.org/base/my-repo --depth=1 --bare ./last_commit
Cloning into bare repository './last_commit'...
fatal: could not read Username for 'https://bitbucket.org': No such device or address
Это функция, которую я использую в качестве разделяемой библиотеки Jenkins:
def call(url, branch, gitCredentialId) {
try {
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: gitCredentialId, usernameVariable: 'GIT_USERNAME', passwordVariable: 'GIT_PASSWORD']]) {
sh("""
git init
git config credential.username ${env.GIT_USERNAME}
git config user.name \"jenkins\"
git config user.email \"jenkins@comp.com\"
git remote add origin ${url}.git
""")
sh(returnStdout: false, script: """
GIT_ASKPASS=true
git clone -b ${branch} --single-branch ${url} --depth=1 --bare ./last_commit
""")
def email = sh(returnStdout: true, script: """
cd ./last_commit
git log -1 --format='%ae'
""")
return email.trim()
}
} finally {
sh """
git config --unset credential.username
git config --unset credential.helper
"""
}
}
Что я здесь пропустил? Кто-нибудь сталкивался с такой же проблемой?
Все, что я хочу сделать, чтобы получить последнее письмо комитера.
Обратите внимание, что я прочитал этот пост здесь fatal: не удалось прочитать имя пользователя для, такого устройства нет
Хотя это та же ошибка, что и упомянутая, но разница в том, что в этом посте OP сталкивается с ошибкой для уже проверенного кода и пытается нажать, тогда как у меня нет проблем с проверкой кода ( используя git checkout
). Моя проблема в том, что я не могу клонировать репозиторий, и нет ранее существующего источника