如何使用Google登录插件从Jenkins下载构建产物

65次阅读
没有评论

问题描述

在新的Jenkins实例上安装了Google登录插件,希望使用shell脚本(如curl或wget)从服务器上下载构建产物。然而,用户在命令行中无法正确进行身份验证。
用户尝试了以下命令,但都没有成功:

wget --auth-no-challenge --http-user=XXXX --http-password=XXXX https://____/job/_____/lastSuccessfulBuild/artifact/target/ROOT.war
wget --auth-no-challenge --user=XXXX --password=XXXX https://____/job/_____/lastSuccessfulBuild/artifact/target/ROOT.war

无论哪种方式,都返回以下错误:

401 Invalid password/token for user: XXXX

用户还尝试了一个解决方案,但遇到了问题。用户还发现了一个解决方法,但担心这样做会增加安全风险。
用户想知道是否有人有使用这个插件或从OAuth受保护的端点下载的经验。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据用户的回答,他们成功地解决了问题。他们发现,只要使用正确的密码值,他们粘贴的两个wget URL都可以正常工作。在这种情况下,用户需要使用他们的用户API令牌作为密码。用户可以在这个问题的答案中找到如何获取API令牌的说明:https://stackoverflow.com/a/34634247/317951

方案2

如果方案1无法解决问题,请尝试以下方法。
另一种方法是使用curl命令进行身份验证并下载构建产物。以下是一个示例命令:

curl -u <username>:<api_token> -O https://____/job/_____/lastSuccessfulBuild/artifact/target/ROOT.war

在上面的命令中,将<username>替换为您的用户名,将<api_token>替换为您的API令牌。这将使用提供的用户名和API令牌进行身份验证,并将构建产物下载到当前目录。
请注意,您需要将URL中的https://____/job/_____/lastSuccessfulBuild/artifact/target/ROOT.war替换为您实际的构建产物URL。

方案3

如果方案1和方案2都无法解决问题,请尝试以下方法。
如果您无法通过命令行进行身份验证并下载构建产物,您可以尝试使用Jenkins的API来触发构建并获取构建产物。以下是一个示例命令:

curl -X POST -u <username>:<api_token> https://____/job/_____/build

在上面的命令中,将<username>替换为您的用户名,将<api_token>替换为您的API令牌。这将使用提供的用户名和API令牌进行身份验证,并触发一个新的构建。
请注意,您需要将URL中的https://____/job/_____/build替换为您实际的构建触发URL。
一旦构建完成,您可以使用Jenkins的API来获取构建产物。以下是一个示例命令:

curl -u <username>:<api_token> https://____/job/_____/lastSuccessfulBuild/artifact/target/ROOT.war -o ROOT.war

在上面的命令中,将<username>替换为您的用户名,将<api_token>替换为您的API令牌。这将使用提供的用户名和API令牌进行身份验证,并将构建产物下载到名为ROOT.war的文件中。
请注意,您需要将URL中的https://____/job/_____/lastSuccessfulBuild/artifact/target/ROOT.war替换为您实际的构建产物URL,并将ROOT.war替换为您希望保存构建产物的文件名。

方案4

如果方案1、方案2和方案3都无法解决问题,请尝试以下方法。
如果您无法通过命令行进行身份验证并下载构建产物,您可以尝试使用Jenkins的API令牌来进行身份验证。以下是一个示例命令:

curl -H "Authorization: Bearer <api_token>" -O https://____/job/_____/lastSuccessfulBuild/artifact/target/ROOT.war

在上面的命令中,将<api_token>替换为您的API令牌。这将使用提供的API令牌进行身份验证,并将构建产物下载到当前目录。
请注意,您需要将URL中的https://____/job/_____/lastSuccessfulBuild/artifact/target/ROOT.war替换为您实际的构建产物URL。
以上是几种可能的解决方案,您可以根据您的具体情况选择适合您的方法。希望能帮助到您!

正文完