社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

数据科学 | 基于GitHub的API批量下载工程项目实战

运筹OR帷幄 • 3 年前 • 683 次点击  

↑↑↑↑↑点击上方蓝色字关注我们!






『运筹OR帷幄』转载


作者:土盐


编者按

该方案是个完整的实战例子,简单却能够解决痛点问题。这也是一个好的服务器编程的启蒙例子,也能提高自己对工作流程认识和改进的意识。



作为一个刚入职新公司有两年经验的程序员,由于从算法转行开发,在面对多种多样的开发任务时,头大不已。自己梳理的工作流程首先是去github、csdn上找代码救兵,在已有的条件下,选择合适的工程案例进行复制粘贴。然后,就是和产品经理沟通,尽量简单实用的需求设计。最后是代码重构,肝到深夜。


代码救兵目前是手动逐个下载github仓库,实在觉得又土又木,也让同事对码农产生了呆萌的印象。


在这个场景下,我觉得有必要改进下自己的工作流程,提高下自己程序员的修养。于是,实现了一个基于github的API批量下载工程项目实战的方案。


该方案是个完整的实战例子,简单却能够解决痛点问题。这也是一个好的服务器编程的启蒙例子,也能提高自己对工作流程认识和改进的意识。


实战的代码放在了土盐公众号,回复,基于github的API批量下载工程项目实战,即可得到方案代码。


进一步需要去研究自动化开发,来解决逐个运行的麻烦,再自动化筛选来方便查看运行成功的仓库项目。





调用github的api实现如下图

网站库查询效果

https://api.github.com/search/repositories?q=qt+opencv

 


github的api的其他调用方式

· GET /search/code· GET /search/commits· GET /search/issues· GET /search/labels· GET /search/repositories· GET /search/topics· GET /search/users


设计筛选条件q=qt+opencv

https://api.github.com/search/repositories?q=qt+opencv stars:>10

 


批量筛选结果显示并保存为cloneKEYWORD.bat文件

curl -s "https://api.github.com/search/repositories?q=qt+opencv" | grep -w clone_url | grep -o '[^"]\+://.\+.git' > cloneKEYWORD.bat



修改默认单页查询结果数量和页码序号

curl -s "https://api.github.com/search/repositories?q=qt+opencv&per_page=100&page=1" | grep -w clone_url | grep -o '[^"]\+://.\+.git' > cloneKEYWORD.bat


addBatch.sh给cloneKEYWORD.bat每行批量添加git clone --depth=1

for line in $(cat cloneKEYWORD.bat) do echo "git clone --depth=1 \"$line\"" done


复制结果到

cloneKeywordACTION.bat文件,

双击运行批量下载工程项目

 

 

编程是从众多纷杂的头绪中,梳理出有用的线索,再制定合适的流程。祝大家开发顺利,开心编程。


参考资料:1 github的api:https://docs.github.com/en/rest/reference/permissions-required-for-github-apps2 github的api筛选条件链接:https://docs.github.com/en/github/searching-for-information-on-github/understanding-the-search-syntax3 http://www.manongjc.com/detail/15-quyqxysqrnzgbza.html4 https://stackoverflow.com/questions/18122628/how-can-i-search-for-a-commit-message-on-github5 https://www.runoob.com/linux/linux-shell-variable


方案代码获取

扫描下方二维码关注公众号

后台回复“方案代码

获取基于github的API批量下载工程项目实战方案代码



相关文章推荐

分享一下作为一个工科出身的背景下如何来提高自己数学能力的经验。数学系出身的同学请无视掉本文,本文的学习经验主要是适合工科生学习数学的“土”路子。

点击蓝字标题,即可阅读《数据科学 | OpenCV方块体识别解决方案》


—— 完 ——



文章须知

文章作者:土盐

责任编辑:彭贯军

审核编辑:阿春

微信编辑:玖蓁

本文转载自公众号 土盐(ID:tuyantuxian)

原文链接:基于github的API批量下载工程项目实战


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/115664
 
683 次点击