当前位置: 首页 > 知识库问答 >
问题:

如何使用CURL访问使用Github OAuth的詹金斯api

滕祯
2023-03-14

我有一个使用Github OAuth插件的詹金斯服务器,并在github的“授权应用程序”部分授权,它在我的浏览器上运行良好,只要我通过github认证,我就可以访问詹金斯服务器。

有没有办法使用来自CURL或ruby客户端的oauth凭据/令牌访问jenkins服务器api?

我在中生成了一个令牌https://github.com/settings/applications -

这个令牌可以很好地访问github:

curl-H“授权:令牌CFBF42E6A8A52A1076DD9FCXXXXXXXXX”https://api.github.com/user

但是,该令牌对于jenkins服务器无效:

curl-H"授权:令牌cfbcff42e6a8a52a1076dd9fcxxxxxxxxxxxx"https://jenkins-server/user/restebanez/api/json/\?漂亮\=true

它会生成以下错误:

<html><head><meta http-equiv='refresh' content='1;url=/securityRealm/commenceLogin?from=%2Fuser%2Frestebanez%2Fapi%2Fjson%2F%3Fpretty%3Dtrue'/><script>window.location.replace('/securityRealm/commenceLogin?from=%2Fuser%2Frestebanez%2Fapi%2Fjson%2F%3Fpretty%3Dtrue');</script></head><body style='background-color:white; color:white;'>


    Authentication required
<!--
You are authenticated as: anonymous
Groups that you are in:

                        Permission you need to have (but didn't): hudson.model.Hudson.Read
 ... which is implied by: hudson.security.Permission.GenericRead
 ... which is implied by: hudson.model.Hudson.Administer
-->

</body></html>     

```

jenkins服务器安装了GitHub API插件1.58和GitHub身份验证插件0.19

我可能错过了oauth b/c的一些基础知识。我在谷歌上搜索了一段时间,但没有发现任何东西

共有3个答案

沈飞舟
2023-03-14

您应该使用“基本”而不是“令牌”

例如:

curl -H "Authorization: Basic cfbcff42e6a8a52a1076dd9fcxx" 
https://jenkins-server/user/restebanez/api/json
史经业
2023-03-14

您应该只使用Jenkins API令牌。这是可配置的每个用户。请参见$JENKINS\u URL/me

这将允许您的脚本客户端访问Jenkins,而不管使用何种身份验证策略。

澹台正业
2023-03-14

我不确定您是否了解了这一点,但在尝试了几条路线之后,我最终在Jenkins上使用Github OAuth获得了一个脚本构建。诀窍在于API令牌不是GitHub的令牌,而是Jenkins的令牌。

对于我的设置,我在github上有一个机器用户,我通过该用户的网络正常登录,然后点击右上角的用户名。从那里,我点击了左侧菜单上的“配置”,最后在主内容区域点击了“显示应用编程接口令牌”。

一旦我有了,我就可以跑了:

curl --user <username>:<api_token> https://jenkins-server/user/<username>/api/json/?pretty=true

更多信息。

 类似资料:
  • 问题内容: 我必须使用其api创建/更新jenkins作业,因为我的所有作业都使用其他脚本也使用的参数,并且我试图将这些脚本集中化,因此当我在一个位置进行更改时,更改会反映在所有位置。 当前,如果有人更改了脚本,他们还必须手动编辑jenkins作业的参数。 我看到了用于创建作业的远程API的示例,并且能够成功创建测试作业,但是除了删除并重新创建它之外,我如何才能编辑现有作业(这不是一个选项,因为我

  • 问题内容: 我开始使用jenkins,现在尝试将其配置为使用websvn进行差异和文件视图。我看到一个帖子,说我必须配置multyviews。但我不完全了解它的含义以及在配置后如何使用它。 问题答案: 解决方案是使用jenkins的websvn2插件,该插件支持带参数的url

  • 问题内容: 我刚开始并想将Jenkins集成到我的Ant项目中。但是在配置它时,我找不到任何方法让Jenkins重用已经签出的代码库,而不是下载相对于其工作区根目录的新副本。有没有办法做到这一点 ? 我试图手动指定一个自定义工作区(我的代码库已经签出),然后单击“立即构建”。结果是它清除了我当前签出的代码,说 甚至没有警告。 问题答案: 如果您真的想从文件系统上某个地方的现有签出项进行构建,则不要

  • 问题内容: 我创建了在SVN上具有文件的Jenkins项目(https://repo.xxx.xxx/svn/priv/projectname;证书是自签名的)。我的问题是,詹金斯(Jenkins)对此项目有空的工作空间(仅.svn),并且无法连接到SVN存储库。错误号为: 詹金斯 版 1.521 我在某个地方建立了我应该使用 -Dsvnkit.http.sslProtocols = SSLv3

  • 我安装了Jenkins,下载了Black Duck Hub插件(V4.0.1)。 我遵循了接下来的步骤。去找詹金斯- 我该怎么办?

  • 有没有可能让詹金斯使用真正的浏览器而不是无头浏览器?我正在运行一些用TestNG编写的测试(使用Selenium webdriver)。当我运行testng时。在Eclipse中,浏览器启动并运行测试。但当我使用Jenkins并用maven运行测试时,它不会启动任何浏览器。