Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。在公司一般用于代码管理;开发用例管理平台时我们选择使用git来管理用例,期间使用了很多git api。接下来我们就来讨论下如何通过git api达到我们的目的


在使用api之前我们需要获取授权,官网提供了三种方式获取Authentication:OAuth2 tokens、Personal access tokens、Session cookie,我们选择第二种private_token方式,这种方式最简单、最容易理解,只需要在http请求时设置header即可,如下

  1. headers.put("private-token", gitUserToken);

下面介绍两种获取方法

一:/session接口方式

  1. public static void main(String[] args) {

  2. System.err.println("private_token:"+getPrivateToken());
  3. }

  4. public static String getPrivateToken(){
  5. //使用接口获取private_token 链接中需要填写登录用户的账号和密码
  6. //为了安全,这种获取方式建议使用postman调用下获取到数据即可,不要写在工程代码中
  7. HttpClientResponse httpClientResponse=httpClient("post","http://you git address:port/api/v4/session?login=loginName&password=loginPasswor","");
  8. if (httpClientResponse != null && "201".equals(httpClientResponse.getStateCode())) {
  9. JSONObject jsonObject =JSONObject.fromObject(httpClientResponse.getResponseBody());
  10. return jsonObject.getString("private_token");
  11. }
  12. return "";
  13. }
  1. 接口返回结果
  2. {
  3. "name": "张三",
  4. "username": "zhangsan",
  5. "id": 415,
  6. "state": "active",
  7. "avatar_url": null,
  8. "web_url": "http://you git address:port/zhangsan",
  9. "created_at": "2020-02-17T02:45:26.594Z",
  10. "is_admin": false,
  11. "bio": "",
  12. "location": "",
  13. "skype": "",
  14. "linkedin": "",
  15. "twitter": "",
  16. "website_url": "",
  17. "organization": "",
  18. "last_sign_in_at": "2021-05-26T03:08:01.605Z",
  19. "confirmed_at": "2020-02-17T02:45:26.595Z",
  20. "email": "zhangsan@tsign.cn",
  21. "theme_id": 2,
  22. "color_scheme_id": 1,
  23. "projects_limit": 10,
  24. "current_sign_in_at": "2021-05-31T03:32:02.041Z",
  25. "identities": [
  26. {
  27. "provider": "ldapmain",
  28. "extern_uid": "uid=25100707-1941530886,ou=418347936,ou=72871007,ou=6617272,ou=1,dc=tsign,dc=cn"
  29. }
  30. ],
  31. "can_create_group": true,
  32. "can_create_project": true,
  33. "two_factor_enabled": false,
  34. "external": false,
  35. "private_token": "-zR8o18f3f3tnL_asdef"
  36. }

二:页面创建

官网英文原文如下:

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. 通过CRM系统实现工作流程自动化

    灵活运用CRM系统所拥有的自动化功能模块,是公司在快速发展和降低成本的关键保障.不管您的公司规模的大小,您企业的工作流程都必须遵照相同的流程反复操作.这种反复的工作是一个效率黑洞,长久以往会导致人力资 ...

  2. FastDFS依赖无法导入

    FastDFS依赖无法导入 fastdfs-client-java 导入爆红 <!-- FastDFS--> <dependency> <groupId>org.c ...

  3. 探索GaussDB(DWS)的过程化SQL语言能力

    摘要:在当前GaussDB(DWS)的能力中主要支持两种过程化SQL语言,即基于PostgreSQL的PL/pgSQL以及基于Oracle的PL/SQL.本篇文章我们通过匿名块,函数,存储过程向大家介 ...

  4. 真正的原生JS数据双向绑定(实时同步)

    真正的原生JS数据双向绑定(实时同步) 接触过vue之后我感觉数据双向绑定实在是太好用了,然后就想着到底是什么原理,今天在简书上看到了一位老师的文章 js实现数据双向绑定 然后写出了我自己的代码 wi ...

  5. [Java] Spring 示例

    (一)IoC/DI 功能 配置解析:将配置文件解析为BeanDefinition结构,便于BeansFactory创建对象 对象创建:BeansFactory 根据配置文件通过反射创建对象,所有类对象 ...

  6. [转载]XStar's Libvirt+KVM部署记录 目录

    XStar's Libvirt+KVM部署记录 目录 Create: 2013-12-11 Update: 2014-01-03 准备工作 KVM网站 http://sourceforge.net/p ...

  7. openstack创建vlan网络并配置网络设备

    1.在管理员-->网络-->创建网络. 2.填写网络信息,这里要划分新的VLAN,注意在物理网络中填写的事VLAN,段ID指的是vlan的id 3.创建的网络. 4.创建子网,在里面修改子 ...

  8. python基础之错误、调试(异常处理)

    在程序运行过程中,总会遇到各种各样的错误. 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的. 有的错误是用户输入造成的,比如让用 ...

  9. MindSpore激活函数总结与测试

    技术背景 激活函数在机器学习的前向网络中担任着非常重要的角色,我们可以认为它是一个决策函数.举个例子说,我们要判断一个输出的数据是猫还是狗,我们所得到的数据是0.01,而我们预设的数据中0代表猫1代表 ...

  10. Docker五分钟搭建Wordpress

    当你看到这篇文章的时候,表明你已经有docker的基础知识了,或者可以看上一篇文章 Docker 入门教程. 传统的使用wordpress搭建网站,意味着你需要搭建以下四个环境: php: apach ...