“ 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的两种方式的更多相关文章

  1. java动态获取WebService的两种方式(复杂参数类型)

    java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_Fligh ...

  2. MyBatis获取参数值的两种方式

    MyBatis获取参数值的两种方式:${}和#{} ${}的本质就是字符串拼接,#{}的本质就是占位符赋值 ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单 ...

  3. Asp.net Web API 返回Json对象的两种方式

    这两种方式都是以HttpResponseMessage的形式返回, 方式一:以字符串的形式 var content = new StringContent("{\"FileName ...

  4. RabbitMQ Consumer获取消息的两种方式(poll,subscribe)解析

    以下转自:http://blog.csdn.net/yangbutao/article/details/10395599 rabbitMQ中consumer通过建立到queue的连接,创建channe ...

  5. HttpClient获取Cookie的两种方式

    转载:http://blog.csdn.net/zhangbinu/article/details/72777620 一.旧版本的HttpClient获取Cookies p.s. 该方式官方已不推荐使 ...

  6. smarty获取变量的两种方式

    从上一篇随笔中,我们知道smarty可以通过assign()的方法注册变量,从而在前段读取变量:我们也可以从配置文件中获取变量,来具体看一下: 1.在configs文件夹中建一个test.conf文件 ...

  7. .net 调用SAP RFC函数获取数据的两种方式

    方式1:使用客户端自带的组件 安装客户端以后,添加引用:SAPFunctionsOCX(.net 的Com列表里一般找不到,需要引用DLL[一般位于以下路径:Program Files\SAP\Fro ...

  8. 获取页面URL两种方式

    以请求http://localhost:8080/doctor/demo?code=1为例 一:用java代码获取 //获取URL中的请求参数.即?后的条件 code=1 String querySt ...

  9. Request获取Session的两种方式

    1.无请求参数 public HttpSession getSession() 获取当前request关联的session,如果当前request没有session,创建一个session. 2.有请 ...

随机推荐

  1. 马哥Linux SysAdmin学习笔记(三)

    CentOS 5和6的启动流程: Linux:kernel+rootfs kernel:进程管理,内存管理,网络管理,驱动程序,文件系统,安全功能 rootfs: glibc 库:函数集合,funct ...

  2. Ansible playbook编写Apache角色

    编写Apache角色:使用源码安装 在files中下载扩展包和安装包 [root@localhost project]# ls roles/httpd/files/ apr-1.6.5.tar.gz ...

  3. shell基础之bus实战(if 练习)

    题目: 一条公交路线共30站,乘客上车需支付1元,之后每超过5站支付0.5元:最好可以实现"余额不足的提醒"和"逃票,漏刷卡的显示". 注意:需下载bc计算器 ...

  4. JavaSE 知识图谱

    JAVA基础语法 DOS命令 JAVA介绍 JDK安装 JAVA环境的搭建 关键字 注释 标识符命名规则(编码规范) 字面值常量 进制转换 基本类型 变量(局部变量.静态变量) 运算符 表达式 控制语 ...

  5. STM32用FreeRTOS时任务优先级和中断优先级说明

    下面对 FreeRTOS 优先级相关的几个重要知识点进行下说明,这些知识点在以后的使用中务必要掌握牢固. FreeRTOS 中任务的最高优先级是通过 FreeRTOSConfig.h 文件中的 co ...

  6. 11.4 iftop:动态显示网络接口流量信息

    iftop是一款实时流量监控工具,可用于监控TCP/IP连接等,必须以root用户的身份运行. 一般最小化安装系统都是没有这个命令的,需要使用yum命令额外安装,而且还要从epel源下载.   ift ...

  7. exit()和_exit()的区别

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/HAHAandHEHE/article/de ...

  8. 解决Maven资源过滤

    <build> <resources> <resource> <directory>src/main/java</directory> &l ...

  9. 四:net core(.NET 6)使用Filter过滤器拦截webapi方法

    Filter的基本用法 代码在最下方 使用filter过滤器,来实现拦截接口信息.咱们先新建一个项目,在原有的webapi上面,选择添加项目,添加一个类库项目: 我起个名字,就叫 Wsk.Core.F ...

  10. 十、.net core(.NET 6)搭建ElasticSearch(ES)系列之Java环境搭建和Node.js环境搭建

    安装java jdk环境:我此处使用的是jdk16版本.下载地址: https://www.oracle.com/java/technologies/javase-jdk16-downloads.ht ...