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. [Django框架之视图层]

    [Django框架之视图层] 视图层 Django视图层, 视图就是Django项目下的views.py文件,它的内部是一系列的函数或者是类,用来专门处理客户端访问请求后处理请求并且返回相应的数据,相 ...

  2. 如何提高CRM系统使用率?

    随着时代的发展和市场的变化,客户在企业的眼中开始变得越来越重要.谁拥有更多的客户,谁就能在激烈的市场竞争中占据一席之地.现在很多企业通过CRM系统转变为了"以客户为中心".但是,许 ...

  3. 小甲鱼零基础入门学习python--课后作业

    [小甲鱼零基础入门学习python--课后作业] 小甲鱼零基础入门学习python--课后作业 本章内容: 1.基础部分的作业 2.函数部分的作业 3.字典.集合.文件部分作业 4.异常 5.Easy ...

  4. shell基础之编译安装nginx

    本节新学知识:if 判断语句 1 #!/bin/bash 2 #检查环境 3 SESTATE=`getenforce` 4 if [ $SESTATE != "Disabled" ...

  5. Java lambda 表达式详解(JDK 8 新特性)

    什么是 lambda 表达式 lambda 表达式(拉姆达表达式)是 JAVA 8 中提供的一种新的特性,它使 Java 也能进行简单的"函数式编程". lambda 表达式的本质 ...

  6. readlink 函数用法 -(转自 JK198310的专栏)

    相关函数: stat, lstat, symlink 表头文件: #include <unistd.h> 定义函数:ssize_t readlink(const char *path, c ...

  7. 手机POS机

    资质查询 http://www.pbc.gov.cn/zhengwugongkai/127924/128041/2951606/1923625/1923629/d6d180ae/index4.html ...

  8. python3 smtplib发送邮件

    使用smtp包发送邮件还依赖email的一些方法 发送邮件主要分为三步: 1,定义邮箱参数:邮箱服务器地址,邮箱用户名,邮箱密码,邮件发送方,邮件接收方,邮件标题,邮件内容 2,配置发送内容 3,实例 ...

  9. python 交换变量值为何不需要中间变量

    python 元组解包unpacking,同一语句中多重赋值 cpython 认为几种变量的交换是比较常见的,提供了专门的优化指令,像[-5,256]预先放到了整数池中一样,

  10. Python3.x 基础练习题100例(91-100)

    练习91: 题目: 时间函数举例1. 程序: if __name__ == '__main__': import time print (time.ctime(time.time())) print ...