当前位置: 首页 > 面试题库 >

Jenkins输入管道步骤通过CSRF通过POST填充-如何?

东门翰
2023-03-14
问题内容

我有带有输入步骤的Jenkins管道,我想通过脚本提交此输入(单字符串参数)。到目前为止,我正在尝试使用curl,理想情况下,我将通过Python请求库发送它。这应该是一个简单的POST请求,但是使用CSRF变得棘手。我已经获得Jenkins-
Crumb(在这种情况下,使用curl是在同一台机器和同一bash会话上进行的),但仍然无法发送内容…

我正在发送Jenkins-Crumb:XXX标头,就像在https://wiki.jenkins-
ci.org/display/JENKINS/Remote+access+API中
解释的那样

我的要求看起来像这样:

curl -vvv -X POST --user '${USER}:${API_KEY}' -H "Jenkins-Crumb:${JENKINS_CRUMB}" -d 'json="{"parameter":{"name":"${PARAM_NAME}","value":"asd"},"Jenkins-Crumb":"${JENKINS_CRUMB}"}"' 'http://${JENKINS_URL}/job/${JOB_NAME}/${BUILD_NR}/input/'

我发布的URL与构建日志中链接的URL相同(控制台输出)。


问题答案:

有一种更简单的方法,只需调用proceedEmpty作业的URL:

curl -X POST -H "Jenkins-Crumb:${JENKINS_CRUMB}" http://${JENKINS_URL}/job/${JOB_NAME}/${BUILD_ID}/input/${INPUT_ID}/proceedEmpty

无需传递身体数据。

要中止,请使用:

curl -X POST -H "Jenkins-Crumb:${JENKINS_CRUMB}" http://${JENKINS_URL}/job/${JOB_NAME}/${BUILD_ID}/input/${INPUT_ID}/abort


 类似资料:
  • 我有一系列执行快速检查的阶段。我想完成所有这些,即使有失败。例如: 第二阶段失败,因此默认情况下第三阶段不执行。 通常这将是的工作,但我想在阶段视图中显示它们。在下面的模型中: 构建4显示了通常发生的情况。作业失败,因此不运行

  • 我正在开发一个应用程序与Django后端和Next.js前端。我试图使用提取API将数据从前端发布到后端。我有问题传递一个有效的CSRF令牌在我的POST数据到Django。 我试图通过在POST请求中包含一个X-CSRFToken头并使用Django文档中推荐的JavaScript Cookie库获取其值来实现这一点。 这是我的提取请求: 我从Django那里得到的错误当然是说没有设置CSRF

  • 所以我用这个脚本创建了一个新的管道(直接粘贴到Jenkins,而不是在SCM中): 我运行了它,什么也没有发生,工作没有收到一个新的参数,即使它收到了,我也不明白为什么我可能需要这个。谁能解释一下吗? Update1:我尝试将一个带有属性步骤的虚拟管道放入我的git repo,然后配置一个多分支作业。

  • 问题 你希望你的脚本接受任何用户认为最简单的输入方式。包括将命令行的输出通过管道传递给该脚本、 重定向文件到该脚本,或在命令行中传递一个文件名或文件名列表给该脚本。 解决方案 Python内置的 fileinput 模块让这个变得简单。如果你有一个下面这样的脚本: #!/usr/bin/env python3 import fileinput with fileinput.input() as

  • 问题内容: 我们一直在使用Jenkins进行持续集成。一个典型的构建作业在“源代码管理”部分中指定SVN存储库和凭据,然后在“构建触发器”部分中启用“轮询SCM”,轮询时间表为每10分钟(H / 10 * * ) 。我们已经更新到Jenkins的最新版本,并且正在寻求建立管道版本。典型的管道脚本如下所示: 当手动触发管道作业时,一切运行正常,但是,我们希望每次将新修订签入SVN存储库时都运行该管道

  • 问题内容: 是否可以创建具有可选输入阶段的Jenkins管道? 以下代码段未实现此目标。 预期行为 该阶段(以及输入提示)仅应针对特定分支运行。 实际行为 此阶段适用于所有分支。使用输入步骤时,将忽略when过滤器。 问题答案: 过滤器不会被忽略,它只是在输入步骤之后进行评估。在您的示例中,将始终询问您是否进行部署,并且如果您不在QA分支上,则什么也不会发生。 现在您可以问为什么詹金斯不首先评估“