(先导)Git Api对接:获取private_token的两种方式
“ Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。在公司一般用于代码管理;开发用例管理平台时我们选择使用git来管理用例,期间使用了很多git api。接下来我们就来讨论下如何通过git api达到我们的目的”
在使用api之前我们需要获取授权,官网提供了三种方式获取Authentication:OAuth2 tokens、Personal access tokens、Session cookie,我们选择第二种private_token方式,这种方式最简单、最容易理解,只需要在http请求时设置header即可,如下
headers.put("private-token", gitUserToken);
下面介绍两种获取方法
一:/session接口方式
public static void main(String[] args) {
System.err.println("private_token:"+getPrivateToken());
}
public static String getPrivateToken(){
//使用接口获取private_token 链接中需要填写登录用户的账号和密码
//为了安全,这种获取方式建议使用postman调用下获取到数据即可,不要写在工程代码中
HttpClientResponse httpClientResponse=httpClient("post","http://you git address:port/api/v4/session?login=loginName&password=loginPasswor","");
if (httpClientResponse != null && "201".equals(httpClientResponse.getStateCode())) {
JSONObject jsonObject =JSONObject.fromObject(httpClientResponse.getResponseBody());
return jsonObject.getString("private_token");
}
return "";
}
接口返回结果
{
"name": "张三",
"username": "zhangsan",
"id": 415,
"state": "active",
"avatar_url": null,
"web_url": "http://you git address:port/zhangsan",
"created_at": "2020-02-17T02:45:26.594Z",
"is_admin": false,
"bio": "",
"location": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": "",
"last_sign_in_at": "2021-05-26T03:08:01.605Z",
"confirmed_at": "2020-02-17T02:45:26.595Z",
"email": "zhangsan@tsign.cn",
"theme_id": 2,
"color_scheme_id": 1,
"projects_limit": 10,
"current_sign_in_at": "2021-05-31T03:32:02.041Z",
"identities": [
{
"provider": "ldapmain",
"extern_uid": "uid=25100707-1941530886,ou=418347936,ou=72871007,ou=6617272,ou=1,dc=tsign,dc=cn"
}
],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": false,
"external": false,
"private_token": "-zR8o18f3f3tnL_asdef"
}
二:页面创建
官网英文原文如下:
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,这个就是我们需要的值,记住一定要保存下来,否则刷新页面后不再显示。当然也可以删除重新生成


更多文章请关注公众号

(先导)Git Api对接:获取private_token的两种方式的更多相关文章
- java动态获取WebService的两种方式(复杂参数类型)
java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_Fligh ...
- MyBatis获取参数值的两种方式
MyBatis获取参数值的两种方式:${}和#{} ${}的本质就是字符串拼接,#{}的本质就是占位符赋值 ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单 ...
- Asp.net Web API 返回Json对象的两种方式
这两种方式都是以HttpResponseMessage的形式返回, 方式一:以字符串的形式 var content = new StringContent("{\"FileName ...
- RabbitMQ Consumer获取消息的两种方式(poll,subscribe)解析
以下转自:http://blog.csdn.net/yangbutao/article/details/10395599 rabbitMQ中consumer通过建立到queue的连接,创建channe ...
- HttpClient获取Cookie的两种方式
转载:http://blog.csdn.net/zhangbinu/article/details/72777620 一.旧版本的HttpClient获取Cookies p.s. 该方式官方已不推荐使 ...
- smarty获取变量的两种方式
从上一篇随笔中,我们知道smarty可以通过assign()的方法注册变量,从而在前段读取变量:我们也可以从配置文件中获取变量,来具体看一下: 1.在configs文件夹中建一个test.conf文件 ...
- .net 调用SAP RFC函数获取数据的两种方式
方式1:使用客户端自带的组件 安装客户端以后,添加引用:SAPFunctionsOCX(.net 的Com列表里一般找不到,需要引用DLL[一般位于以下路径:Program Files\SAP\Fro ...
- 获取页面URL两种方式
以请求http://localhost:8080/doctor/demo?code=1为例 一:用java代码获取 //获取URL中的请求参数.即?后的条件 code=1 String querySt ...
- Request获取Session的两种方式
1.无请求参数 public HttpSession getSession() 获取当前request关联的session,如果当前request没有session,创建一个session. 2.有请 ...
随机推荐
- 老vue项目webpack3升级到webpack5全过程记录(一)
背景 19年新建的vue项目,使用的是webpack3,随着项目的积累,组件的增多导致本地构建,线上打包等操作速度极慢,非常影响开发效率和部署效率,基于此问题,本次对webpack及相关插件进行了优化 ...
- [刷题] 349 Intersection of Two Arrays
查找问题 查找有无(只有键) 元素'a'是否存在 set(集合) 查找对应关系(键值对应) 元素'a'出现了几次 map(字典) set和map的底层实现是红黑树 常见操作 insert() find ...
- 【转载】使用rdp协议访问远程Linux桌面
使用rdp协议访问远程Linux桌面 2017年03月31日 16:23:49 太阳之影 阅读数:2169 一般情况下,如果需要登陆远程Linux系统,我们会使用ssh/telnet来完成,如果需 ...
- Spark SQL 之 RDD、DataFrame 和 Dataset 如何选择
引言 Apache Spark 2.2 以及以上版本提供的三种 API - RDD.DataFrame 和 Dataset,它们都可以实现很多相同的数据处理,它们之间的性能差异如何,在什么情况下该选用 ...
- go, iris , nuxt, 服务端渲染等技术在helloworld开发者社区中的应用与实践
大家好,helloworld.net 上线已经有近半年的时间了,转眼过的好快,在这半年的时间里,迭代了近10多个版本,优化了很多的体验,交互上的不足之处,同时也上线了我们的安卓 app, 苹果的因为还 ...
- 字符串算法(string_algorithm)
format 作用 格式化输出对象,可以不改变流输出状态实现类似于printf()的输出 头文件 #include <boost/format.hpp> using namespace b ...
- Go语言中的单例模式
Go语言中的单例模式 在过去的几年中,Go语言的发展是惊人的,并且吸引了很多由其他语言(Python.PHP.Ruby)转向Go语言的跨语言学习者. Go语言太容易实现并发了,以至于它在很多地方被不正 ...
- Step By Step(Lua表达式和语句)
Step By Step(Lua表达式和语句) 一.表达式: 1. 算术操作符: Lua支持常规算术操作符有:二元的"+"."-"."*& ...
- openresty 学习笔记小结:综合应用实例
openresty 学习笔记小结:综合应用实例 这个综合实验实现的功能其实很简单,用户访问一个页面,显示一个默认页面.输入参数(post或者get都可以),如果参数在数据库查询得到并满足一定条件,根据 ...
- FinFET与2nm晶圆工艺壁垒
FinFET与2nm晶圆工艺壁垒 谈到半导体工艺尺寸的时候,通常对于下面的一串数字耳熟能详:3um.2um.1.5um.1um.0.8um.0.5um.0.35um.0.25um.0.18um.0.1 ...