Gitlab跨仓库跨分支搜索工具

3,705 阅读10分钟

0、前注

以下大量内容,由我写完后,再经过chatGPT优化改写。

chatGPT版本:gpt-4

1、场景描述

1.1、chatGPT版

在一个遥远的星球上,名为“项目大地”的国度,有一群热血青年——编程师们,为了实现国家繁荣昌盛,他们共同承担着建设一个巨大的编程体系的任务。

这个国度中,有一个问题困扰着所有的编程师们:如何在需要更改一个字段名、接口URL地址,或维护一个公共函数时,确保【不漏一个】地找到每一个需要变更的内容。

在理想情况下,如果项目简单小巧,如同村庄里的小杂货店,那么编程师们可以借助神奇的IDE工具简单解决问题。而如果项目管理水平高超,就像国度中心城市的大型商场,那么相关的内容都被统一管理,编程师们只需更改公共依赖即可。

然而,现实却总是残酷的。在项目大地国度,项目管理水平很低,就像那些失去统治者的城市,失序而混乱。在这些项目中,有数十名编程师,他们需要处理多个项目,修改的内容涉及几个至十几个代码仓库,每个仓库又有若干个分支。这些仓库、分支如同失控的城镇,无法分辨出哪一个正在开发,哪一个正在维护。

有一天,一个巨大的改动来临了。编程师们努力寻找需要更改的内容,一丝不苟地修改,试图将改动传达到每个角落。可惜,他们的努力终究没有得到完美的回报。上线后,一个线上bug突然出现,引发了混乱。

编程师们备受指责,不仅当年的绩效受到影响,还有些人被以此为借口裁员。面对2023年糟糕的就业形势,他们的前途变得愈发黯淡。

在这个充满挑战的国度,编程师们将如何度过难关?他们能否找到解决问题的方法,让项目大地重回昌盛?这一切都有待我们继续关注……

1.2、人话版

在实际业务开发场景中,我们常常会遇见一个问题:

假如我们需要变更一个字段名/接口url地址,又或者要维护一个公共函数,那么我们怎么确保自己能
【不漏一个】
地找到每一个要变更的内容。

理想情况一:

假设项目比较简单比较小,例如处于某一个项目之中,我们可以通过IDE提供的功能,较为简单解决他。

理想情况二:

项目管理水平高超,该被统一管理的都被统一封装并被各个项目引入,因此我们只需要更改公共依赖即可。

现实情况:

项目管理水平低下。

有数个甚至数十个开发人员,要改动的内容涉及到几个至十几个代码仓库之中,同时,每个代码仓库又有若干个并行开发的分支。

这些仓库、分支,不知道谁在开发谁在维护。

我们努力的更改了每一个找到的内容,但很不幸,最终还是漏掉了一些,上线后出现了线上bug。

于是,相关人员被复盘处理,当年绩效完蛋,甚至被以此为借口而裁员。再叠加2023年这糟糕的就业情况,然后……

1.3、点评

说实话,似乎……比我……写的……好很多?完蛋了,博主要失业了

2、功能描述

2.1、chatGPT版

欢迎来到本工具的Github源码仓库:git-tools,本工具拥有强大的核心功能,旨在简化您的查询需求。

🌟 核心功能: 配置完成后,本工具能自动查询目标字符串,精确到Gitlab中某个仓库、某个分支、某个文件、特定行数以及具体内容,并输出详细日志。

🚀 功能概览:

  1. 支持Gitlab群组搜索:只需配置群组ID,即可自动搜索该群组下的所有仓库;
  2. 灵活的搜索引擎:可选择Python或Go,Python为默认引擎;
  3. 指定群组ID:输入群组ID,即可搜索对应群组下的所有仓库;
  4. 代码仓库过滤:基于仓库名规则匹配,可筛选符合条件的仓库。支持全部仓库、仓库名关键词匹配以及仓库名正则匹配;
  5. 分支排序过滤:根据规则筛选分支。支持全部分支、分支名正则匹配(或作为关键词匹配使用)、按最后提交时间排序;
  6. 分支处理数限制:当分支过多时,可设置仅处理前N个分支;
  7. 分支最后一次提交时间限制:仅处理最近N天内有提交记录的分支,超出范围的分支将被忽略;
  8. 被搜索文件过滤:按文件名规则筛选待搜索文件。支持所有文件、指定文件名、文件名正则匹配以及文件后缀名匹配等;

🌟 附加特点:

  1. 配置说明清晰简洁;
  2. 全部代码已开源,确保安全可靠;
  3. 功能持续完善中,敬请期待更多功能;

2.2、人话版

先放上本工具 Github 源码地址:
git-tools

核心功能:

在简单配置后,将自动查询目标字符串,位于 Gitlab 某个仓库->某个分支->某个文件->
第几行->该行具体内容,并输出日志。

