摘要

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

这两个凭据绑定是gitSshPrivateKeyGitUserName密码.

实施

类型

特色

地方

这个GitUserName密码绑定在Jenkins中实现必威国际有限公司git插件v4.8.0. 这个gitSshPrivateKey绑定是在拉取请求致詹金斯夫妇必威国际有限公司git插件

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

  2. 弹跳城堡API插件-提供一个API来执行PEM/PKCS#8编码/解码等常见任务,并确保其在Bouncy Castle API版本中的稳定性。

  3. SSH服务器插件-提供API以执行OpenSSH私钥编码和解码等任务。

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

可交付成果

  • 支持通过网络进行git身份验证超文本传输协议协议

    • 使用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私钥绑定(GitsshPrivate Key Binding)

可交付成果

  • 支持通过网络进行git身份验证SSH协议

  • 支持:

    • 私钥格式

      • OpenSSH

      • 保密邮件

      • PKCS#8

    • 加密算法

      • RSA

      • 数字减影

      • 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. 这个GitUserName密码gitSshPrivateKey绑定为不同处理器上不同操作系统环境中的管道和自由式项目用户提供git身份验证支持

  3. 这个GitUserName密码绑定已经发布,可以从git插件v4.8.0及更高版本轻松获得

  4. 这个gitSshPrivateKey绑定提供对OpenSSH格式的支持,这是OpenSSH v7.8及更高版本的默认格式

今后的工作

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

Jenkins类加载器的意外复杂性需要额外的努力和调查,包括必威国际有限公司将依赖项着色到git插件中的实验。我们特意选择了该实验,以避免着色依赖项的复杂性和风险。如果SSH库使用需要着色,那么我们可能需要在git插件中使用maven模块

关于作者
哈希特·乔普拉

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