摘要

该项目实现了两个新的凭证绑定,使用命令行git在Jenkins管道和freestyle作业中执行身份验证操作。必威国际有限公司

这两个凭据绑定是gitSshPrivateKeygitUsernamePassword

实现

类型

功能

地方

gitUsernamePassword绑定在Jenkins中实现必威国际有限公司git插件v4.8.0.的gitSshPrivateKey绑定是在把请求詹金斯的必威国际有限公司git插件

依赖关系
  1. 凭证绑定插件-它用于绑定特定的Git环境变量和shell脚本/命令,这些脚本/命令代表用户执行Git身份验证,而不与命令行交互。

  2. Bouncy Castle API插件-提供一个API来完成常见的任务,如PEM/PKCS#8编码/解码,并确保其在Bouncy Castle API版本中的稳定性。

  3. SSH服务器插件—提供一个API来执行OpenSSH私钥编码和解码等任务。

阶段1:Git用户名密码绑定(gitUsernamePassword)

可交付成果

  • 支持git认证通过HTTP协议

    • 使用GIT_ASKPASS环境变量,为命令行git提供用户凭据

  • 支持不同的

    • 操作系统环境: CentOS 7、CentOS 8、Debian 9、Debian 10、FreeBSD 12、OpenBSD 6.9、openSUSE 15.2、Ubuntu 18.04、Ubuntu 20.04、Ubuntu 21.04和Windows 10。

    • 处理器: amd64、arm32、arm64和s390x。

  • 仅支持命令行git的身份验证,而不是JGit或JGit Apache。

    • 检查特定的git版本

    • 根据操作系统类型设置git特定的环境变量

  • 自动化测试覆盖率超过90%

阶段2:Git SSH私钥绑定(gitSshPrivateKey)

可交付成果

  • 支持git身份验证SSH协议

  • 支持:

    • 私钥的格式

      • OpenSSH

      • PEM

      • PKCS # 8

    • 加密算法

      • RSA

      • DSA

      • ECDSA

      • ED25519

    • 操作系统环境: CentOS 7、CentOS 8、Debian 9、Debian 10、FreeBSD 12、OpenBSD 6.9、openSUSE 15.3、Ubuntu 18.04、Ubuntu 20.04、Ubuntu 21.04和Windows 10。

    • 处理器: amd64、arm32、arm64和s390x。

  • 仅支持命令行git的身份验证,而不是JGit或JGit Apache。

  • 根据最小的git版本使用git特定的环境变量

    • GIT\u SSH\u命令—如果版本大于2.3,提供ssh命令,包括必要的选项。

    • SSH_ASKPASS—如果版本小于2.3,则会附加一个可执行脚本。

    • 根据操作系统类型设置变量

成就

  1. 通过git插件可以获得的git凭据绑定可以为用户轻松地自动化git身份验证过程

  2. gitUsernamePasswordgitSshPrivateKey绑定为不同操作系统环境中不同处理器上的Pipeline和Freestyle Project用户提供了git身份验证支持

  3. gitUsernamePassword绑定已经发布,可以从git插件v4.8.0或更高版本中使用

  4. gitSshPrivateKeybinding提供了对OpenSSH格式的支持,这是OpenSSH v7.8及以上版本的默认格式

未来的工作

  • SSH私钥绑定拉请求合并和释放

意想不到的并发症詹金斯类装入器所需的额外的努力和调查,包括一必威国际有限公司个实验阴影向git插件依赖我们故意选择避免并发症和阴影依赖的风险如果SSH库使用需要阴影,那么我们可能需要使用maven模块在git插件

关于作者
Harshit乔普拉

Harshit Chopra是来自印度的开源爱好者。