git push不能从jenkins docker工作

时间:2017-06-20 10:04:44

标签: git docker jenkins

我正在运行Jenkins docker镜像并试图通过GitHub进行git推送。
我使用Git Publisher在PostSteps(执行Shell)和PostBuild操作中进行了git提交 我需要在Jenkins中提供一些特定的身份验证吗? 我无法弄明白。
非常感谢。

错误:

  

无法将分支主控推送到原点   hudson.plugins.git.GitException:命令" git push HEAD:master -f"返回状态码128:   标准输出:   stderr:remote:用户名或密码无效。   致命:认证失败了''       在org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1903)

1 个答案:

答案 0 :(得分:0)

启用双因素身份验证(2FA)后,您在尝试使用git clonegit fetchgit pullgit push时可能会看到类似内容:

$ git push origin master
Username for 'https://github.com': your_user_name
Password for 'https://your_user_name@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'

原因?

来自GitHub Help documentation

  

启用2FA后,您需要输入个人访问令牌,而不是2FA代码和GitHub密码。

     

例如,当您使用命令行上的Git使用带有HTTPS URL的git clonegit fetchgit pullgit push等命令访问存储库时,您必须提供提示输入用户名和密码时,您的GitHub用户名和个人访问令牌。命令行提示符不会指定您在要求输入密码时应输入个人访问令牌。

解决方案:

  1. 生成Personal Access Token。 (关于Creating a personal access token for the command line的详细指南。)
  2. 复制个人访问令牌。
  3. 重新尝试您尝试的命令,并使用个人访问令牌代替您的密码。
  4. 相关问题: https://stackoverflow.com/a/21374369/101662