CN115905272A - 索引自动更新方法、索引自动更新装置、设备及介质 - Google Patents
索引自动更新方法、索引自动更新装置、设备及介质 Download PDFInfo
- Publication number
- CN115905272A CN115905272A CN202310024364.2A CN202310024364A CN115905272A CN 115905272 A CN115905272 A CN 115905272A CN 202310024364 A CN202310024364 A CN 202310024364A CN 115905272 A CN115905272 A CN 115905272A
- Authority
- CN
- China
- Prior art keywords
- index
- satis
- open source
- source project
- private
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种索引自动更新方法、索引自动更新装置、设备及介质,其方法为,通过对第一satis开源项目进行二次开发得到第二satis开源项目,基于第二satis开源项目获取gitlab仓库的webhook事件,并对webhook事件进行解析,得到更新资源,根据更新资源对私有仓库的索引进行自动更新。通过对satis开源项目进行二次开发,使得satis开源项目能够获取并解析带有更新私有源所需的资料的webhook事件,得到与更新或修改私有源的添加包或修改包所对应的更新资料,根据更新资料对私有仓库的索引进行自动更新,避免了人为手动进行索引的更新时存在的更新效率低和出错率高的情况。
Description
技术领域
本发明涉及私有仓库的索引更新领域,尤其涉及一种索引自动更新方法、索引自动更新装置、电子设备及计算机可读存储介质。
背景技术
私有源中的私有仓库的索引在私有源搭建好的瞬间就已确定,当后续存在需对私有源进行更新时,对应的,私有源中私有仓库的索引也要对应进行更新,常规技术中,在对私有仓库的索引进行更新时,是通过人为手动进行索引的更新,而在对索引进行更新的过程中,因为存在的添加包或修改包的种类较多,使得进行索引更新的过程较为复杂,导致索引的更新效率较低。
发明内容
本发明的主要目的在于提供一种索引自动更新方法、索引自动更新装置、电子设备及计算机可读存储介质,旨在如何解决现有的人为手动进行索引的更新导致的索引的更新效率较低的技术问题。
为实现上述目的,本发明提供一种索引自动更新方法,所述索引自动更新方法包括以下步骤:
通过对第一satis开源项目进行二次开发,得到第二satis开源项目;
基于所述第二satis开源项目获取gitlab仓库的webhook事件,并对所述webhook事件进行解析,得到更新资源;
根据所述更新资源对私有仓库的索引进行自动更新。
可选地,所述通过对第一satis开源项目进行二次开发的步骤之前,所述方法还包括:
通过所述第一satis开源项目搭建私有源。
可选地,所述通过对第一satis开源项目进行二次开发,得到第二satis开源项目的步骤包括:
通过在所述第一satis开源项目上新建web目录,并在所述web目录下构建用户界面的库,以得到所述第二satis开源项目。
可选地,所述通过在所述第一satis开源项目上新建web目录的步骤之后,所述方法还包括:
在所述web目录上新建第一index.php文件;
在所述第一index.php文件的根目录下新建token文件后,通过所述token文件对所述gitlab仓库的token值进行保存。
可选地,所述基于所述第二satis开源项目获取gitlab仓库的webhook事件的步骤包括:
在所述第二satis开源项目所构建的所述库上引入reactphp作为http服务器;
通过所述http服务器获取所述gitlab仓库的webhook事件。
可选地,所述通过所述http服务器获取所述gitlab仓库的webhook事件的步骤之前,所述方法还包括:
通过在所述http服务器上输入所述token值后启动所述http服务器;
在所述http服务器中加载所述私有源的索引文件。
可选地,所述根据所述更新资源对私有仓库的索引进行自动更新的步骤包括:
根据所述更新资源对所述私有源的索引文件进行更新后,基于更新后的所述私有源的索引文件新建第二index.php文件;
将所述第二index.php文件部署到公网服务器中,通过在所述公网服务器中执行所述第二index.php文件以启动所述公网服务器;
将所述公网服务器上的脚本配置为所述gitlab仓库的webhook地址,以基于所述第二index.php文件对所述私有仓库的索引进行自动更新。
本发明还提供一种索引自动更新装置,所述索引自动更新装置包括:
搭建模块,用于通过对第一satis开源项目进行二次开发,得到第二satis开源项目;
解析模块,用于基于所述第二satis开源项目获取gitlab仓库的webhook事件,并对所述webhook事件进行解析,得到更新资源;
更新模块,用于根据所述更新资源对私有仓库的索引进行自动更新。
此外,为实现上述目的,本发明还提供一种电子设备,包括如上所述的索引自动更新装置、存储器、处理器及存储在存储器上并可在处理器上运行的计算机处理程序,所述处理器执行所述计算机处理程序时实现上述索引自动更新方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述索引自动更新方法的步骤。
本发明实施例提出一种索引自动更新方法、索引自动更新装置、设备及介质,通过对第一satis开源项目进行二次开发,得到第二satis开源项目,基于第二satis开源项目获取gitlab仓库的webhook事件,并对webhook事件进行解析,得到更新资源,根据更新资源对私有仓库的索引进行自动更新。本发明通过对第一satis开源项目进行二次开发得到第二satis开源项目,使得基于第二satis开源项目能够获取带有更新私有源所需的资料的webhook事件,对webhook事件进行解析后,得到与更新或修改私有源的添加包或修改包所对应的更新资料,根据更新资料对私有仓库的索引进行自动更新,避免了人为手动进行索引的更新时存在的更新效率低和出错率高的情况。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明索引自动更新方法中一实施例的流程示意图;
图3为本发明中gitlab仓库、第一satis开源项目、私有源、第二satis开源项目和公网服务器之间的时序流程示意图;
图4为本发明索引自动更新装置的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例电子设备可以是PC,也可以是智能手机、平板电脑、电子书阅读器、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些租金之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,电子设备还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的计算机程序,并执行以下操作:
通过对第一satis开源项目进行二次开发,得到第二satis开源项目;
基于所述第二satis开源项目获取gitlab仓库的webhook事件,并对所述webhook事件进行解析,得到更新资源;
根据所述更新资源对私有仓库的索引进行自动更新。
进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:
通过对第一satis开源项目进行二次开发的步骤之前,通过所述第一satis开源项目搭建私有源。
进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:
通过对第一satis开源项目进行二次开发,得到第二satis开源项目的步骤包括:通过在所述第一satis开源项目上新建web目录,并在所述web目录下构建用户界面的库,以得到所述第二satis开源项目。
进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:
通过在所述第一satis开源项目上新建web目录的步骤之后,在所述web目录上新建第一index.php文件;
在所述第一index.php文件的根目录下新建token文件后,通过所述token文件对所述gitlab仓库的token值进行保存。
进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:
基于所述第二satis开源项目获取gitlab仓库的webhook事件的步骤包括:在所述第二satis开源项目所构建的所述库上引入reactphp作为http服务器;
通过所述http服务器获取所述gitlab仓库的webhook事件。
进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:
通过所述http服务器获取所述gitlab仓库的webhook事件的步骤之前,通过在所述http服务器上输入所述token值后启动所述http服务器;
在所述http服务器中加载所述私有源的索引文件。
进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:
根据所述更新资源对私有仓库的索引进行自动更新的步骤包括:根据所述更新资源对所述私有源的索引文件进行更新后,基于更新后的所述私有源的索引文件新建第二index.php文件;
将所述第二index.php文件部署到公网服务器中,通过在所述公网服务器中执行所述第二index.php文件以启动所述公网服务器;
将所述公网服务器上的脚本配置为所述gitlab仓库的webhook地址,以基于所述第二index.php文件对所述私有仓库的索引进行自动更新。
参照图2,本发明第一实施例提供一种索引自动更新方法,所述索引自动更新方法包括以下步骤:
步骤S10,通过对第一satis开源项目进行二次开发,得到第二satis开源项目;
具体地,本实施例通过在第一satis开源项目现有的软件上进行修改和功能的扩展,使得基于第一satis开源项目进行修改和功能扩展后所得的第二satis开源项目具备获取gitlab仓库的webhook(网络钩子)事件的功能,能够通过第二satis开源项目对基于第一satis开源项目搭建的私有源中私有仓库的索引进行自动更新。
其中,对第一satis开源项目的二次开发并不会影响第一satis开源项目原有的系统,即第一satis开源项目和第二satis开源项目的系统是一样的,区别仅在于功能区别。
satis开源项目为一种静态的composer资源库生成器。
可选的,步骤S10中通过对第一satis开源项目进行二次开发的步骤之前,所述方法还包括:
步骤S101,通过所述第一satis开源项目搭建私有源。
使用第一satis开源项目自带的建项目功能,这个相当于git clone+composerinstall +运行post-install脚本,建立web项目后,在web项目下建立satis.json文件,通过satis.json文件执行例如php bin/satis build satis.json ./web的代码,进而在web项目中生成仓库列表,基于生成的仓库列表生成私有仓库后,将私有仓库进行组合,得到私有源。
可选的,步骤S10中通过对第一satis开源项目进行二次开发,得到第二satis开源项目的步骤包括:
步骤S102,通过在所述第一satis开源项目上新建web目录,并在所述web目录下构建用户界面的库,以得到所述第二satis开源项目。
为了使得可以通过satis开源项目实现对gitlab仓库的webhook事件的获取,本实施例通过对第一satis开源项目进行二次开发,具体为,在第一satis开源项目上新建web目录后,在web目录下执行composer require react/react,以构建用户界面的库,以此实现对第一satis开源项目的二次开发,以得到用于对gitlab仓库的webhook事件进行获取的第二satis开源项目。
其中,需要说明的是,步骤S102中新建的web目录与步骤S101中新建的web目录不同,步骤S101中新建的web目录是为了生成私有源,而步骤S102中新建的web目录是为了得到第二satis开源项目。
另外,在本实施例中,在web目录下构建用户界面的库是通过在web目录下执行composer require react/react实现的,因此,在本实施例中构建的库的类型为JavaScript库,通过Java Script库能够使网页具备交互性,以此实现对gitlab仓库中webhook事件的获取。
可选的,步骤S102中通过在所述第一satis开源项目上新建web目录的步骤之后,所述方法还包括:
步骤A1,在所述web目录上新建第一index.php文件;
步骤A2,在所述第一index.php文件的根目录下新建token文件后,通过所述token文件对所述gitlab仓库的token值进行保存。
具体地,在第一satis开源项目上新建了web目录后,通过在web目录上新建第一index.php文件后,在第一index.php文件的根目录下新建用于对gitlab仓库的token值进行保存在token文件,以便拉取代码gitlab仓库,便于后期与gitlab仓库进行交互。
其中,index.php文件是PHP网站的首页文件,也就是说,通过index.php文件打开网站(或在网站上输入index.php文件中保存的token值),就能在网站的首页上直接呈现index.php文件所对应的信息,例如,本实施例中,第一index.php文件所对应的信息为gitlab仓库,这也是后续在http服务器中为什么能够根据输入的token值与gitlab仓库建立交互关系的原因。
步骤S20,基于所述第二satis开源项目获取gitlab仓库的webhook事件,并对所述webhook事件进行解析,得到更新资源;
因为webhook事件在私有源中的私有仓库的更新中承担了向服务器推送更新数据的作用,因此通过对gitlab仓库的webhook事件的获取,能够知悉待更新数据,具体地,二次开发后所得的第二satis开源项目能够获取gitlab仓库的webhook事件,通过对获取的webhook事件进行解析,能够知悉当前私有源中私有仓库的更新资料,避免了现有中的需人为对修改包或更新包进行识别的不便捷性和低效性,更新资料的自动获取使得私有仓库的索引更新趋向简单。
呈现在http服务器中的代码内容如下所示:
//解析webhook事件:
$post_repos = getRepository($request);
$repositories = $config['repositories'] [];
$require= $config['require'] [];
$urls = array_column($repositories,column_key: url');
if(!in_array($post_repos['git_http_url'], $urls)){
$repositories[]= [
"type"=> “vcs",
"url" => Spost_repos['git_http_url']
];
$scheme = parse_url(Spost_repos['git_http_url']);
$pack = trim(trim( string: $scheme["path"] "",characters: ".git"),characters: "/");
SreqUirel5paCK]=
$config['repositories']= $repositories;
$config['require']= $require;
可选的,步骤S20中基于所述第二satis开源项目获取gitlab仓库的webhook事件的步骤包括:
步骤S201,在所述第二satis开源项目所构建的所述库上引入reactphp作为http服务器;
步骤S202,通过所述http服务器获取所述gitlab仓库的webhook事件。
具体地,在第二satis开源项目上构建好库之后,需向库中引入reactphp作为http服务器,其中,reactphp是PHP中用于事件驱动编程的底层库,核心是一个事件的循环,通过reactphp能够建立异步服务器,即http服务器,通过http服务器能够与gitlab仓库进行通信,以对gitlab仓库中的webhook事件进行获取。
可选的,步骤S202中通过所述http服务器获取所述gitlab仓库的webhook事件的步骤之前,所述方法还包括:
步骤B1,通过在所述http服务器上输入所述token值后启动所述http服务器;
步骤B2,在所述http服务器中加载所述私有源的索引文件。
具体地,在引入reactphp创建好http服务器后,进入http服务器,此时的http服务器为关闭状态,故需要对http服务器进行启动,而http服务器的启动可通过拉取gitlab仓库代码仓库,因为在对第一satis开源项目进行二次开发的过程中,通过创建token文件对gitlab仓库的token值进行了保存,因此此时可以直接通过token文件提取gitlab仓库的token值,在http服务器中输入该token值,使得http服务器能够与gitlab仓库建立交互关系。
需要说明的是,第二satis开源项目是通过第一satis开源项目二次开发而来的,第二satis开源项目相对于第一satis开源项目而言,只是功能上有所改变,其原有系统的内核并无差别,因此,在第二satis开源项目上创建并运行的http服务器能够载入基于第一satis开源项目所搭建的私有源的索引文件,使得http服务器能够加载当前私有源中私有仓库的索引,以便后续基于更新资料对当前私有仓库的索引进行更新。
呈现在http服务器中的代码内容如下所示:
//在http服务器上输入token值为:
$token = file_get_contents(filename: __DIR__.'/../token');(该代码为输入token值的步骤)
echo exec( command: "php/webser/www/packagist/vendor/bin/composerconfig -g*****".$token)."\n"(该代码为基于输入的token值将gitlab仓库的全局环境安装到http服务器中)
//驱动http服务器为:
$server = new \React\Http\HttpServer(function (ServerRequestInterface$request) {
$response_data = ['success'=>true,'data'=>null, 'message'=>'构建成功!','code'=>200];
try{
//在http服务器中加载私有源的索引文件为:
$satis_file_path=__DIR__.'/../satis.json';
$config=json_decode(file_get_contents($satis_file_path),associative:true);
步骤S30,根据所述更新资源对私有仓库的索引进行自动更新。
http服务器在对gitlab仓库的webhook事件进行解析得到webhook事件所对应的更新资料后,能够基于更新资料自动对私有仓库的索引进行自动更新,即避免了现有中需人为识别修改包或添加包,并根据修改包或添加包对私有仓库的索引进行手动更新的不便捷和效率低下的情况。
另外,本实施例中,对私有仓库的索引进行自动更新的时序流程图如图3所示,由图3可知,首先通过第一satis开源项目搭建私有源后,对第一satis开源项目进行二次开发时,接收gitlab仓库发送的token值并进行保存后,得到二次开发完毕后的第二satis开源项目,通过在第二satis开源项目上输入之前保存的token值,使第二satis开源项目与gitlab仓库建立连接关系,因为第二satis开源项目和第一satis开源项目的系统一致,因此能够在第二satis开源项目中加载私有源的索引文件,加载完毕后,对gitlab仓库提交的webhook事件进行接收和解析,得到更新资料,此时第二satis开源项目根据更新资料对私有源的索引文件进行更新,得到更新后的私有源的索引文件后,将更新后的私有源的索引文件编辑成index.php文件,并将该index.php文件部署到公网服务器中,通过将公网服务器的脚本改写为gitlab仓库的webhook地址,使公网服务器对待更新位置进行定位,以此对私有源中私有仓库的索引进行自动更新。
可选的,步骤S30中根据所述更新资源对私有仓库的索引进行自动更新的步骤包括:
步骤S301,根据所述更新资源对所述私有源的索引文件进行更新后,基于更新后的所述私有源的索引文件新建第二index.php文件;
步骤S302,将所述第二index.php文件部署到公网服务器中,通过在所述公网服务器中执行所述第二index.php文件以启动所述公网服务器;
步骤S303,将所述公网服务器上的脚本配置为所述gitlab仓库的webhook地址,以基于所述第二index.php文件对所述私有仓库的索引进行自动更新。
具体地,在http服务器中根据更新资料对私有源的索引文件进行更新后,根据更新后的私有源的索引文件,将该索引文件编辑成第二index.php文件后,将第二index.php文件输出部署到公网服务器中,以对公网服务器进行启动,需要说明的是,此时的公网服务器还不能根据接入的index.php文件对私有仓库的索引进行更新,此时还需将公网服务器的脚本配置成gitlab仓库的webhook地址,以通过webhook地址获取更新位置,在通过webhook地址获取的第二index.ph文件所对应的更新位置后,公网服务器才能根据第二index.php文件和第二额index.ph文件所对应的更新位置进行更新,其中,更新位置即为本次更新的私有仓库的信息,在通过公网服务器对私有仓库的索引进行自动更新后,能够实现在无需人为手动操作的情况下,实现私有仓库的索引的便捷和高效的更新效果。
呈现在http服务器中的代码内容如下所示:
//根据更新资源对私有源的索引文件进行更新:
file_put_contents($satis_file_path,json.eneod=$sconfig,flags: JSON_UNESCAPED_UNICODE));
//基于更新后的私有源的索引文件新建第二index.php文件:
echo exec(command:"php/webser/www/packagist/bin/satis build /webser/www/packagist/satis.json /webser/www/packagist/build -n")."\n";
}
}catch (\Exception $e){
$response_data['success']= true;
$response_data['code']= 500;
$response_data['message']= $e->getMessage();
}
在本实施例中,通过对第一satis开源项目进行二次开发,得到第二satis开源项目,基于第二satis开源项目获取gitlab仓库的webhook事件,并对webhook事件进行解析,得到更新资源,根据更新资源对私有仓库的索引进行自动更新。本发明通过对第一satis开源项目进行二次开发得到第二satis开源项目,以此对satis开源项目的功能进行扩展,使得基于第二satis开源项目能够获取带有更新私有源所需的资料的webhook事件,并通过第二satis开源项目对webhook事件进行解析后,得到与修改或更新私有源的添加包或修改包所对应的更新资料后,根据更新资料对私有仓库的索引进行自动更新,避免了人为手动进行索引的更新时存在的更新效率低和出错率高的情况,提升了更新私有源中私有仓库的索引的便捷性和效率,同时降低了人为手动操作时存在的出错率高的问题。
参照图4,本发明还提供一种索引自动更新装置,所述索引自动更新装置包括:
搭建模块10,用于通过对第一satis开源项目进行二次开发,得到第二satis开源项目;
解析模块20,用于基于所述第二satis开源项目获取gitlab仓库的webhook事件,并对所述webhook事件进行解析,得到更新资源;
更新模块30,用于根据所述更新资源对私有仓库的索引进行自动更新。
进一步地,所述搭建模块10,还用于:
通过所述第一satis开源项目搭建私有源。
进一步地,所述搭建模块10,还用于:
通过在所述第一satis开源项目上新建web目录,并在所述web目录下构建用户界面的库,以得到所述第二satis开源项目。
进一步地,所述搭建模块10,还用于:
在所述web目录上新建第一index.php文件;
在所述第一index.php文件的根目录下新建token文件后,通过所述token文件对所述gitlab仓库的token值进行保存。
进一步地,所述解析模块20,还用于:
在所述第二satis开源项目所构建的所述库上引入reactphp作为http服务器;
通过所述http服务器获取所述gitlab仓库的webhook事件。
进一步地,所述解析模块20,还用于:
通过在所述http服务器上输入所述token值后启动所述http服务器;
在所述http服务器中加载所述私有源的索引文件。
进一步地,所述更新模块30,还用于:
根据所述更新资源对所述私有源的索引文件进行更新后,基于更新后的所述私有源的索引文件新建第二index.php文件;
将所述第二index.php文件部署到公网服务器中,通过在所述公网服务器中执行所述第二index.php文件以启动所述公网服务器;
将所述公网服务器上的脚本配置为所述gitlab仓库的webhook地址,以基于所述第二index.php文件对所述私有仓库的索引进行自动更新。
此外,本发明实施例还提出一种电子设备,所述电子设备包括如上所述的索引自动更新装置、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述索引自动更新方法的步骤。
此外,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述索引自动更新方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种索引自动更新方法,其特征在于,所述索引自动更新方法包括以下步骤:
通过对第一satis开源项目进行二次开发,得到第二satis开源项目;
基于所述第二satis开源项目获取gitlab仓库的webhook事件,并对所述webhook事件进行解析,得到更新资源;
根据所述更新资源对私有仓库的索引进行自动更新。
2.如权利要求1所述的索引自动更新方法,其特征在于,所述通过对第一satis开源项目进行二次开发的步骤之前,所述方法还包括:
通过所述第一satis开源项目搭建私有源。
3.如权利要求2所述的索引自动更新方法,其特征在于,所述通过对第一satis开源项目进行二次开发,得到第二satis开源项目的步骤包括:
通过在所述第一satis开源项目上新建web目录,并在所述web目录下构建用户界面的库,以得到所述第二satis开源项目。
4.如权利要求3所述的索引自动更新方法,其特征在于,所述通过在所述第一satis开源项目上新建web目录的步骤之后,所述方法还包括:
在所述web目录上新建第一index.php文件;
在所述第一index.php文件的根目录下新建token文件后,通过所述token文件对所述gitlab仓库的token值进行保存。
5.如权利要求4所述的索引自动更新方法,其特征在于,所述基于所述第二satis开源项目获取gitlab仓库的webhook事件的步骤包括:
在所述第二satis开源项目所构建的所述库上引入reactphp作为http服务器;
通过所述http服务器获取所述gitlab仓库的webhook事件。
6.如权利要求5所述的索引自动更新方法,其特征在于,所述通过所述http服务器获取所述gitlab仓库的webhook事件的步骤之前,所述方法还包括:
通过在所述http服务器上输入所述token值后启动所述http服务器;
在所述http服务器中加载所述私有源的索引文件。
7.如权利要求6所述的索引自动更新方法,其特征在于,所述根据所述更新资源对私有仓库的索引进行自动更新的步骤包括:
根据所述更新资源对所述私有源的索引文件进行更新后,基于更新后的所述私有源的索引文件新建第二index.php文件;
将所述第二index.php文件部署到公网服务器中,通过在所述公网服务器中执行所述第二index.php文件以启动所述公网服务器;
将所述公网服务器上的脚本配置为所述gitlab仓库的webhook地址,以基于所述第二index.php文件对所述私有仓库的索引进行自动更新。
8.一种索引自动更新装置,其特征在于,所述索引自动更新装置包括:
搭建模块,用于通过对第一satis开源项目进行二次开发,得到第二satis开源项目;
解析模块,用于基于所述第二satis开源项目获取gitlab仓库的webhook事件,并对所述webhook事件进行解析,得到更新资源;
更新模块,用于根据所述更新资源对私有仓库的索引进行自动更新。
9.一种电子设备,其特征在于,包括如权利要求8所述的索引自动更新装置、存储器、处理器及存储在存储器上并可在处理器上运行的计算机处理程序,所述处理器执行所述计算机处理程序时实现权利要求1-7中任一项所述的索引自动更新方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的索引自动更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310024364.2A CN115905272B (zh) | 2023-01-09 | 2023-01-09 | 索引自动更新方法、索引自动更新装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310024364.2A CN115905272B (zh) | 2023-01-09 | 2023-01-09 | 索引自动更新方法、索引自动更新装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115905272A true CN115905272A (zh) | 2023-04-04 |
CN115905272B CN115905272B (zh) | 2023-05-26 |
Family
ID=85742704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310024364.2A Active CN115905272B (zh) | 2023-01-09 | 2023-01-09 | 索引自动更新方法、索引自动更新装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905272B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491662A (zh) * | 2018-10-31 | 2019-03-19 | 珠海市筑巢科技有限公司 | 代码打包方法、计算机装置及计算机可读存储介质、代码打包系统 |
CN109933408A (zh) * | 2019-03-15 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种云计算环境下的虚拟机镜像自动化制作的装置和方法 |
US20190286726A1 (en) * | 2018-03-19 | 2019-09-19 | Fast Technologies, Inc. | Automatic Updates for a Virtual Index Server |
CN110471648A (zh) * | 2019-08-19 | 2019-11-19 | 山东浪潮通软信息科技有限公司 | 一种基于异步机制的分布式的ci/cd的实现方法 |
US20200241850A1 (en) * | 2019-01-30 | 2020-07-30 | Hitachi, Ltd. | Code Management System and Code Management Method |
CN113992648A (zh) * | 2021-10-26 | 2022-01-28 | 沈阳世纪高通科技有限公司 | 一种基于容器编排技术的路况实时发布方法及装置 |
CN114528001A (zh) * | 2022-02-21 | 2022-05-24 | 北京车与车科技有限公司 | 一种基于groovy代码实时更新部署方法 |
CN115098063A (zh) * | 2022-05-13 | 2022-09-23 | 广州博冠信息科技有限公司 | 项目开发方法、装置和电子设备 |
-
2023
- 2023-01-09 CN CN202310024364.2A patent/CN115905272B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190286726A1 (en) * | 2018-03-19 | 2019-09-19 | Fast Technologies, Inc. | Automatic Updates for a Virtual Index Server |
CN109491662A (zh) * | 2018-10-31 | 2019-03-19 | 珠海市筑巢科技有限公司 | 代码打包方法、计算机装置及计算机可读存储介质、代码打包系统 |
US20200241850A1 (en) * | 2019-01-30 | 2020-07-30 | Hitachi, Ltd. | Code Management System and Code Management Method |
CN109933408A (zh) * | 2019-03-15 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种云计算环境下的虚拟机镜像自动化制作的装置和方法 |
CN110471648A (zh) * | 2019-08-19 | 2019-11-19 | 山东浪潮通软信息科技有限公司 | 一种基于异步机制的分布式的ci/cd的实现方法 |
CN113992648A (zh) * | 2021-10-26 | 2022-01-28 | 沈阳世纪高通科技有限公司 | 一种基于容器编排技术的路况实时发布方法及装置 |
CN114528001A (zh) * | 2022-02-21 | 2022-05-24 | 北京车与车科技有限公司 | 一种基于groovy代码实时更新部署方法 |
CN115098063A (zh) * | 2022-05-13 | 2022-09-23 | 广州博冠信息科技有限公司 | 项目开发方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115905272B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291497B (zh) | 多固件升级方法、系统及可读存储介质 | |
CN111198730B (zh) | 子应用程序启动的方法、装置、终端及计算机存储介质 | |
US20210337015A1 (en) | Method and system of application development for multiple device client platforms | |
CN111209065B (zh) | 动态壁纸设置方法、装置、存储介质及电子设备 | |
CN112035768A (zh) | 快应用的页面渲染方法、装置、存储介质及电子设备 | |
CN114640727B (zh) | 协议解析方法、装置及计算机可读存储介质 | |
CN107291460B (zh) | 电视终端及编译服务器代码控制方法和存储介质 | |
CN109814915B (zh) | 基于lua的参数配置方法、装置、介质和电子设备 | |
CN111898053A (zh) | 页面浏览方法、装置、设备以及计算机可读存储介质 | |
CN115905272B (zh) | 索引自动更新方法、索引自动更新装置、设备及介质 | |
CN116361242A (zh) | 文件获取方法、装置、电子设备及可读存储介质 | |
CN115729604A (zh) | 微应用集成方法、系统、电子设备和存储介质 | |
CN113687901B (zh) | 界面显示方法及界面显示装置 | |
CN114070898B (zh) | 车型和车辆状态的信号推送方法、装置及计算机可读介质 | |
CN114121013A (zh) | 语音控制方法、装置、电子设备及存储介质 | |
CN112153467A (zh) | 应用安装方法、装置、设备及计算机可读存储介质 | |
CN113672311A (zh) | 结构体赋值方法、赋值器及计算机可读存储介质 | |
CN109032651B (zh) | 应用更新方法、智能终端及计算机可读存储介质 | |
CN110580166A (zh) | 系统应用安装方法、装置和存储介质 | |
CN111752563A (zh) | 动态修改界面方法、装置、终端及计算机可读存储介质 | |
CN111030848A (zh) | 电子产品自动配置方法、装置和存储介质 | |
CN113918499B (zh) | 开放接口生成方法、网络设备及计算机可读存储介质 | |
CN111556354B (zh) | 全局界面显示方法、电视及计算机可读存储介质 | |
CN115712415B (zh) | 桩代码自动生成和同步的方法、装置、设备及介质 | |
CN111954164B (zh) | 设备配网方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |