获取使用GitHub api和Jira api Authentication的方法
近段时间在搭建我司的用例管理平台,有如下需求:
1、需要根据项目--版本--轮次的形式来管理项目用例,用例统一保存在git工程。
2、执行用例时,如果用例执行失败,可以通过平台在Jira上提bug。
通过调研发现可以使用GitHub api和Jira api,通过http调用的方式来实现,那么获取使用Api的Authentication作为第一步就尤为重要。其实Git作为代码管理工具,Jira作为需求、缺陷等项目与事务跟踪工具,已被大部分公司使用,只是平时我们没有类似上述的需求。下面简述下我如何使用。
一、获取Jira api Authentication
首先:这是jira api地址:https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-rest-api-2-field-fieldKey-option-get 这个文档中 Authentication and authorization章节介绍的获取Authentication 都比较麻烦。
其次:通过搜索我发现另外一个Api介绍文档https://developer.atlassian.com/server/jira/platform/basic-authentication/ 该文档中Security章节中介绍了几种访问api的方式,我使用了Basic Authentication,这种方式相对来说最简单、最容易理解,因为它使用的是自己登录Jira的用户名和密码。下面就说明如何使用
方法一:
英文原文如下:
Most client software for sending requests automatically generate the authorization header when you provide a username and password.
For example, in cURL you can specify a username and password combination with the -u
argument to send a request to a Jira site
意思就是说如果我们提供用户名和密码,大多数用于发送请求的客户端软件会自动生成授权标头
比如:curl -u username:password -X GET -H "Content-Type: application/json" http://localhost:8080/rest/api/2/issue/createmeta 即可调通api了。
这种方式需要明文提供自己的用户名和密码,相对风险比较高。况且如果我们想使用httpClient调用,这种方式也不满足要求
方法二:
英文原文如下:
- Build a string of the form
username:password
. - Encode the string to Base64.
- Supply an authorization header with format
Authorization: Basic {encoded-string}
. Make sure to replace{encoded-string}
with your encoded string from Step 2
意思就是通过Base64加密的方式加密username:password,然后在http请求的header中添加Basic {encoded-string}即可
比如:curl -H "Authorization: Basic {encoded-string}" -X GET -H "Content-Type: application/json" http://localhost:8080/rest/api/2/issue/createmeta 即可调通api了
第三:编写自己调用httpClient的工具,在header中设置Authorization: Basic {encoded-string}即可,就可以随意调用Jira api。
二、获取GitHub api Authentication
首先:git api地址:http://git.51.nb/help/api/README.md。登录公司的git, 点击头像后,选择help,在help页面提供的文档中选择API。
其次:在api首页我们可以看到,官网提供了三种方式获取Authentication:OAuth2 tokens、Personal access tokens、Session cookie。
我们选择第二种方式,同样是因为相对来说最简单、最容易理解。
英文原文如下:
1、Log in to your GitLab account.
2、Go to your Profile settings.
3、Go to Access tokens.
4、Choose a name and optionally an expiry date for the token.
5、Choose the desired scopes.
6、Click on Create personal access token.
7、Save the personal access token somewhere safe. Once you leave or refresh the page, you won't be able to access it again.
意思就是登录公司的git后,在头像--settings--Access tokens 页面,填写name、失效时间以及使用范围,点击创建personal access token。创建成功后,页面会显示新的access token,页面刷新后这个值就不再显示,所以我们要保存在某个地方
比如:curl -H 'private-token: xxxxxxxxxxx' -X GET http://xxxxxx/api/v4/projects/xxxx 即可调通GitHub Api.
第三:编写自己调用httpClient的工具,在header中设置private-token: xxxxxxxxxxx即可,就可以随意调用GitHub Api。
获取使用GitHub api和Jira api Authentication的方法的更多相关文章
- jira以及jira API简单介绍
最近需要预言:是否可以通过jira API实现用例管理,对jira的应用.API.扩展等进行了一定的了解. Jira介绍: jira是目前比较流行的基于Java架构的管理系统(Atlassian公司支 ...
- Using HAProxy as an API Gateway, Part 2 [Authentication]
转自:https://www.haproxy.com/blog/using-haproxy-as-an-api-gateway-part-2-authentication/ HAProxy is a ...
- (四)Jira Api对接:缺陷分析和任务分析
迭代进行期间或者结束后,在我们的测试日报或者测试报告中需要体现缺陷详细情况,甚至大家工作效率情况.本文就讨论下如何通过jira api获取缺陷信息并进行分析,同时获取需求子任务情况来了解测试和开发的工 ...
- (五)Jira Api对接:修改任务状态
项目迭代结束后我们需要把sprint下面的story.task任务状态修改到结束状态,如果手动修改会花费不少时间,本文就介绍如何通过jira api自动修改任务状态,提高工作效率. 一.查看任务工作流 ...
- Web APi之认证(Authentication)两种实现方式后续【三】(十五)
前言 之前一直在找工作中,过程也是令人着实的心塞,最后还是稳定了下来,博客也停止更新快一个月了,学如逆水行舟,不进则退,之前学的东西没怎么用,也忘记了一点,不过至少由于是切身研究,本质以及原理上的脉络 ...
- 【HTML5】使用 JavaScript 来获取电池状态(Battery Status API)
HTML5 规范已经越来越成熟,可以让你访问更多来自设备的信息,其中包括最近提交的 "Battery Status API".如其名称所示,该 API 允许你通过 JavaScri ...
- day71:drf:API接口&Restful API规范&Django Rest Framework&drf中的序列化和反序列化功能
目录 1.web应用模式 2.API接口 3.Restful API规范 4.序列化 5.Django Rest Framework 1.drf的简单介绍 2.drf的特点 3.如何安装drf 4.d ...
- 【quickhybrid】API的分类:短期API、长期API
前言 一切就绪,开始规划API,这里在规划前对API进行了一次分类:短期API.长期API 首先申明下,这个是在实际框架演变过程中自创的一个概念,其它混合框架可能也会有这个概念,但应该是会在原生底层来 ...
- 一些斗鱼TV Web API [Some DouyuTv API]
一些斗鱼TV Web API [Some DouyuTv API] 写在最前 去年TI5前开发了dotaonly.com,网站需要用到各个直播平台API.不像国外网站Twitch那样开放,都有现成 ...
随机推荐
- mysql5.7.26做主从复制配置
一.首先两台服务器安装好mysql数据库环境 参照linux rpm方式安装mysql5.1 https://www.cnblogs.com/sky-cheng/p/10564604.html 二.主 ...
- python_实现选课系统
校园管理系统 角色: 学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 3 ...
- celery源码解读
Celery启动的入口: 文件:Celery/bin/celery.py 看下main函数做了什么事 可以看到主要做了几个事根据-P参数判断是否需要打patch,如果是gevent或者eventlet ...
- 利用cmd运行java程序
在运行以下程序时,要确保正确配置java的环境变量!!! 此处仅仅使用“记事本”来写java程序!!! 1. 新建一个记事本文件,命名为HelloWorld.java 这里需要注意的是,要确保关闭了隐 ...
- Awkward Response AtCoder - 2656 ( 二分+交互题)
Problem Statement This is an interactive task. Snuke has a favorite positive integer, N. You can ask ...
- 连接gitlab
https://www.cnblogs.com/mengyu/p/7761340.html 一.PyCharm配置Git的环境 1.PyCharm 连接Git首先需要本机安装Git软件; 2.PyCh ...
- java——SimpleDateFormat与DateTimeFormatter
https://www.jianshu.com/p/b212afa16f1f SimpleDateFormat不是线程安全的 DateTimeFormatter是线程安全的
- java——HttpClient 代理模式发送Http Https
在setProxy()方法中设置代理IP后可以将url中的域名换成这个代理IP. http很简单,但是https这样会报错. 问题:如何使用代理发送https请求? 客户端发送https请求之前会先向 ...
- 获取当前国家与ip地址
JS获取当前国家示例: <script src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"& ...
- UVa 213 信息解码 (模拟 && 二进制)
题意 :对于下面这个字符串 0,00,01,10,000,001,010,011……. 首先是长度为1的串,然后是长度为2的串,以此类推.不存在全为1的串. 你的任务是编写一个程序.首先输入一个代码头 ...