CN111352649B - 代码处理方法、装置、服务器及可读存储介质 - Google Patents
代码处理方法、装置、服务器及可读存储介质 Download PDFInfo
- Publication number
- CN111352649B CN111352649B CN201811584184.5A CN201811584184A CN111352649B CN 111352649 B CN111352649 B CN 111352649B CN 201811584184 A CN201811584184 A CN 201811584184A CN 111352649 B CN111352649 B CN 111352649B
- Authority
- CN
- China
- Prior art keywords
- code
- file
- warehouse
- server
- version number
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 235
- 238000001514 detection method Methods 0.000 claims description 74
- 238000012360 testing method Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 36
- 238000012986 modification Methods 0.000 claims description 29
- 230000004048 modification Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 27
- 230000001419 dependent effect Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 26
- 238000013515 script Methods 0.000 abstract description 16
- 230000006870 function Effects 0.000 description 16
- 230000000007 visual effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000003190 augmentative effect Effects 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 208000037805 labour Diseases 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000029305 taxis Effects 0.000 description 2
- 102000006822 Agouti Signaling Protein Human genes 0.000 description 1
- 108010072151 Agouti Signaling Protein Proteins 0.000 description 1
- 235000015842 Hesperis Nutrition 0.000 description 1
- 235000012633 Iberis amara Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供了一种代码处理方法、装置、服务器及可读存储介质,发布服务器在接收到代码服务器发送的针对目标项目仓库的代码处理请求后,根据代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令。而后,根据代码处理指令从代码服务器中获取目标项目仓库中的仓库代码文件,并对仓库代码文件执行对应的代码处理操作。如此,本申请通过单独设置发布服务器并通过发布服务器上配置的公共配置文件统一监听针对代码服务器中每个项目仓库的代码处理请求,从而对相应的项目仓库的仓库代码文件进行代码处理,无需分别开发和维护每个项目仓库的回调事件脚本,进而节省开发资源,降低开发成本。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种代码处理方法、装置、服务器及可读存储介质。
背景技术
目前,Git-lab是基于开源Git项目的企业级别管理代码、控制代码发布版本的代码仓库。随着企业规模的扩大,开发项目数量逐渐增加,项目发布也越来越频繁。对于每个开发项目,都会按照Git项目提供的Git-Hook钩子配置的方法定义多个Git-Hook回调事件,去监听针对每个开发项目的代码提交、合并、发布等一系列用户操作。然而,这种方式需要重复很多劳动力分别去开发和维护每个开发项目的回调事件脚本,极大浪费开发资源,且增加开发成本。
发明内容
有鉴于此,本申请实施例的目的在于提供一种代码处理方法、装置、服务器及可读存储介质,以解决现有技术中需要重复很多劳动力分别去开发和维护每个开发项目的回调事件脚本的问题,进而节省开发资源,降低开发成本。
根据本申请实施例的一个方面,提供一种电子设备,可以包括一个或多个存储介质和一个或多个与存储介质通信的处理器。一个或多个存储介质存储有处理器可执行的机器可读指令。当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行所述机器可读指令,以执行代码处理方法。
根据本申请实施例的另一方面,提供一种代码处理方法,应用于与代码服务器通信连接的发布服务器,所述发布服务器配置有针对所述代码服务器存储的各个项目仓库的公共配置文件,所述方法可以包括:
在接收到代码服务器发送的针对目标项目仓库的代码处理请求后,根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令;
根据所述代码处理指令从所述代码服务器中获取所述目标项目仓库中的仓库代码文件,并对所述仓库代码文件执行对应的代码处理操作。
在一种可能的实施方式中,在接收到代码服务器发送的针对目标项目仓库的代码处理请求后,根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令的步骤之前,所述方法还可以包括:
配置所述公共配置文件,具体可以为:
根据服务提供方终端发送的公共配置文件创建请求,生成可视化配置页面;
将所述可视化配置页面发送给所述服务提供方终端进行显示,以提示用户在所述可视化配置页面中配置公共配置文件的文件地址、所述公共配置文件对应的各个项目仓库以及所述公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令;
根据所述服务提供方终端发送的公共配置文件的文件地址、所述公共配置文件对应的各个项目仓库以及所述公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令生成所述公共配置文件。
在一种可能的实施方式中,所述根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令的步骤,可以包括:
从所述代码处理请求中获得用户操作信息,所述用户操作信息至少包括目标项目仓库名以及用户操作命令;
根据所述目标项目仓库名访问所述公共配置文件的文件地址,并运行所述公共配置文件;
从运行的公共配置文件中获得该目标项目仓库在该用户操作命令下的代码处理指令。
在一种可能的实施方式中,若代码处理指令中包括代码发布指令,所述根据所述代码处理指令从所述代码服务器中获取所述目标项目仓库中的仓库代码文件,并对所述仓库代码文件执行对应的代码处理操作的步骤,可以包括:
根据所述代码发布指令向所述代码服务器发送代码获取请求,并接收所述代码服务器响应所述代码获取请求发送的所述目标项目仓库中的仓库代码文件;
将所述仓库代码文件发布到对应环境的网站服务器中。
在一种可能的实施方式中,若代码处理指令中还包括代码备份指令,所述接收所述代码服务器响应所述代码获取请求发送的所述目标项目仓库中的仓库代码文件的步骤之后,所述方法还可以包括:
根据所述代码备份指令确定备份代码服务器;
将所述目标项目仓库中的仓库代码文件发送给所述备份代码服务器进行备份存储。
在一种可能的实施方式中,若代码处理指令中还包括代码规范检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还可以包括:
根据所述代码规范检测指令调用代码规范检测工具检测所述仓库代码文件是否存在代码规范错误;
在检测到所述仓库代码文件中存在代码规范错误时,生成代码修改信息,并将所述代码修改信息发送给服务提供方终端,其中,所述代码修改信息包括至少一个待修改代码信息,所述待修改代码信息包括代码位置和代码修改规范;
在检测到所述仓库代码文件中不存在代码规范错误时,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
在一种可能的实施方式中,若代码处理指令中还包括代码安全检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还可以包括:
根据所述代码安全检测指令检测所述仓库代码文件的文件类型;
根据检测到的文件类型判断所述仓库代码文件是否为危险代码文件;
若判定所述仓库代码文件为危险代码文件,则将所述仓库代码文件过滤,并向服务提供方终端发送过滤提示信息;
若判定所述仓库代码文件不为危险代码文件,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
在一种可能的实施方式中,若代码处理指令中还包括版本号检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还可以包括:
若所述网站服务器的环境为测试环境,则根据所述版本号检测指令检测所述仓库代码文件的版本号是否为测试版本号;
若所述仓库代码文件的版本号为测试版本号,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤;
若所述仓库代码文件的版本号不为测试版本号,则取消所述仓库代码文件的发布,并向服务提供方终端返回版本号错误的提示信息;
若所述网站服务器的环境为线上环境,则根据所述版本号检测指令检测所述仓库代码文件的版本号是否为正式版本号;
若所述仓库代码文件的版本号为正式版本号,则检测所述正式版本号是否为测试环境的网站服务器已经部署过的版本号,如果所述正式版本号为测试环境的网站服务器已经部署过的版本号,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤,否则取消所述仓库代码文件的发布,并向服务提供方终端返回未找到版本号的提示信息;
若所述仓库代码文件的版本号不为正式版本号,则取消所述仓库代码文件的发布,并向服务提供方终端返回版本号错误的提示信息。
在一种可能的实施方式中,若代码处理指令中还包括依赖资源检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还可以包括:
根据所述依赖资源检测指令向所述仓库代码文件中的每个代码文件的文件地址发送文件查找请求,并检测每个文件查找请求的响应信息;
根据所述每个文件查找请求的响应信息判断所述仓库代码文件是否存在缺失的代码文件;
如果所述仓库代码文件中存在缺失的代码文件,则取消所述仓库代码文件的发布,向服务提供方终端返回代码文件的提示信息;
如果所述仓库代码文件中不存在缺失的代码文件,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
根据本申请实施例的另一方面,提供一种代码处理方法,应用于代码处理系统,所述代码处理系统包括相互之间通信连接的代码服务器和发布服务器,所述发布服务器配置有针对所述代码服务器存储的各个项目仓库的公共配置文件,所述方法可以包括:
所述代码服务器根据用户操作命令向所述发布服务器发送对应的代码处理请求;
所述发布服务器在接收到所述代码服务器发送的针对目标项目仓库的代码处理请求后,根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令;
根据所述代码处理指令从所述代码服务器中获取所述目标项目仓库中的仓库代码文件,并对所述仓库代码文件执行对应的代码处理操作。
根据本申请实施例的另一方面,提供一种代码处理装置,应用于与代码服务器通信连接的发布服务器,所述发布服务器配置有针对所述代码服务器存储的各个项目仓库的公共配置文件,所述装置可以包括:
获取模块,用于在接收到代码服务器发送的针对目标项目仓库的代码处理请求后,根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令;
代码处理模块,用于根据所述代码处理指令从所述代码服务器中获取所述目标项目仓库中的仓库代码文件,并对所述仓库代码文件执行对应的代码处理操作。
根据本申请实施例的另一方面,提供一种可读存储介质,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行上述的代码处理方法的步骤。
基于上述任一方面,本申请实施例通过单独设置发布服务器并通过发布服务器上配置的公共配置文件统一监听针对代码服务器中每个项目仓库的代码处理请求,从而对相应的项目仓库的仓库代码文件进行代码处理,无需分别开发和维护每个项目仓库的回调事件脚本,进而节省开发资源,降低开发成本。
为使本申请实施例的上述目的、特征和优点能更明显易懂,下面将结合实施例,并配合所附附图,作详细说明。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的代码处理系统的交互示意框图;
图2示出了本申请实施例所提供的可以实现图1的发布服务器、代码服务器、服务请求方终端、服务提供方终端的电子设备的示例性硬件和软件组件的示意图;
图3示出了本申请实施例所提供的一种代码处理方法的流程示意图;
图4示出了本申请实施例所提供的公共配置文件改进示意图;;
图5示出了本申请实施例所提供的另一种代码处理方法的流程示意图;
图6示出了本申请实施例所提供的代码处理装置的功能模块框图之一;
图7示出了本申请实施例所提供的代码处理装置的功能模块框图之二。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请实施例的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“网约车打车场景”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕“网约车打车场景”进行描述,但是应该理解,这仅是一个示例性实施例。本申请可以应用于任何其他交通运输类型。例如,本申请可以应用于不同的运输系统环境,包括陆地,海洋,或航空等,或其任意组合。运输系统的交通工具可以包括出租车、私家车、顺风车、公共汽车、火车、子弹头列车、高速铁路、地铁、船只、飞机、宇宙飞船、热气球、或无人驾驶车辆等,或其任意组合。本申请还可以包括用于网约车打车的任何服务系统,例如,用于发送和/或接收快递的系统、用于买卖双方交易的服务系统。本申请的系统或方法的应用可以包括网页、浏览器的插件、客户端终端、定制系统、内部分析系统、或人工智能机器人等,或其任意组合。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
为了解决本申请背景技术中所述的至少一种技术问题,本申请实施例提供一种代码处理方法、装置、服务器及可读存储介质,通过单独设置发布服务器并通过发布服务器上配置的公共配置文件统一监听针对代码服务器中每个项目仓库的代码处理请求,从而对相应的项目仓库的仓库代码文件进行代码处理,无需分别开发和维护每个项目仓库的回调事件脚本,进而节省开发资源,降低开发成本。
图1是本申请一种可替代实施例提供的代码处理系统100的架构示意图。例如,代码处理系统100可以是用于诸如出租车、代驾服务、快车服务、拼车服务、公共汽车服务、驾驶员租赁服务、或班车服务之类的运输服务、或其上述任意服务时间的组合服务所依赖的在线运输服务平台。代码处理系统100可以包括发布服务器110、网络120、服务请求方终端130、服务提供方终端140、数据库150和代码服务器160,发布服务器110和代码服务器160中可以包括执行指令操作的处理器。图1所示的代码处理系统100仅为一种可行的示例,在其它可行的实施例中,该代码处理系统100也可以仅包括图1所示组成部分的其中一部分或者还可以包括其它的组成部分。
在一些实施例中,发布服务器110相对于终端,可以是本地的、也可以是远程的。例如,发布服务器110可以经由网络120访问存储在服务请求方终端130、服务提供方终端140、数据库150以及代码服务器160、或其任意组合中的信息。作为另一示例,发布服务器110可以直接连接到服务请求方终端130、服务提供方终端140、数据库150和代码服务器160中的至少一个,以访问其中存储的信息和/或数据。在一些实施例中,发布服务器110可以在云平台上实现;仅作为示例,云平台可以包括私有云、公有云、混合云、社区云(communitycloud)、分布式云、跨云(inter-cloud)、多云(multi-cloud)等,或者它们的任意组合。在一些实施例中,发布服务器110可以在具有本申请中图2所示的一个或多个组件的电子设备200上实现。
在一些实施例中,发布服务器110和代码服务器160可以包括处理器。处理器可以处理与服务请求有关的信息和/或数据,以执行本申请中描述的一个或多个功能。处理器可以包括一个或多个处理核(例如,单核处理器(S)或多核处理器(S))。仅作为举例,处理器可以包括中央处理单元(Central Processing Unit,CPU)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、专用指令集处理器(Application SpecificInstruction-set Processor,ASIP)、图形处理单元(Graphics Processing Unit,GPU)、物理处理单元(Physics Processing Unit,PPU)、数字信号处理器(Digital SignalProcessor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、微控制器单元、简化指令集计算机(Reduced Instruction Set Computing,RISC)、或微处理器等,或其任意组合。
网络120可以用于信息和/或数据的交换。在一些实施例中,代码处理系统100中的一个或多个组件(例如,发布服务器110,服务请求方终端130,服务提供方终端140、数据库150和代码服务器160)可以向其他组件发送信息和/或数据。例如,发布服务器110可以经由网络120从服务请求方终端130获取服务请求。在一些实施例中,网络120可以是任何类型的有线或者无线网络,或者是他们的结合。仅作为示例,网络130可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local Area Networks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络、ZigBee网络、或近场通信(NearField Communication,NFC)网络等,或其任意组合。在一些实施例中,网络120可以包括一个或多个网络接入点。例如,网络120可以包括有线或无线网络接入点,例如基站和/或网络交换节点,代码处理系统100的一个或多个组件可以通过该接入点连接到网络120以交换数据和/或信息。
在一些实施例中,服务请求方终端130可以包括移动设备、平板计算机、膝上型计算机、或机动车辆中的内置设备等,或其任意组合。在一些实施例中,移动设备可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、或增强现实设备等,或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器设备的控制设备、智能监控设备、智能电视、智能摄像机、或对讲机等,或其任意组合。在一些实施例中,可穿戴设备可包括智能手环、智能鞋带、智能玻璃、智能头盔、智能手表、智能服装、智能背包、智能配件等、或其任何组合。在一些实施例中,智能移动设备可以包括智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏设备、导航设备、或销售点(point of sale,POS)设备等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强现实设备可以包括虚拟现实头盔、虚拟现实玻璃、虚拟现实贴片、增强现实头盔、增强现实玻璃、或增强现实贴片等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括各种虚拟现实产品等。在一些实施例中,机动车辆中的内置设备可以包括车载计算机、车载电视等。
数据库150可以存储数据和/或指令。在一些实施例中,数据库150可以存储从服务请求方终端130和/或服务提供方终端140获得的数据。在一些实施例中,数据库150可以存储在本申请中描述的示例性方法的数据和/或指令。在一些实施例中,数据库150可以包括大容量存储器、可移动存储器、易失性读写存储器、或只读存储器(Read-Only Memory,ROM)等,或其任意组合。作为举例,大容量存储器可以包括磁盘、光盘、固态驱动器等;可移动存储器可包括闪存驱动器、软盘、光盘、存储卡、zip磁盘、磁带等;易失性读写存储器可以包括随机存取存储器(Random Access Memory,RAM);RAM可以包括动态RAM(Dynamic RandomAccess Memory,DRAM),双倍数据速率同步动态RAM(Double Date-Rate Synchronous RAM,DDR SDRAM);静态RAM(Static Random-Access Memory,SRAM),晶闸管RAM(Thyristor-Based Random Access Memory,T-RAM)和零电容器RAM(Zero-RAM)等。作为举例,ROM可以包括掩模ROM(Mask Read-Only Memory,MROM)、可编程ROM(Programmable Read-OnlyMemory,PROM)、可擦除可编程ROM(Programmable Erasable Read-only Memory,PEROM)、电可擦除可编程ROM(Electrically Erasable Programmable read only memory,EEPROM)、光盘ROM(CD-ROM)、以及数字通用磁盘ROM等。在一些实施例中,数据库150可以在云平台上实现。仅作为示例,云平台可以包括私有云、公有云、混合云、社区云、分布式云、跨云、多云或者其它类似的等,或其任意组合。
在一些实施例中,数据库150可以连接到网络120以与代码处理系统100(例如,发布服务器110,服务请求方终端130,服务提供方终端140,代码服务器160等)中的一个或多个组件通信。代码处理系统100中的一个或多个组件可以经由网络120访问存储在数据库150中的数据或指令。在一些实施例中,数据库150可以直接连接到代码处理系统100中的一个或多个组件(例如,发布服务器110,服务请求方终端130,服务提供方终端140,代码服务器160等);或者,在一些实施例中,数据库150也可以是发布服务器110和代码服务器160的一部分。
在一些实施例中,代码处理系统100中的一个或多个组件(例如,发布服务器110,服务请求方终端130,服务提供方终端140,代码服务器160等)可以具有访问数据库150的权限。在一些实施例中,当满足一定条件时,代码处理系统100中的一个或多个组件可以读取和/或修改与服务请求方、服务提供方、或公众、或其任意组合有关的信息。例如,发布服务器110可以在接收服务请求之后读取和/或修改一个或多个用户的信息。
在一些实施例中,可以通过请求服务来实现代码处理系统100中的一个或多个组件的信息交换。服务请求的对象可以是任何产品。在一些实施方案中,产品可以是有形产品或非物质产品。有形产品可包括食品、药品、商品、化学产品、电器、服装、汽车、房屋、或奢侈品等,或其任意组合。非物质产品可以包括服务产品、金融产品、知识产品、或互联网产品等,或其任意组合。互联网产品可以包括单独的主机产品、网络产品、移动互联网产品、商业主机产品、或嵌入式产品等,或其任意组合。互联网产品可以用在移动终端的软件、程序、或系统等,或者它们的任意组合中。移动终端可以包括平板电脑、笔记本电脑、移动电话、个人数字助理(Personal Digital Assistant,PDA)、智能手表、销售点(Point of sales,POS)设备、车载电脑、车载电视、或可穿戴设备等,或其任意组合。例如,互联网产品可以是计算机或移动电话中使用的任何软件和/或应用程序。软件和/或应用程序可以涉及社交、购物、运输、娱乐时间、学习、或投资等,或其任意组合。在一些实施例中,与运输有关的软件和/或应用程序可以包括旅行软件和/或应用程序、车辆调度软件和/或应用程序、绘图软件和/或应用程序等。在车辆调度软件和/或应用程序中,车辆可包括马、马车、人力车(例如,独轮车、自行车、三轮车等)、汽车(例如,出租车、公共汽车、私家车等)、火车、地铁、船只、飞机(例如,飞机、直升机、航天飞机、火箭、热气球等)等,或其任意组合。
图2示出了本申请一些实施例提供的可以实现本申请思想的发布服务器110、服务请求方终端130、服务提供方终端140和代码服务器160的电子设备200的示例性硬件和软件组件的示意图。例如,处理器220可以用于电子设备200上,并且用于执行本申请中的功能。
电子设备200可以是通用计算机或特殊用途的计算机,两者都可以用于实现本申请的代码处理方法。本申请尽管仅示出了一个计算机,但是为了方便起见,可以在多个类似平台上以分布式方式实现本申请描述的功能,以均衡处理负载。
例如,电子设备200可以包括连接到网络的网络端口210、用于执行程序指令的一个或多个处理器220、通信总线230、和不同形式的存储介质240,例如,磁盘、ROM、或RAM,或其任意组合。示例性地,计算机平台还可以包括存储在ROM、RAM、或其他类型的非暂时性存储介质、或其任意组合中的程序指令。根据这些程序指令可以实现本申请的方法。电子设备200还包括计算机与其他输入输出设备(例如键盘、显示屏)之间的输入/输出(Input/Output,I/O)接口250。
为了便于说明,在电子设备200中仅描述了一个处理器。然而,应当注意,本申请中的电子设备200还可以包括多个处理器,因此本申请中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。例如,若电子设备200的处理器执行步骤A和步骤B,则应该理解,步骤A和步骤B也可以由两个不同的处理器共同执行或者在一个处理器中单独执行。例如,第一处理器执行步骤A,第二处理器执行步骤B,或者第一处理器和第二处理器共同执行步骤A和B。
图3示出了本申请一些实施例提供的代码处理方法的流程示意图,该代码处理方法可由图1中所示的发布服务器110执行。应当理解,在其它实施例中,本实施例的代码处理方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该代码处理方法的详细步骤介绍如下。
步骤S110,在接收到代码服务器160发送的针对目标项目仓库的代码处理请求后,根据代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令。
本实施例中,代码服务器160可以是Git-lab服务器,Git-lab服务器是基于开源Git项目的公司级别管理代码,控制代码发布版本的仓库。简单的说,是一个管理代码的仓库。通过Git-lab服务器,各个开发人员可以协同合作,分模块共同开发同个开发项目。除此之外,还可以更新迭代开发某个开发项目,并以不同版本号区别每次的代码更新。
对于一个企业而言,Git-lab服务器上一般会存放多个组,每个组下面会存放多个项目仓库,这些项目仓库中都存储有对应的开发项目下的仓库代码文件。以网约车APP开发为例,Git-lab服务器上可以存放多个网约车相关APP的组,例如司机端APP组,乘客端APP组等。而乘客端APP组下可以包括多个乘客网约车服务的项目仓库,例如快车服务项目仓库、转车服务项目仓库、出租车服务项目仓库等。
根据前述背景技术获得的至少一个技术问题,本申请发明人经过仔细研究,在该步骤S110之前,首先提出下述方案,通过修改Git-lab服务器的底层代码,将每个项目仓库中的Git-Hook指针从指向各自的回调事件脚本转移到公共配置文件。
首先,代码服务器160响应用户操作,修改代码服务器160的Hook代码文件中的Git-Hook钩子函数,以使Git-Hook钩子函数指定发布服务器110。接着,将修改后的Hook代码文件存储到每个项目仓库的对应目录中,并将Git-Hook指针配置为指向发布服务器110中的公共配置文件。
其中,每个Git-lab服务器的Hook代码文件都是存储在自身的Git-lab_custom_Hook.rb文件中的,可以通过修改Git-Hook钩子函数的路径,以使Git-Hook钩子函数指向的新的Git-lab_custom_Hook.rb文件,并存储在每一个仓库项目的对应目录下,覆盖其自身的Git-lab_custom_Hook.rb文件。当代码服务器160检测到针对目标项目仓库的用户操作命令后,则调用目标项目仓库的的Hook代码文件中的git-Hook钩子函数以确定对应的发布服务器110,然后向发布服务器110发送对应的代码处理请求。例如,当代码服务器160检测到Push(提交代码)操作发生时,则会触发自身的Git-Hook钩子函数,即Git-lab_custom_Hook.rb,然后向发布服务器110发送对应的Push(提交代码)操作的代码处理请求。
例如,请参阅图4,在修改代码服务器160的底层代码,将每个项目仓库中的Git-Hook指针从指向各自的回调事件脚本转移到公共配置文件之前,代码服务器160的各个项目仓库,例如项目仓库A、项目仓库B、......项目仓库N的Git-Hook指针都指向各自的回调事件脚本A、回调事件脚本B、......回调事件脚本N。通过本申请发明人提出的改进,项目仓库A、项目仓库B、......项目仓库N的Git-Hook指针都指向了公共配置文件,如此,可以通过发布服务器110上配置的公共配置文件统一监听针对代码服务器160中每个项目仓库的代码处理请求,无需单独针对每个项目仓库A、项目仓库B、......项目仓库N都单独配置回调事件脚本A、回调事件脚本B、......回调事件脚本N,节省了开发资源。
在上述基础上,下面继续对前述的公共配置文件的配置过程进行阐述。
在配置公共配置文件的过程中,为了降低人为误操作的风险,并降低脚本编写工作量,发明人经过研究提出采用可视化配置页面对该公共配置文件进行配置,在一种可能的实施方式中,公共配置文件可以通过如下方式配置:
首先,用户可以通过服务提供方终端140向发布服务器110发送公共配置文件创建请求,然后发布服务器110根据服务提供方终端140发送的公共配置文件创建请求,生成可视化配置页面,并将可视化配置页面发送给服务提供方终端140进行显示,以提示用户在可视化配置页面中配置公共配置文件的文件地址、公共配置文件对应的各个项目仓库以及公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令。
其中,公共配置文件的文件地址可以理解为用于运行访问公共配置文件的地址,公共配置文件对应的各个项目仓库可以理解为可通过该公共配置文件进行代理处理操作的项目仓库,公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令可以理解为各个具体的用户操作命令下的需要执行的CMD(Command,命令提示符)命令。
仍旧以网约车APP开发为例,公共配置文件对应的各个项目仓库可以包括快车服务项目仓库、专车服务项目仓库、出租车服务项目仓库,相应地,公共配置文件中针对快车服务项目仓库、专车服务项目仓库、出租车服务项目仓库在不同用户操作命令下的代码处理指令可以包括Push(提交)代码、Merge(合并)代码、Tag(发布)代码等用户操作命令下的代码处理指令。
而后,可以根据服务提供方终端140发送的公共配置文件的文件地址、公共配置文件对应的各个项目仓库以及公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令生成公共配置文件。其中,为了降低存储数据的复杂性,生成的公共配置文件可以采取轻量级的本地JSON的存储方式。
在上述基础上,当发布服务器110在接收到代码服务器160发送的针对目标项目仓库的代码处理请求后,首先,从代码处理请求中获得用户操作信息,用户操作信息至少包括目标项目仓库名以及用户操作命令。仍旧以网约车APP开发为例,如果用户对代码服务器160中的快车服务项目仓库进行了Push(提交)代码操作,则用户操作信息至少包括快车服务项目仓库名和Push(提交)代码命令。
接着,根据目标项目仓库名访问公共配置文件的文件地址,并运行公共配置文件,并从运行的公共配置文件中获得该目标项目仓库在该用户操作命令下的代码处理指令。例如,可以根据上述快车服务项目仓库名访问公共配置文件的文件地址,并从运行的公共配置文件中获得上述快车服务项目仓库名在该Push(提交)代码命令下的代码处理指令。
再次参阅图3,步骤S120,根据代码处理指令从代码服务器160中获取目标项目仓库中的仓库代码文件,并对仓库代码文件执行对应的代码处理操作。
如此,本实施例通过单独设置发布服务器110并通过发布服务器110上配置的公共配置文件统一监听针对代码服务器160中每个项目仓库的代码处理请求,从而对相应的项目仓库的仓库代码文件进行代码处理,无需分别开发和维护每个项目仓库的回调事件脚本,进而节省开发资源,降低开发成本。
在一种可能的实施方式中,若代码处理指令中包括代码发布指令,则发布服务器110还可以根据代码发布指令向代码服务器160发送代码获取请求,并接收代码服务器160响应代码获取请求发送的目标项目仓库中的仓库代码文件,然后将仓库代码文件发布到对应环境的网站服务器中。仍旧以网约车APP开发为例,若代码发布指令用于执行将快车服务项目仓库的仓库代码文件发布,则发布服务器110可以向代码服务器160发送快车服务项目仓库的仓库代码文件的代码获取请求,并接收代码服务器160响应代码获取请求发送的快车服务项目仓库的仓库代码文件,然后将快车服务项目仓库的仓库代码文件发布到对应环境的网站服务器中。
在一种可能的实施方式中,若代码处理指令中还包括代码备份指令,则发布服务器110还可以根据代码备份指令确定备份代码服务器160,并将目标项目仓库中的仓库代码文件发送给备份代码服务器160进行备份存储。仍旧以网约车APP开发为例,若代码备份指令用于执行将快车服务项目仓库的仓库代码文件备份,则发布服务器110可以根据代码备份指令确定备份代码服务器160,并将快车服务项目仓库的仓库代码文件发送给备份代码服务器160进行备份存储。
发明人在研究过程中还发现,如果仓库代码文件没有检测准确性和安全性,就直接将仓库代码文件发布到不同环境的网站服务器上,会导致诸多风险。例如,用户访问资源的网站服务器一般是直接从代码服务器160拉取对应项目仓库的代码,但是网站服务器都是直接供用户访问的,用于存储具体的网站资源(例如文字、图片、音视频等),如果不对这些拉取的项目仓库的代码进行检测,那么就可能导致网站服务器的代码错误或者存在安全风险。基于此,本实施例将发布服务器110和代码服务器160分开,通过发布服务器110对仓库代码文件进行检测,从而降低风险。
详细地,下面列举一些实施方式以在将仓库代码文件发布到对应环境的网站服务器中之前对仓库代码文件进行相应检测,从而避免直接发布仓库代码文件而导致网站服务器的代码错误或者危险。
在一种可能的实施方式中,若代码处理指令中还包括代码规范检测指令,则发布服务器110还可以根据代码规范检测指令调用代码规范检测工具检测仓库代码文件是否存在代码规范错误,在检测到仓库代码文件中存在代码规范错误时,生成代码修改信息,并将代码修改信息发送给服务提供方终端140,其中,代码修改信息包括至少一个待修改代码信息,待修改代码信息包括代码位置和代码修改规范。此外,在检测到仓库代码文件中不存在代码规范错误时,再将仓库代码文件发布到对应环境的网站服务器中。
示例性地,调用代码规范检测工具检测仓库代码文件是否存在代码规范错误的方式可以是:禁止条件表达式中出现赋值操作符、禁止在条件中使用常量表达式、禁止在正则表达式中使用控制字符、多行模式必须带逗号,单行模式不能带逗号、禁止function定义中出现重名参数、禁止对象字面量中出现重复的、禁止重复的case标签、禁止空语句块、禁止在正则表达式中使用空字符集、禁止对catch子句的参数重新赋值、禁止不必要的布尔转换、禁止不必要的括号、禁止不必要的分号、禁止对function声明重新赋值等等,本领域技术人员可以根据实际需求设置这些检测规则,本实施例对此不再一一赘述。
在一种可能的实施方式中,若代码处理指令中还包括代码安全检测指令,则发布服务器110还可以根据代码安全检测指令检测仓库代码文件的文件类型,并根据检测到的文件类型判断仓库代码文件是否为危险代码文件。若判定仓库代码文件为危险代码文件,则将仓库代码文件过滤,并向服务提供方终端140发送过滤提示信息。若判定仓库代码文件不为危险代码文件,再将仓库代码文件发布到对应环境的网站服务器中。
如此,能够避免将危险代码文件发布到网站服务器中而导致网站服务器存在安全风险。
在一种可能的实施方式中,若代码处理指令中还包括版本号检测指令,则发布服务器110还可以检测即将发布仓库代码文件的网站服务器的环境,若网站服务器的环境为测试环境,则根据版本号检测指令检测仓库代码文件的版本号是否为测试版本号。若仓库代码文件的版本号为测试版本号,再将仓库代码文件发布到对应环境的网站服务器中。若仓库代码文件的版本号不为测试版本号,则取消仓库代码文件的发布,并向服务提供方终端140返回版本号错误的提示信息。
此外,若网站服务器的环境为线上环境,则发布服务器110还可以根据版本号检测指令检测仓库代码文件的版本号是否为正式版本号,若仓库代码文件的版本号为正式版本号,则检测正式版本号是否为测试环境的网站服务器已经部署过的版本号。如果正式版本号为测试环境的网站服务器已经部署过的版本号,再将仓库代码文件发布到对应环境的网站服务器中,否则取消仓库代码文件的发布,并向服务提供方终端140返回未找到版本号的提示信息。若仓库代码文件的版本号不为正式版本号,则取消仓库代码文件的发布,并向服务提供方终端140返回版本号错误的提示信息。
例如,测试环境的版本号可以是daily/*.*.*形式,比如daily/1.0.0,daily/1.1.15。如果仓库代码文件的版本号符合daily/*.*.*形式,则将仓库代码文件发布到测试环境的网站服务器中。若仓库代码文件的版本号不符合daily/*.*.*形式,则取消仓库代码文件的发布,并向服务提供方终端140返回版本号错误的提示信息。
又例如,线上环境(正式环境)的版本号可以是publish/*.*.*的形式,比如publish/1.1.15。如果仓库代码文件的版本号符合publish/*.*.*形式,则检测版本号是否为测试环境的网站服务器已经部署过的版本号。例如,测试环境的网站服务器已经部署过的版本号为daily/1.1.15,而此次发布到线上环境的版本号为publish/1.1.15,则表示版本号是否为测试环境的网站服务器已经部署过的版本号,否则表示版本号不是测试环境的网站服务器已经部署过的版本号。
如果版本号为测试环境的网站服务器已经部署过的版本号,则将仓库代码文件发布到线上环境的网站服务器中,否则取消仓库代码文件的发布,并向服务提供方终端140返回未找到版本号的提示信息。若仓库代码文件的版本号不符合publish/*.*.*形式,则取消仓库代码文件的发布,并向服务提供方终端140返回版本号错误的提示信息。
如此,能够有效避免将错误的仓库代码文件发布而导致网站服务器出现问题。
在一种可能的实施方式中,若代码处理指令中还包括依赖资源检测指令,则发布服务器110还可以根据依赖资源检测指令向仓库代码文件中的每个代码文件的文件地址发送文件查找请求,并检测每个文件查找请求的响应信息。接着,根据每个文件查找请求的响应信息判断仓库代码文件是否存在缺失的代码文件。如果仓库代码文件中存在缺失的代码文件,则取消仓库代码文件的发布,向服务提供方终端140返回代码文件的提示信息。如果仓库代码文件中不存在缺失的代码文件,再将仓库代码文件发布到对应环境的网站服务器中。如此,可以避免上传的仓库代码文件中存在缺失的代码文件而导致网站服务器出现问题。
进一步地,图5示出了本申请一些实施例提供的另一种代码处理方法的流程示意图。与上面实施例不同的是,本实施例提供的代码处理方法由代码处理系统100执行,可以理解的是,接下来要描述的代码处理方法中涉及的步骤在上面实施例中已经描述过,具体各个步骤的详尽内容可参照上面的实施例描述,下面仅对代码处理系统100执行步骤进行简要说明。
步骤S210,代码服务器160根据用户操作命令向发布服务器110发送对应的代码处理请求。
步骤S220,发布服务器110在接收到代码服务器160发送的针对目标项目仓库的代码处理请求后,根据代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令。
步骤S220,根据代码处理指令从代码服务器160中获取目标项目仓库中的仓库代码文件,并对仓库代码文件执行对应的代码处理操作。
在一种可能的实施方式中,在步骤S210之前,本实施例提供的代码处理方法还可以包括以下步骤:
代码服务器160响应用户操作,修改代码服务器160的hook代码文件中的git-hook钩子函数,以使git-hook钩子函数指定发布服务器110。接着,将修改后的hook代码文件存储到每个项目仓库的对应目录中,并将git-hook指针配置为指向发布服务器110中的公共配置文件。
在一种可能的实施方式中,步骤S210可以通过以下方式实现:
代码服务器160可以在检测到针对目标项目仓库的用户操作命令后,调用目标项目仓库的的hook代码文件中的git-hook钩子函数以确定对应的发布服务器110,并向发布服务器110发送对应的代码处理请求。
在一种可能的实施方式中,在步骤S210之前,本实施例提供的代码处理方法还可以包括以下步骤:
配置公共配置文件,具体为:根据服务提供方终端140发送的公共配置文件创建请求,生成可视化配置页面。接着,将可视化配置页面发送给服务提供方终端140进行显示,以提示用户在可视化配置页面中配置公共配置文件的文件地址、公共配置文件对应的各个项目仓库以及公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令。最后,根据服务提供方终端140发送的公共配置文件的文件地址、公共配置文件对应的各个项目仓库以及公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令生成公共配置文件。
在一种可能的实施方式中,步骤S220可以通过以下方式实现:从代码处理请求中获得用户操作信息,用户操作信息至少包括目标项目仓库名以及用户操作命令,根据目标项目仓库名访问公共配置文件的文件地址,并运行公共配置文件,然后从运行的公共配置文件中获得该目标项目仓库在该用户操作命令下的代码处理指令。
在一种可能的实施方式中,步骤S230可以通过以下方式实现:
若代码处理指令中包括代码发布指令,则发布服务器110还可以根据代码发布指令向代码服务器160发送代码获取请求,并接收代码服务器160响应代码获取请求发送的目标项目仓库中的仓库代码文件,然后将仓库代码文件发布到对应环境的网站服务器中。
在一种可能的实施方式中,若代码处理指令中还包括代码备份指令,则发布服务器110还可以根据代码备份指令确定备份代码服务器160,并将目标项目仓库中的仓库代码文件发送给备份代码服务器160进行备份存储。
在一种可能的实施方式中,若代码处理指令中还包括代码规范检测指令,则发布服务器110还可以根据代码规范检测指令调用代码规范检测工具检测仓库代码文件是否存在代码规范错误,在检测到仓库代码文件中存在代码规范错误时,生成代码修改信息,并将代码修改信息发送给服务提供方终端140,其中,代码修改信息包括至少一个待修改代码信息,待修改代码信息包括代码位置和代码修改规范。此外,在检测到仓库代码文件中不存在代码规范错误时,再将仓库代码文件发布到对应环境的网站服务器中。
在一种可能的实施方式中,若代码处理指令中还包括代码安全检测指令,则发布服务器110还可以根据代码安全检测指令检测仓库代码文件的文件类型,并根据检测到的文件类型判断仓库代码文件是否为危险代码文件。若判定仓库代码文件为危险代码文件,则将仓库代码文件过滤,并向服务提供方终端140发送过滤提示信息。若判定仓库代码文件不为危险代码文件,再将仓库代码文件发布到对应环境的网站服务器中。
在一种可能的实施方式中,若代码处理指令中还包括版本号检测指令,则发布服务器110还可以检测即将发布仓库代码文件的网站服务器的环境,若网站服务器的环境为测试环境,则根据版本号检测指令检测仓库代码文件的版本号是否为测试版本号。若仓库代码文件的版本号为测试版本号,再将仓库代码文件发布到对应环境的网站服务器中。若仓库代码文件的版本号不为测试版本号,则取消仓库代码文件的发布,并向服务提供方终端140返回版本号错误的提示信息;
此外,若网站服务器的环境为线上环境,则发布服务器110还可以根据版本号检测指令检测仓库代码文件的版本号是否为正式版本号,若仓库代码文件的版本号为正式版本号,则检测正式版本号是否为测试环境的网站服务器已经部署过的版本号。如果正式版本号为测试环境的网站服务器已经部署过的版本号,再将仓库代码文件发布到对应环境的网站服务器中,否则取消仓库代码文件的发布,并向服务提供方终端140返回未找到版本号的提示信息。若仓库代码文件的版本号不为正式版本号,则取消仓库代码文件的发布,并向服务提供方终端140返回版本号错误的提示信息。
在一种可能的实施方式中,若代码处理指令中还包括依赖资源检测指令,则发布服务器110还可以根据依赖资源检测指令向仓库代码文件中的每个代码文件的文件地址发送文件查找请求,并检测每个文件查找请求的响应信息。接着,根据每个文件查找请求的响应信息判断仓库代码文件是否存在缺失的代码文件。如果仓库代码文件中存在缺失的代码文件,则取消仓库代码文件的发布,向服务提供方终端140返回代码文件的提示信息。如果仓库代码文件中不存在缺失的代码文件,再将仓库代码文件发布到对应环境的网站服务器中。
图6示出了本申请一些实施例提供的代码处理装置300的功能模块图,该代码处理装置300实现的功能可以对应上述方法执行的步骤。该代码处理装置300可以理解为上述发布服务器110,或发布服务器110的处理器,也可以理解为独立于上述发布服务器110或处理器之外的在发布服务器110控制下实现本申请功能的组件,如图6所示,该代码处理装置300可以包括获取模块310和代码处理模块320,下面分别该代码处理装置300的各个功能模块的功能进行详细阐述。
获取模块310,可以用于在接收到代码服务器160发送的针对目标项目仓库的代码处理请求后,根据代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令。可以理解,该获取模块310可以用于执行上述步骤S110,关于该获取模块310的详细实现方式可以参照上述对步骤S110有关的内容。
代码处理模块320,可以用于根据代码处理指令从代码服务器160中获取目标项目仓库中的仓库代码文件,并对仓库代码文件执行对应的代码处理操作。可以理解,该代码处理模块320可以用于执行上述步骤S120,关于该代码处理模块320的详细实现方式可以参照上述对步骤S120有关的内容。
在一种可能的实施方式中,请参阅图7,代码处理装置300还可以包括:配置模块309。配置模块309可以用于配置公共配置文件,具体可以为:
根据服务提供方终端140发送的公共配置文件创建请求,生成可视化配置页面;将可视化配置页面发送给服务提供方终端140进行显示,以提示用户在可视化配置页面中配置公共配置文件的文件地址、公共配置文件对应的各个项目仓库以及公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令;根据服务提供方终端140发送的公共配置文件的文件地址、公共配置文件对应的各个项目仓库以及公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令生成公共配置文件。
在一种可能的实施方式中,配置模块309具体可以通过以下方式从预先配置的公共配置文件中获取对应的代码处理指令:
从代码处理请求中获得用户操作信息,用户操作信息至少包括目标项目仓库名以及用户操作命令;根据目标项目仓库名访问公共配置文件的文件地址,并运行公共配置文件;从运行的公共配置文件中获得该目标项目仓库在该用户操作命令下的代码处理指令。
在一种可能的实施方式中,若代码处理指令中包括代码发布指令,代码处理模块320,具体可以通过以下方式对仓库代码文件执行对应的代码处理操作:
根据代码发布指令向代码服务器160发送代码获取请求,并接收代码服务器160响应代码获取请求发送的目标项目仓库中的仓库代码文件;将仓库代码文件发布到对应环境的网站服务器中。
在一种可能的实施方式中,若代码处理指令中还包括代码备份指令,代码处理模块320,具体还可以用于通过以下方式对仓库代码文件执行对应的代码处理操作:
根据代码备份指令确定备份代码服务器160;将目标项目仓库中的仓库代码文件发送给备份代码服务器160进行备份存储。
在一种可能的实施方式中,若代码处理指令中还包括代码规范检测指令,代码处理模块320,具体还可以用于通过以下方式对仓库代码文件执行对应的代码处理操作:
根据代码规范检测指令调用代码规范检测工具检测仓库代码文件是否存在代码规范错误;
在检测到仓库代码文件中存在代码规范错误时,生成代码修改信息,并将代码修改信息发送给服务提供方终端140,其中,代码修改信息包括至少一个待修改代码信息,待修改代码信息包括代码位置和代码修改规范;
在检测到仓库代码文件中不存在代码规范错误时,再执行将仓库代码文件发布到对应环境的网站服务器中的步骤。
在一种可能的实施方式中,若代码处理指令中还包括代码安全检测指令,代码处理模块320,具体还可以用于通过以下方式对仓库代码文件执行对应的代码处理操作:
根据代码安全检测指令检测仓库代码文件的文件类型;
根据检测到的文件类型判断仓库代码文件是否为危险代码文件;
若判定仓库代码文件为危险代码文件,则将仓库代码文件过滤,并向服务提供方终端140发送过滤提示信息;
若判定仓库代码文件不为危险代码文件,再执行将仓库代码文件发布到对应环境的网站服务器中的步骤。
在一种可能的实施方式中,若代码处理指令中还包括版本号检测指令,代码处理模块320,具体还可以用于通过以下方式对仓库代码文件执行对应的代码处理操作:
若网站服务器的环境为测试环境,则根据版本号检测指令检测仓库代码文件的版本号是否为测试版本号;
若仓库代码文件的版本号为测试版本号,再执行将仓库代码文件发布到对应环境的网站服务器中的步骤;
若仓库代码文件的版本号不为测试版本号,则取消仓库代码文件的发布,并向服务提供方终端140返回版本号错误的提示信息;
若网站服务器的环境为线上环境,则根据版本号检测指令检测仓库代码文件的版本号是否为正式版本号;
若仓库代码文件的版本号为正式版本号,则检测正式版本号是否为测试环境的网站服务器已经部署过的版本号,如果正式版本号为测试环境的网站服务器已经部署过的版本号,再执行将仓库代码文件发布到对应环境的网站服务器中的步骤,否则取消仓库代码文件的发布,并向服务提供方终端140返回未找到版本号的提示信息;
若仓库代码文件的版本号不为正式版本号,则取消仓库代码文件的发布,并向服务提供方终端140返回版本号错误的提示信息。
在一种可能的实施方式中,若代码处理指令中还包括依赖资源检测指令,代码处理模块320,具体还可以用于通过以下方式对仓库代码文件执行对应的代码处理操作:
根据依赖资源检测指令向仓库代码文件中的每个代码文件的文件地址发送文件查找请求,并检测每个文件查找请求的响应信息;
根据每个文件查找请求的响应信息判断仓库代码文件是否存在缺失的代码文件;
如果仓库代码文件中存在缺失的代码文件,则取消仓库代码文件的发布,向服务提供方终端140返回代码文件的提示信息;
如果仓库代码文件中不存在缺失的代码文件,再执行将仓库代码文件发布到对应环境的网站服务器中的步骤。
上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (26)
1.一种代码处理方法,其特征在于,应用于与代码服务器通信连接的发布服务器,所述发布服务器配置有针对所述代码服务器存储的各个项目仓库的公共配置文件,其中,所述公共配置文件是根据服务提供方终端发送的公共配置文件的文件地址、所述公共配置文件对应的各个项目仓库以及所述公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令生成的,各个项目仓库中的Git-Hook指针配置为指向所述公共配置文件,各个项目仓库对应的目录中存储有修改后的Hook代码文件,修改后的Hook代码文件是所述代码服务器响应用户操作,对所述代码服务器的Hook代码文件中的Git-Hook钩子函数进行修改后得到的,修改后的Git-Hook钩子函数用于指定所述发布服务器,所述方法包括:
在接收到代码服务器发送的针对目标项目仓库的代码处理请求后,根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令,所述代码处理请求是所述代码服务器在检测到针对目标项目仓库的用户操作命令后,调用所述目标项目仓库的Hook代码文件中的Git-Hook钩子函数向所述发布服务器发送的;
根据所述代码处理指令从所述代码服务器中获取所述目标项目仓库中的仓库代码文件,并对所述仓库代码文件执行对应的代码处理操作。
2.根据权利要求1所述的代码处理方法,其特征在于,所述根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令的步骤,包括:
从所述代码处理请求中获得用户操作信息,所述用户操作信息至少包括目标项目仓库名以及用户操作命令;
根据所述目标项目仓库名访问所述公共配置文件的文件地址,并运行所述公共配置文件;
从运行的公共配置文件中获得该目标项目仓库在该用户操作命令下的代码处理指令。
3.根据权利要求1-2中任意一项所述的代码处理方法,其特征在于,若代码处理指令中包括代码发布指令,所述根据所述代码处理指令从所述代码服务器中获取所述目标项目仓库中的仓库代码文件,并对所述仓库代码文件执行对应的代码处理操作的步骤,包括:
根据所述代码发布指令向所述代码服务器发送代码获取请求,并接收所述代码服务器响应所述代码获取请求发送的所述目标项目仓库中的仓库代码文件;
将所述仓库代码文件发布到对应环境的网站服务器中。
4.根据权利要求3所述的代码处理方法,其特征在于,若代码处理指令中还包括代码备份指令,所述接收所述代码服务器响应所述代码获取请求发送的所述目标项目仓库中的仓库代码文件的步骤之后,所述方法还包括:
根据所述代码备份指令确定备份代码服务器;
将所述目标项目仓库中的仓库代码文件发送给所述备份代码服务器进行备份存储。
5.根据权利要求3所述的代码处理方法,其特征在于,若代码处理指令中还包括代码规范检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还包括:
根据所述代码规范检测指令调用代码规范检测工具检测所述仓库代码文件是否存在代码规范错误;
在检测到所述仓库代码文件中存在代码规范错误时,生成代码修改信息,并将所述代码修改信息发送给服务提供方终端,其中,所述代码修改信息包括至少一个待修改代码信息,所述待修改代码信息包括代码位置和代码修改规范;
在检测到所述仓库代码文件中不存在代码规范错误时,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
6.根据权利要求3所述的代码处理方法,其特征在于,若代码处理指令中还包括代码安全检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还包括:
根据所述代码安全检测指令检测所述仓库代码文件的文件类型;
根据检测到的文件类型判断所述仓库代码文件是否为危险代码文件;
若判定所述仓库代码文件为危险代码文件,则将所述仓库代码文件过滤,并向服务提供方终端发送过滤提示信息;
若判定所述仓库代码文件不为危险代码文件,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
7.根据权利要求3所述的代码处理方法,其特征在于,若代码处理指令中还包括版本号检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还包括:
若所述网站服务器的环境为测试环境,则根据所述版本号检测指令检测所述仓库代码文件的版本号是否为测试版本号;
若所述仓库代码文件的版本号为测试版本号,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤;
若所述仓库代码文件的版本号不为测试版本号,则取消所述仓库代码文件的发布,并向服务提供方终端返回版本号错误的提示信息;
若所述网站服务器的环境为线上环境,则根据所述版本号检测指令检测所述仓库代码文件的版本号是否为正式版本号;
若所述仓库代码文件的版本号为正式版本号,则检测所述正式版本号是否为测试环境的网站服务器已经部署过的版本号,如果所述正式版本号为测试环境的网站服务器已经部署过的版本号,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤,否则取消所述仓库代码文件的发布,并向服务提供方终端返回未找到版本号的提示信息;
若所述仓库代码文件的版本号不为正式版本号,则取消所述仓库代码文件的发布,并向服务提供方终端返回版本号错误的提示信息。
8.根据权利要求3所述的代码处理方法,其特征在于,若代码处理指令中还包括依赖资源检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还包括:
根据所述依赖资源检测指令向所述仓库代码文件中的每个代码文件的文件地址发送文件查找请求,并检测每个文件查找请求的响应信息;
根据所述每个文件查找请求的响应信息判断所述仓库代码文件是否存在缺失的代码文件;
如果所述仓库代码文件中存在缺失的代码文件,则取消所述仓库代码文件的发布,向服务提供方终端返回代码文件的提示信息;
如果所述仓库代码文件中不存在缺失的代码文件,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
9.一种代码处理方法,其特征在于,应用于代码处理系统,所述代码处理系统包括相互之间通信连接的代码服务器和发布服务器,所述发布服务器配置有针对所述代码服务器存储的各个项目仓库的公共配置文件,其中,所述公共配置文件是根据服务提供方终端发送的公共配置文件的文件地址、所述公共配置文件对应的各个项目仓库以及所述公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令生成的,所述方法包括:
所述代码服务器根据用户操作命令向所述发布服务器发送对应的代码处理请求;
所述发布服务器在接收到所述代码服务器发送的针对目标项目仓库的代码处理请求后,根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令;
根据所述代码处理指令从所述代码服务器中获取所述目标项目仓库中的仓库代码文件,并对所述仓库代码文件执行对应的代码处理操作;
所述代码服务器根据用户操作命令向所述发布服务器发送对应的代码处理请求的步骤之前,所述方法还包括:
所述代码服务器响应用户操作,修改所述代码服务器的Hook代码文件中的Git-Hook钩子函数,以使所述Git-Hook钩子函数指定所述发布服务器;
将修改后的Hook代码文件存储到每个项目仓库的对应目录中,并将Git-Hook指针配置为指向所述发布服务器中的公共配置文件;
所述代码服务器根据用户操作命令向所述发布服务器发送对应的代码处理请求的步骤,包括:
所述代码服务器在检测到针对目标项目仓库的用户操作命令后,调用所述目标项目仓库的Hook代码文件中的Git-Hook钩子函数以确定对应的发布服务器;
向所述发布服务器发送对应的代码处理请求。
10.根据权利要求9所述的代码处理方法,其特征在于,所述根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令的步骤,包括:
从所述代码处理请求中获得用户操作信息,所述用户操作信息至少包括目标项目仓库名以及用户操作命令;
根据所述目标项目仓库名访问所述公共配置文件的文件地址,并运行所述公共配置文件;
从运行的公共配置文件中获得该目标项目仓库在该用户操作命令下的代码处理指令。
11.根据权利要求9-10中任意一项所述的代码处理方法,其特征在于,若代码处理指令中包括代码发布指令,所述根据所述代码处理指令从所述代码服务器中获取所述目标项目仓库中的仓库代码文件,并对所述仓库代码文件执行对应的代码处理操作的步骤,包括:
所述发布服务器根据所述代码发布指令向所述代码服务器发送代码获取请求;
所述代码服务器响应所述代码获取请求向所述发布服务器发送所述目标项目仓库中的仓库代码文件;
所述发布服务器接收所述目标项目仓库中的仓库代码文件,并将所述仓库代码文件发布到对应环境的网站服务器中。
12.根据权利要求11所述的代码处理方法,其特征在于,若代码处理指令中还包括代码备份指令,所述发布服务器接收所述目标项目仓库中的仓库代码文件的步骤之后,所述方法还包括:
根据所述代码备份指令确定备份代码服务器;
将所述目标项目仓库中的仓库代码文件发送给所述备份代码服务器进行备份存储。
13.根据权利要求11所述的代码处理方法,其特征在于,若代码处理指令中还包括代码规范检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还包括:
根据所述代码规范检测指令调用代码规范检测工具检测所述仓库代码文件是否存在代码规范错误;
在检测到所述仓库代码文件中存在代码规范错误时,生成代码修改信息,并将所述代码修改信息发送给服务提供方终端,其中,所述代码修改信息包括至少一个待修改代码信息,所述待修改代码信息包括代码位置和代码修改规范;
在检测到所述仓库代码文件中不存在代码规范错误时,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
14.根据权利要求11所述的代码处理方法,其特征在于,若代码处理指令中还包括代码安全检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还包括:
根据所述代码安全检测指令检测所述仓库代码文件的文件类型;
根据检测到的文件类型判断所述仓库代码文件是否为危险代码文件;
若判定所述仓库代码文件为危险代码文件,则将所述仓库代码文件过滤,并向服务提供方终端发送过滤提示信息;
若判定所述仓库代码文件不为危险代码文件,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
15.根据权利要求11所述的代码处理方法,其特征在于,若代码处理指令中还包括版本号检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还包括:
若所述网站服务器的环境为测试环境,则根据所述版本号检测指令检测所述仓库代码文件的版本号是否为测试版本号;
若所述仓库代码文件的版本号为测试版本号,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤;
若所述仓库代码文件的版本号不为测试版本号,则取消所述仓库代码文件的发布,并向服务提供方终端返回版本号错误的提示信息;
若所述网站服务器的环境为线上环境,则根据所述版本号检测指令检测所述仓库代码文件的版本号是否为正式版本号;
若所述仓库代码文件的版本号为正式版本号,则检测所述正式版本号是否为测试环境的网站服务器已经部署过的版本号,如果所述正式版本号为测试环境的网站服务器已经部署过的版本号,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤,否则取消所述仓库代码文件的发布,并向服务提供方终端返回未找到版本号的提示信息;
若所述仓库代码文件的版本号不为正式版本号,则取消所述仓库代码文件的发布,并向服务提供方终端返回版本号错误的提示信息。
16.根据权利要求11所述的代码处理方法,其特征在于,若代码处理指令中还包括依赖资源检测指令,在将所述仓库代码文件发布到对应环境的网站服务器中的步骤之前,所述方法还包括:
根据所述依赖资源检测指令向所述仓库代码文件中的每个代码文件的文件地址发送文件查找请求,并检测每个文件查找请求的响应信息;
根据所述每个文件查找请求的响应信息判断所述仓库代码文件是否存在缺失的代码文件;
如果所述仓库代码文件中存在缺失的代码文件,则取消所述仓库代码文件的发布,向服务提供方终端返回代码文件的提示信息;
如果所述仓库代码文件中不存在缺失的代码文件,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
17.一种代码处理装置,其特征在于,应用于与代码服务器通信连接的发布服务器,所述发布服务器配置有针对所述代码服务器存储的各个项目仓库的公共配置文件,其中,所述公共配置文件是根据服务提供方终端发送的公共配置文件的文件地址、所述公共配置文件对应的各个项目仓库以及所述公共配置文件中针对每个项目仓库在不同用户操作命令下的代码处理指令生成的,各个项目仓库中的Git-Hook指针配置为指向所述公共配置文件,各个项目仓库对应的目录中存储有修改后的Hook代码文件,修改后的Hook代码文件是所述代码服务器响应用户操作,对所述代码服务器的Hook代码文件中的Git-Hook钩子函数进行修改后得到的,修改后的Git-Hook钩子函数用于指定所述发布服务器,所述装置包括:
获取模块,用于在接收到代码服务器发送的针对目标项目仓库的代码处理请求后,根据所述代码处理请求从预先配置的公共配置文件中获取对应的代码处理指令,所述代码处理请求是所述代码服务器在检测到针对目标项目仓库的用户操作命令后,调用所述目标项目仓库的Hook代码文件中的Git-Hook钩子函数向所述发布服务器发送的;
代码处理模块,用于根据所述代码处理指令从所述代码服务器中获取所述目标项目仓库中的仓库代码文件,并对所述仓库代码文件执行对应的代码处理操作。
18.根据权利要求17所述的代码处理装置,其特征在于,配置模块具体通过以下方式从预先配置的公共配置文件中获取对应的代码处理指令:
从所述代码处理请求中获得用户操作信息,所述用户操作信息至少包括目标项目仓库名以及用户操作命令;
根据所述目标项目仓库名访问所述公共配置文件的文件地址,并运行所述公共配置文件;
从运行的公共配置文件中获得该目标项目仓库在该用户操作命令下的代码处理指令。
19.根据权利要求17-18中任意一项所述的代码处理装置,其特征在于,若代码处理指令中包括代码发布指令,所述代码处理模块,具体通过以下方式对所述仓库代码文件执行对应的代码处理操作:
根据所述代码发布指令向所述代码服务器发送代码获取请求,并接收所述代码服务器响应所述代码获取请求发送的所述目标项目仓库中的仓库代码文件;
将所述仓库代码文件发布到对应环境的网站服务器中。
20.根据权利要求19所述的代码处理装置,其特征在于,若代码处理指令中还包括代码备份指令,所述代码处理模块,具体还用于通过以下方式对所述仓库代码文件执行对应的代码处理操作:
根据所述代码备份指令确定备份代码服务器;
将所述目标项目仓库中的仓库代码文件发送给所述备份代码服务器进行备份存储。
21.根据权利要求19所述的代码处理装置,其特征在于,若代码处理指令中还包括代码规范检测指令,所述代码处理模块,具体还用于通过以下方式对所述仓库代码文件执行对应的代码处理操作:
根据所述代码规范检测指令调用代码规范检测工具检测所述仓库代码文件是否存在代码规范错误;
在检测到所述仓库代码文件中存在代码规范错误时,生成代码修改信息,并将所述代码修改信息发送给服务提供方终端,其中,所述代码修改信息包括至少一个待修改代码信息,所述待修改代码信息包括代码位置和代码修改规范;
在检测到所述仓库代码文件中不存在代码规范错误时,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
22.根据权利要求19所述的代码处理装置,其特征在于,若代码处理指令中还包括代码安全检测指令,所述代码处理模块,具体还用于通过以下方式对所述仓库代码文件执行对应的代码处理操作:
根据所述代码安全检测指令检测所述仓库代码文件的文件类型;
根据检测到的文件类型判断所述仓库代码文件是否为危险代码文件;
若判定所述仓库代码文件为危险代码文件,则将所述仓库代码文件过滤,并向服务提供方终端发送过滤提示信息;
若判定所述仓库代码文件不为危险代码文件,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
23.根据权利要求19所述的代码处理装置,其特征在于,若代码处理指令中还包括版本号检测指令,所述代码处理模块,具体还用于通过以下方式对所述仓库代码文件执行对应的代码处理操作:
若所述网站服务器的环境为测试环境,则根据所述版本号检测指令检测所述仓库代码文件的版本号是否为测试版本号;
若所述仓库代码文件的版本号为测试版本号,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤;
若所述仓库代码文件的版本号不为测试版本号,则取消所述仓库代码文件的发布,并向服务提供方终端返回版本号错误的提示信息;
若所述网站服务器的环境为线上环境,则根据所述版本号检测指令检测所述仓库代码文件的版本号是否为正式版本号;
若所述仓库代码文件的版本号为正式版本号,则检测所述正式版本号是否为测试环境的网站服务器已经部署过的版本号,如果所述正式版本号为测试环境的网站服务器已经部署过的版本号,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤,否则取消所述仓库代码文件的发布,并向服务提供方终端返回未找到版本号的提示信息;
若所述仓库代码文件的版本号不为正式版本号,则取消所述仓库代码文件的发布,并向服务提供方终端返回版本号错误的提示信息。
24.根据权利要求19所述的代码处理装置,其特征在于,若代码处理指令中还包括依赖资源检测指令,所述代码处理模块,具体还用于通过以下方式对所述仓库代码文件执行对应的代码处理操作:
根据所述依赖资源检测指令向所述仓库代码文件中的每个代码文件的文件地址发送文件查找请求,并检测每个文件查找请求的响应信息;
根据所述每个文件查找请求的响应信息判断所述仓库代码文件是否存在缺失的代码文件;
如果所述仓库代码文件中存在缺失的代码文件,则取消所述仓库代码文件的发布,向服务提供方终端返回代码文件的提示信息;
如果所述仓库代码文件中不存在缺失的代码文件,再执行将所述仓库代码文件发布到对应环境的网站服务器中的步骤。
25.一种服务器,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当服务器运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1-16中任意一项所述的代码处理方法的步骤。
26.一种可读存储介质,其特征在于,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1-16中任意一项所述的代码处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584184.5A CN111352649B (zh) | 2018-12-24 | 2018-12-24 | 代码处理方法、装置、服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584184.5A CN111352649B (zh) | 2018-12-24 | 2018-12-24 | 代码处理方法、装置、服务器及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352649A CN111352649A (zh) | 2020-06-30 |
CN111352649B true CN111352649B (zh) | 2023-09-22 |
Family
ID=71195576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811584184.5A Active CN111352649B (zh) | 2018-12-24 | 2018-12-24 | 代码处理方法、装置、服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352649B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897782B (zh) * | 2020-08-19 | 2024-04-26 | 百度时代网络技术(北京)有限公司 | 文件控制方法、装置、设备及存储介质 |
CN112099800B (zh) * | 2020-09-27 | 2024-03-08 | 中国建设银行股份有限公司 | 代码数据的处理方法、装置和服务器 |
CN112486567B (zh) * | 2020-11-30 | 2024-06-14 | 上海瑞家信息技术有限公司 | 代码的合并请求发送方法、装置、电子设备及存储介质 |
WO2022121971A1 (zh) * | 2020-12-10 | 2022-06-16 | 百果园技术(新加坡)有限公司 | 前端项目处理方法、装置、设备、管理系统及存储介质 |
CN112667280B (zh) * | 2020-12-30 | 2024-06-04 | 中车大连机车研究所有限公司 | 一种基于Git技术的机车车载应用软件集中控制系统 |
CN113806595B (zh) * | 2021-08-13 | 2022-08-12 | 荣耀终端有限公司 | 一种代码搜索系统生成方法、代码搜索方法和搜索服务器 |
CN116136765A (zh) * | 2021-11-17 | 2023-05-19 | 贵州白山云科技股份有限公司 | 代码部署、执行方法、设备及系统 |
CN115202711B (zh) * | 2022-06-29 | 2023-11-14 | 易保网络技术(上海)有限公司 | 数据发布方法及系统 |
CN115934159A (zh) * | 2023-03-02 | 2023-04-07 | 云账户技术(天津)有限公司 | 配置文件的生效方法、装置、电子设备和可读存储介质 |
CN116400957A (zh) * | 2023-06-08 | 2023-07-07 | 四川数产范式科技有限公司 | 基于Git的代码管理方法、装置、设备及介质 |
CN117311767A (zh) * | 2023-11-10 | 2023-12-29 | 苏州异格技术有限公司 | 一种利用配置文件的多仓管理方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293811A (zh) * | 2016-07-28 | 2017-01-04 | 北京中电普华信息技术有限公司 | 一种自动打包发布方法及装置 |
US9569335B1 (en) * | 2015-10-07 | 2017-02-14 | Sap Se | Exploiting software compiler outputs for release-independent remote code vulnerability analysis |
CN107145377A (zh) * | 2017-03-17 | 2017-09-08 | 广州视源电子科技股份有限公司 | 软件编译方法及系统 |
CN107729031A (zh) * | 2017-08-25 | 2018-02-23 | 上海壹账通金融科技有限公司 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
CN108196876A (zh) * | 2017-11-29 | 2018-06-22 | 链家网(北京)科技有限公司 | 基于文件的php业务配置方法及中心服务器 |
-
2018
- 2018-12-24 CN CN201811584184.5A patent/CN111352649B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569335B1 (en) * | 2015-10-07 | 2017-02-14 | Sap Se | Exploiting software compiler outputs for release-independent remote code vulnerability analysis |
CN106293811A (zh) * | 2016-07-28 | 2017-01-04 | 北京中电普华信息技术有限公司 | 一种自动打包发布方法及装置 |
CN107145377A (zh) * | 2017-03-17 | 2017-09-08 | 广州视源电子科技股份有限公司 | 软件编译方法及系统 |
CN107729031A (zh) * | 2017-08-25 | 2018-02-23 | 上海壹账通金融科技有限公司 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
CN108196876A (zh) * | 2017-11-29 | 2018-06-22 | 链家网(北京)科技有限公司 | 基于文件的php业务配置方法及中心服务器 |
Non-Patent Citations (1)
Title |
---|
NewshiJ.CheckStyle Git hook 简单配置.《CSDN博客 https://blog.csdn.net/cmmchenmm/article/details/82804267》.2018,第1-5页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111352649A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111352649B (zh) | 代码处理方法、装置、服务器及可读存储介质 | |
CN111352682B (zh) | 页面渲染方法、装置、服务器及可读存储介质 | |
CN109478275B (zh) | 分配服务请求的系统和方法 | |
CN111052158B (zh) | 用于分配服务请求的系统和方法 | |
CN109074370B (zh) | 确定兴趣点的系统和方法 | |
TWI806850B (zh) | 汽車共乘之方法及系統 | |
JP6538196B2 (ja) | サービスの要求を分配するシステム及び方法 | |
US11546729B2 (en) | System and method for destination predicting | |
JP6535105B2 (ja) | 相乗りのためのシステム及び方法 | |
AU2018280386B2 (en) | Systems and methods for information processing | |
JP6503474B2 (ja) | 移動デバイスの経路を求めるシステム及び方法 | |
CN108701279A (zh) | 用于确定未来运输服务时间点的预测分布的系统和方法 | |
JP2020057409A (ja) | サービスの順序列を更新するためのシステム及び方法 | |
CN111367575B (zh) | 一种用户行为预测方法、装置、电子设备及存储介质 | |
WO2020155135A1 (en) | Systems and methods for identifying similar trajectories | |
CN111105120B (zh) | 一种工单处理方法及装置 | |
WO2020001303A1 (en) | Systems and methods for operation retry | |
CN111105251A (zh) | 一种信息推送方法及装置 | |
JP2021512291A (ja) | 経路決定のためのシステムおよび方法 | |
CN110751531A (zh) | 轨迹识别方法、装置及电子设备 | |
WO2019158066A1 (en) | Systems and methods for information display | |
US20200162541A1 (en) | Systems and methods for uploading data | |
CN111507116A (zh) | 扫码方法、装置、扫码设备及计算机可读存储介质 | |
JP2021517691A (ja) | サービス要求を処理するためのデバイスおよび方法 | |
WO2019232773A1 (en) | Systems and methods for abnormality detection in data storage |
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 |