具体功能描述:

  1. 支持Gitlab群组搜索:配置群组ID后,自动搜索该群组下每一个仓库;
  2. 搜索引擎:支持 Python 或者 Go,默认是Python
  3. 指定群组ID:给出群组ID后,搜索该群组下每一个仓库;
  4. 代码仓库过滤:允许只处理符合规则的代码仓库,以仓库名为规则进行匹配。支持所有仓库、仓库名关键词匹配、仓库名正则匹配;
  5. 分支排序过滤:允许只处理符合规则的分支。支持全部分支、分支名正则匹配(也可以只当做关键词匹配使用),最后提交时间排序;
  6. 分支处理数限制:当分支比较多的时候,允许只处理前 N 个分支;
  7. 分支最后一次提交时间限制:允许只处理在最近 N 天内提交过的分支,超出分支将被忽略;
  8. 被搜索文件过滤:允许只搜索文件名符合规则的文件。支持所有文件、指定名称的文件、文件名正则匹配、文件后缀名匹配等;

其他:

  1. 简单详细的配置说明;
  2. 所有代码都已开源,安全可靠;
  3. 功能不断完善中;

2.3、点评

调整了一下次序,加了几个emoji,差不多差不多

3、计划中的新增功能

3.1、chatGPT版

敲响新功能的钟声!我们为您准备了以下诱人的功能,尽情期待吧!🎉

  1. 即将上线:支持单项目搜索,让您轻松找到心仪的项目(4.6更新,已支持);
  2. 即将上线:支持多项目搜索,一次满足您探索的好奇心;
  3. 未来计划:本地所有仓库搜索,智能根据本地仓库探索其他分支,让您无处不在;
  4. 期待开发:支持更多文件类型搜索(如Word、Excel等),不再局限于纯文本文件;

💬 我们热切期待您的宝贵意见与需求!一起让这个工具变得更加强大吧!

为了实现我7777关注者的梦想,如果您觉得好用,请点赞、评论、关注以示支持!感谢有您~~~🥳

若您渴望加速更新、丰富功能、解耦功能、尝试GUI界面或报告bug,请给我们点赞和star支持,然后在评论区留言,我们将不胜感激!🙏

请点击 git-tools 一起加入我们的探索之旅!

Github stars

3.2、人话版

  1. 支持单项目搜索:已支持;
  2. 支持多项目搜索:soon;
  3. 本地所有仓库搜索,并且自动根据本地仓库搜索其他分支:later;
  4. 支持更多类型的文件搜索(例如word、excel等),而不只是文本类型文件;

欢迎指出问题、提出更多需求。

我正在努力凑 7777 关注者,如果好用,请点赞、评论、关注支持~~~

如果想催更/丰富功能/解耦功能/gui界面/提出bug,请个点赞和star支持,然后在评论区提出,谢谢。

git-tools

Github stars

3.3、评价

我不承认他比我写的好啊啊啊啊啊啊啊

4. 创作总结

本工具的创造起因源于某个同事提出,有个接口要废弃了,要换成一个新的接口,希望其他同事排查是否有项目在使用这个接口,如果有则更换为新的接口。

由于前端业务复杂,接口比较多,二十来位前端同学无论是能力还是主观能动性,都参差不齐。根据我一贯的习惯,但凡是依赖于个人主观能动性的,都不靠谱,所以突发奇想,看是否能用chatGPT实现此类功能。

于是向许愿机提出了这个要求,而许愿机也如我期望的给了我代码。不过实际上,前几版代码都不可用,会报各种奇怪的bug。

不过,好在也可以将这些报错信息直接发给chatGPT,他会根据这些bug,指出问题所在,并提出解决方案,完善他给的代码。

在经过多次修复后,一段能实现功能,但面向过程的代码便写了出来。

在解决问题之后,我突发奇想,以我长期写代码的经验,我能否将这段代码封装成一个工具呢?由于我自己虽然会写python,但写的并不多,如果是以前,那么我需要查询大量功能的api的写法,例如:

  1. python如何调用yml;
  2. python如何处理打印不同日志;
  3. 如何在写日志之前,先清理旧的日志;
  4. 如何用go来实现在文件里查询字符串的功能,以提高效率;
  5. 如何将go代码打包为python可调用的版本;
  6. python如何引用go代码;
  7. 如何用python处理excel;
  8. 如何处理一些奇怪的报错信息,比如调用gitlab库时,遇见了一些报错提示;
  9. 以及给代码添加上注释

这些在实际工作中,在不熟悉的情况下,都是相当耗费时间的。但是在chatGPT的辅助下,基本都可以通过简单的描述后,由chatGPT来解决。

总的来说,chatGPT适合解决各种非业务性问题,非常强大。

4.1 补

问:

如果我希望别人给我多多点赞、评论,以及给我的github项目点star,我该如何去写这段话?

chatGPT说:

亲爱的朋友们,我真诚地邀请您们在使用我的作品后,与我分享您的想法和反馈。您的每一次点赞、评论都对我莫大的鼓舞,让我能够持续改进和优化。

另外,如果您觉得这个GitHub项目对您有所帮助,也请不吝赠上一颗宝贵的star⭐!这将对我和这个项目的发展产生积极的推动作用。与此同时,您的支持也将让更多的人发现并受益于这个项目。

感激不尽!让我们携手共创美好的未来!🚀


chatGPT的求赞求评论求关注求star的段子,到底好不好用呢,就看读者你们啦。

github.com/qq20004604/…