Git开源工具gitprotocolio、gitquery、Git-secure、Phoneix介绍

以下为你介绍的Git开源工具都可用在Linux系统上:gitprotocolio(Go 编写的 Git 协议解析器)、gitquery(Git 仓库的 SQL 接口)、Git-secure(Git 安全工具)、Phoneix(Git 服务器代理)。

1、gitprotocolio(Go 编写的 Git 协议解析器)

gitprotocolio 是一个使用 Go 语言编写的 Git 协议解析器。

项目主页显示这更像是一个更好地理解协议的实验性项目,而不是谷歌官方维护的产品(即大家通常说的员工花费 20% 时间创建的项目)。

背景:

Git协议在Documentation/technical/pack-protocol.txt中定义,这不是完整的定义。另外,特定于运输的规范Documentation/technical/http-protocol.txt也不完整,启动该项目是为了使这些上游协议规范变得更加准确,为了验证书面语法的准确性,该项目包括一个用Go编写的Git协议解析器,并具有端到端测试套件。

这使得为​​Git客户端编写测试用例变得容易,当前,测试用例是针对规范的Git实现运行的,但是可以扩展为针对JGit等运行。这也使得测试攻击案例变得容易,使用此库,可以通过产生通常不是由理智的Git客户端产生的请求来编写针对Git协议的攻击案例,如git-bomb。协议属性也可以检查,例如,可以编写测试以检查有效的请求/响应的前缀不是有效的请求/响应。此属性可确保客户端不会认为响应已完成就可以处理不完整的响应。

TODOs:

协议语义未定义。

语法比较完整,甚至没有提到语义。一种想法是通过将请求/响应视为修改Git存储库的操作来定义语义,这种观点使得以与编程语言形式语义相同的方式定义形式协议语义成为可能。

定义简单的git-push语义似乎很容易,为浅层克隆存储库定义一个包协商语义似乎很困难。

上游pack-protocol.txt未更新。

创建完整的pack-protocol.txt的最初目的尚未完成,我们可以从一个小的修正开始(例如,某些地方的功能分隔符不是NUL的空格),Git协议和网络传输(HTTPS,SSH,Git线)之间的关系也很值得一提。

未对Bidi-transport进行测试和定义。

Git的双向传输,SSH和Git-wire协议未经此项目测试,协议语法也未定义。大多数语法是相同的,但是有一些细微的差别。Go具有SSH库,因此可以轻松运行测试SSH服务器。

下载地址:https://github.com/google/gitprotocolio

2、gitquery(Git 仓库的 SQL 接口)

基于 Go 的 Git 仓库的 SQL 接口。

用法:

Usage:

gitquery [OPTIONS] <query | shell | version>

Help Options:

-h, --help  Show this help message

Available commands:

query    Execute a SQL query a repository.

shell    Start an interactive session.

version  Show the version information.

例如:

$ cd my_git_repo

$ gitquery query 'SELECT hash, author_email, author_name FROM commits LIMIT 2;' 

SELECT hash, author_email, author_name FROM commits LIMIT 2;

Git开源工具gitprotocolio、gitquery、Git-secure、Phoneix介绍

您可以像通常那样使用交互式shell来查看postgreSQL中的表:

$ gitquery shell

Git开源工具gitprotocolio、gitquery、Git-secure、Phoneix介绍

下载地址:https://github.com/sqle/gitquery

3、Git-secure(Git 安全工具)

Git 存储库加密工具:

git-secure 主要的功能时在用户提交时将用户的代码或者文件使用 AES 加密,然后发布到代码托管平台,同时也支持用户从远程服务器上 clone 已被加密的存储库并从中恢复源码或者文件。

命令列表:

add:Add file contents to the index

clone:Clone a encrypted repository into a new directory

config:config your secure repository

commit:create a commit

diff:show commit changes between commit worktree,etc

init:initialize a secure repository

help:print help information

key:create a aes key

pull:Fetch from and integrate with another repository or a local branch

push:Update remote refs along with associated objects

remote:set remote for secure repositroy

status:Show the working tree status

运行截图:

Git开源工具gitprotocolio、gitquery、Git-secure、Phoneix介绍

系统依赖:

此项目基于 PowerShell 编写,因此,你需要安装 PowerShell 6.0,PowerShell 目前支持 Windows,Linux 和 macOS。

你可以去 Github PowerShell 项目的 Release 页面下载 PowerShell。

使用:

用户需要在码云上创建一个空仓库。

初始化一个空仓库:

git-secure init repo

创建 AES 密钥:

git-secure key

添加文件到暂存区:

git-secure add

创建 commit:

git-secure commit -m "create a new commit"

推送代码:

git-secure push

拉取代码(暂时不支持 fetch):

git-secure pull

配置:

git-secure config aes.key xxxxx

加密:

git-secure 使用 AES 256 对每一个常规文件加密,这里的常规文件是不包括 commit,及 .gitignore .gitattributes,.gitmodules 这些文件。

下载地址:https://gitee.com/oscstudio/git-secure

4、Phoneix(Git 服务器代理)

Phoenix 是 jenkins 的 git 服务器的代理。像 github,gitlab,gogs,oschine git。

有些 git 托管平台中的 webhooks 是不能直接触发jenkins打包的,比如Jenkins要登陆什么的,jenkins插件中心没有对应平台的插件就不能直接填个地址完事。所以写了个转发Git托管平台的webhooks然后直接触发jenkins打包。

Git开源工具gitprotocolio、gitquery、Git-secure、Phoneix介绍

Git开源工具gitprotocolio、gitquery、Git-secure、Phoneix介绍

Git开源工具gitprotocolio、gitquery、Git-secure、Phoneix介绍

下载地址:https://github.com/ystyle/phoneix

注明

以上就是Git开源工具gitprotocolio、gitquery、Git-secure、Phoneix的介绍内容,这些Git开源工具都能使用在Linux操作系统中。

栏目相关文章