首页 > 其他分享 >Gitea API 使用指南

Gitea API 使用指南

时间:2023-02-15 22:44:23浏览次数:46  
标签:... 令牌 Gitea authentication token API 使用指南

最近重新研究了下Git服务器Gitea的使用,完成了从Gitlab仓库迁移到Gitea的运维工作,对于这两个Git服务器的API使用有了初步的了解。在使用的过程中发现网络上的资料相对较少,而且内容介绍还不细致全面,下面将Gitea API使用中遇到的问题和感受记录如下。

使用Gitea API可以完成对仓库信息的查看和统计,通过程序可以完成一些手工重复性的工作。Gitea服务器运行后提供有关API的Swagger文档。默认的地址为:http://localhost:3000/api/swagger

Gitea API需要授权用户才能访问,我主要使用了网页登录的基本权限控制方式(HTTP basic authentication)和发布令牌(Token)的方式。个人认为HTTP basic authentication 比较易用一些,使用Token需要用户在配置中设置私人令牌,而且只在创建时显示令牌内容容易遗忘,重新创建令牌会增加额外的工作,而且程序也必须进行相应的修改。基本的权限控制方式只要提供用户名和密码,一般创建之后不会发生变化,但是有安全性问题。

开启/配置 API 访问

通常情况下, ENABLE_SWAGGER 默认开启。并且参数 MAX_RESPONSE_ITEMS 默认为 50。您可以从 Config Cheat Sheet 中获取更多配置相关信息。

通过 API 认证

Gitea 支持以下几种 API 认证方式:

  • HTTP basic authentication 方式
  • 通过指定 token=... URL 查询参数方式
  • 通过指定 access_token=... URL 查询参数方式
  • 通过指定 Authorization: token ... HTTP header 方式

以上提及的认证方法接受相同的 apiKey token 类型,您可以在编码时通过查阅代码更好地理解这一点。 Gitea 调用解析查询参数以及头部信息来获取 token 的代码可以在 modules/auth/auth.go 中找到。

您可以通过您的 gitea web 界面来创建 apiKey token: Settings | Applications | Generate New Token.

关于 Authorization: header

由于一些历史原因,Gitea 需要在 header 的 apiKey token 里引入前缀 token,类似于如下形式:

Authorization: token 65eaa9c8ef52460d22a93307fe0aee76289dc675
以 curl 命令为例,它会以如下形式携带在请求中:

curl "http://localhost:4000/api/v1/repos/test1/test1/issues" \
-H "accept: application/json" \
-H "Authorization: token 65eaa9c8ef52460d22a93307fe0aee76289dc675" \
-H "Content-Type: application/json" -d "{ \"body\": \"testing\", \"title\": \"test 20\"}" -i
正如上例所示,您也可以在 GET 请求中使用同一个 token 并以 token= 的查询参数形式携带 token 来进行认证。

通过 API 列出您发布的令牌

/users/:name/tokens 是一个特殊的接口,需要您使用 basic authentication 进行认证,具体原因在 issue 中 #3842 有所提及,使用方法如下所示:

使用 Basic authentication 认证

$ curl --url https://yourusername:[email protected]/api/v1/users/yourusername/tokens[{"name":"test","sha1":"..."},{"name":"dev","sha1":"..."}]

参考资料:

https://docs.gitea.io/zh-cn/api-usage/  Gitea API 使用指南

标签:...,令牌,Gitea,authentication,token,API,使用指南
From: https://www.cnblogs.com/xupeixuan/p/17125039.html

相关文章

  • 支付API相关
     微信支付API:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_1.shtml  微信支付普通商户与AppID账号关联管理第一步:商户登录微信支付商户平台【pay......
  • Java常用类的一些基础API的使用
    数字相关类、日期时间API、系统相关类、数组工具类及自然排序和定制排序的介绍Author:MsuenbDate:2023-02-15数字相关类Math类java.lang.Math类包含用于执行基......
  • Unreal 蓝图Compile常用API
    用途在蓝图中点击Compile的时候,想做一些事,比如,想自定义逻辑检验当前蓝图逻辑甚至子蓝图是否有异常数据,如果有则返回Compile失败。点击Compile的时候,想自定义一些逻辑,比......
  • wagger也不好用了!API文档还得是Apipost
    在项目开发测试中,接口文档是贯穿始终的。前后端开发需要在开发前期进行接口定义并形成文档,QA在功能测试和接口测试的环节也需要依赖于这些接口文档进行测试。接口文档往往......
  • 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    .net6之后,不会随项目生成packages文件夹,将项目拷贝到无联网的电脑上用VS打开时,会出现nuget还原失败的情况,只需要把原电脑中的用户文件夹下的.nuget文件夹拷贝过去,放到对应......
  • .net core 微服务之API网关 (Ocelot)
    网关为什么要使用网关1、聚合微服务增多,导致客户端不好维护2、聚合微服务进行集群​    2.1增加和修改聚合微服务集群,都要修改客户端,导致客户端不稳定​  ......
  • Ignite系列值7-api方式如何设置默认值
    问题1:Ignite中需要添加默认值,前端未传值的情况下,在Ignite内存数据库中以及异步落库的数据库中都需要有对应的默认值。结论:目前无法通过自定义注解方式设置默认值原因:现......
  • .Net6 WebApi中集成FluentValidation.AspNetCore的用法
    一、首先在nuget管理器中添加FluentValidation.AspNetCore包 二、添加验证类并继承AbstractValidator<T>,T为原始参数类,在验证类的构造函数中添加验证内容  三、......
  • Kubernetes架构设计Concepts之理解Kubernetes API之理解Kubernetes对象
     首先我说下为什么去翻译这些文章,当然也有一些不少文章是翻译的,但是没有对照,或者是全中文的,这个时候你就不好判断理解,特别是比如:从代码角度和运维角度,代码角度呢,我们看到......
  • 在使用Gitlab API获取仓库中的项目的几点说明
    1、不能获取仓库中的全部项目出于性能考虑Gitlab不能一次性获得仓库中的全部项目,GitlabAPI默认做了分页处理,如果未提交分页参数,会默认只显示20条。2、用于分页显示的两......