CN112486567B - 代码的合并请求发送方法、装置、电子设备及存储介质 - Google Patents

代码的合并请求发送方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112486567B
CN112486567B CN202011377151.0A CN202011377151A CN112486567B CN 112486567 B CN112486567 B CN 112486567B CN 202011377151 A CN202011377151 A CN 202011377151A CN 112486567 B CN112486567 B CN 112486567B
Authority
CN
China
Prior art keywords
sub
item
code
items
component
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
Application number
CN202011377151.0A
Other languages
English (en)
Other versions
CN112486567A (zh
Inventor
潘显跃
钱杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Ruijia Information Technology Co ltd
Original Assignee
Shanghai Ruijia Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Ruijia Information Technology Co ltd filed Critical Shanghai Ruijia Information Technology Co ltd
Priority to CN202011377151.0A priority Critical patent/CN112486567B/zh
Publication of CN112486567A publication Critical patent/CN112486567A/zh
Application granted granted Critical
Publication of CN112486567B publication Critical patent/CN112486567B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种代码的合并请求发送方法、装置、电子设备及存储介质,涉及软件开发技术领域。所述方法包括:获取组件项目对应的配置文件,其中,配置文件包括组件项目对应的组件项目信息以及源项目信息;根据配置文件向服务器发送组件项目中各个子项目分别对应的代码发布请求,以及接收预设服务器返回的与各个子项目分别对应的代码发布参数;根据各个子项目分别对应的代码发布参数确定各个子项目分别对应的提交地址;根据各个子项目分别对应的提交地址发送组件项目对应的代码合并请求。以解决相关技术中提交代码的方式单一,而导致较多的代码提交场景中代码提交操作复杂且效率低的问题。

Description

代码的合并请求发送方法、装置、电子设备及存储介质
技术领域
本发明涉及软件开发技术领域,尤其涉及一种代码的合并请求发送方法、装置、电子设备及存储介质。
背景技术
GitLab是由GitLab Inc.开发,一款基于Git的完全集成的软件开发平台(fullyintegrated software development platform)。GitLab且具有wiki(多人协作的写作***)以及在线编辑、issue(工作清单)跟踪功能、CI(Continuous Integration,持续集成)/CD(Continuous Deployment,持续部署)等功能。
合并请求Merge Request(MR)是GitLab作为代码协作和版本控制平台的基础。顾名思义:一个合并请求,以合并一个项目分支到另一个项目。
申请人在实现本发明的过程中,发现相关技术中至少存在以下问题:
(1)从网页端发起Merge Request,选择对应的项目分支进行diff并创建,每次发起Merge Request都需要打开网页端创建并选择项目分支较为耗时;
(2)在向多个项目提交代码时,需要依次打开网页端出创建Merge Request。而在相关技术中,不支持多个代码仓库同时提交代码,当项目模块化后,发起Merge Request所需的时间随着代码仓库的数量线性增加;
(3)在针对单个代码仓库对应多个代码源需要提交代码的情况下,需要手动提交至多个源并创建Merge Request。
综上,可见在相关技术中每当应用程序的组件对应的代码发生变化时,需要基于组件本地的代码基于网页端发起Merge Request,提交代码的方式单一,在较多的代码提交场景中,代码合并请求操作较为复杂繁琐。
针对上述问题,目前尚未提出有效的解决技术手段。。
发明内容
本发明实施例提供一种代码的合并请求发送方法、装置、电子设备及存储介质,以解决相关技术中提交代码的方式单一,而导致较多的代码提交场景中代码提交操作复杂且效率低的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种代码的合并请求发送方法,所述方法包括:获取组件项目对应的配置文件,其中,所述配置文件包括所述组件项目对应的组件项目信息以及源项目信息;根据所述配置文件向服务器发送所述组件项目中各个子项目分别对应的代码发布请求,以及接收所述预设服务器返回的与所述各个子项目分别对应的代码发布参数;根据所述各个子项目分别对应的代码发布参数确定所述各个子项目分别对应的提交地址;根据所述各个子项目分别对应的提交地址发送所述组件项目对应的代码合并请求。
进一步地,在获取组件项目对应的配置文件之前,还包括:根据用户身份信息以及所述组件项目向所述预设服务器发送配置信息请求;根据所述预设服务器返回的配置信息生成所述配置文件,其中,所述配置信息包括所述组件项目信息以及所述源项目信息。
进一步地,所述用户身份信息包括用户ID、身份令牌;根据所述配置文件向服务器发送所述组件项目中各个子项目分别对应的代码发布请求,包括:根据所述子项目、所述用户ID、所述身份令牌、所述组件项目信息以及所述源项目信息生成所述子项目对应的代码发布请求。
进一步地,根据所述各个子项目分别对应的代码发布参数确定所述各个子项目分别对应的提交地址,包括:根据所述子项目对应的代码发布参数以及所述用户身份信息生成所述子项目对应的提交地址。
进一步地,根据所述各个子项目分别对应的提交地址发送所述组件项目对应的代码合并请求,包括:根据所述各个子项目分别对应的提交地址获取所述各个子项目分别对应的待提交代码,以及获取所述待提交代码对应的执行动作;根据所述各个子项目分别对应的待提交代码以及所述执行动作生成合并请求Merge Request;基于所述各个子项目分别对应的提交地址发送所述Merge Request。
第二方面,本发明实施例另外提供了一种代码的合并请求发送装置,所述装置包括:第一获取单元,用于获取组件项目对应的配置文件,其中,所述配置文件包括所述组件项目对应的组件项目信息以及源项目信息;通信单元,用于根据所述配置文件向服务器发送所述组件项目中各个子项目分别对应的代码发布请求,以及接收所述预设服务器返回的与所述各个子项目分别对应的代码发布参数;确定单元,用于根据所述各个子项目分别对应的代码发布参数确定所述各个子项目分别对应的提交地址;提交单元,用于根据所述各个子项目分别对应的提交地址发送所述组件项目对应的代码合并请求。
进一步地,还包括:发送单元,用于在获取组件项目对应的配置文件之前,根据用户身份信息以及所述组件项目向所述预设服务器发送配置信息请求;第二获取单元,用于根据所述预设服务器返回的配置信息生成所述配置文件,其中,所述配置信息包括所述组件项目信息以及所述源项目信息。
进一步地,所述用户身份信息包括用户ID、身份令牌;所述通信单元包括:第一处理模块,用于根据所述子项目、所述用户ID、所述身份令牌、所述组件项目信息以及所述源项目信息生成所述子项目对应的代码发布请求;通信模块,向所述预设服务器发送所述子项目对应的代码发布请求,以及接收所述预设服务器返回的代码发布响应消息;第一获取模块,用于根据所述代码发布响应消息获取所述子项目对应的代码发布参数。
进一步地,所述确定单元包括:第二处理模块,用于根据所述子项目对应的代码发布参数以及所述用户身份信息生成所述子项目对应的提交地址。
进一步地,所述提交单元包括:第二获取模块,用于根据所述各个子项目分别对应的提交地址获取所述各个子项目分别对应的待提交代码,以及获取所述待提交代码对应的执行动作;第三处理模块,用于根据所述各个子项目分别对应的待提交代码以及所述执行动作生成合并请求Merge Request;提交模块,用于基于所述各个子项目分别对应的提交地址发送所述Merge Request。
第三方面,本发明实施例另外提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前第一方面所述的代码的合并请求发送方法的步骤。
第四方面,本发明实施例另外提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前第一方面所述的代码的合并请求发送方法的步骤。
在本发明实施例中,获取组件项目对应的配置文件,其中,配置文件包括组件项目对应的组件项目信息以及源项目信息;根据配置文件向服务器发送组件项目中各个子项目分别对应的代码发布请求,以及接收预设服务器返回的与各个子项目分别对应的代码发布参数;根据各个子项目分别对应的代码发布参数确定各个子项目分别对应的提交地址;根据各个子项目分别对应的提交地址发送组件项目对应的代码合并请求。简化了软件开发过程中的对本地项目对应的代码提交操作,提升了软件的开发效率,进而解决了相关技术中提交代码的方式单一,而导致较多的代码提交场景中代码提交操作复杂且效率低的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种代码的合并请求发送方法的步骤流程图;
图2是本发明实施例中的一种代码的合并请求发送方法的具体步骤流程图;
图3是本发明实施例中的一种代码的合并请求发送装置的结构示意图;
图4是本发明实施例中的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
在介绍本发明实施例提供的一种代码的合并请求发送方法,首先对项目中各个代码仓库进行说明:
在相关技术中,现有大型项目为了提高开发效率,通常会进行子项目或模块划分,从而使多个开发人员分工合作,完成一个大型项目的开发。划分得到的各个组件项目或模块都是该大型项目的一个组成部分,在实际的应用场景中,组件项目划分出的多个子项目或模块分别对应一个或多个代码仓库,子项目或模块对应的代码存放于代码仓库中,将多个子项目或模块分别对应的代码从代码仓库中下载到本地目录,以构建对应项目。相关技术中在项目中的某个组件项目的代码发生变动时,由网页端发起合并请求Merge Request,选择组件项目中对应的项目分支进行Diff(需要获取组件项目中子项目的代码或文本,比较代码或文本的差异)并创建请求,多项目提交时,需要依次打开网页进行创建MergeRequest。通过向预设服务器发送Merge Request,以实现对代码仓库中的代码进行相应的操作。
在本发明实施例中,提出了一种代码的合并请求发送方法,获取组件项目对应的配置文件,其中,配置文件包括组件项目对应的组件项目信息以及源项目信息;根据配置文件向服务器发送组件项目中各个子项目分别对应的代码发布请求,以及接收预设服务器返回的与各个子项目分别对应的代码发布参数;根据各个子项目分别对应的代码发布参数确定各个子项目分别对应的提交地址;根据各个子项目分别对应的提交地址发送组件项目对应的代码合并请求。简化了软件开发过程中的对本地项目对应的代码提交操作,提升了软件的开发效率,进而解决了相关技术中提交代码的方式单一,而导致较多的代码提交场景中代码提交操作复杂且效率低的问题。
以下对本发明实施例中的一种代码的合并请求发送方法进行说明,参照图1,示出了本发明实施例中一种代码的合并请求发送方法的步骤流程图,该方法具体可以包括以下步骤:
步骤101,获取组件项目对应的配置文件,其中,所述配置文件包括所述组件项目对应的组件项目信息以及源项目信息。
在本实施例中,开发终端的本地项目中包括一个或多个组件项目,组件项目中又包括一个或多个子项目,每个子项目中对应一段代码,为组件项目的代码组成。具体地,组件项目用于实现应用程序的相关功能,每个组件项目中的子项目包括对应的代码。在具体地应用场景中,本地项目中对应的代码可以存储于云端服务器对应的代码库中,例如一个应用程序的代码可以存在于云端Gitlab仓库中,在云端Gitlab仓库中应用程序的代码以组件项目为组,组件项目包括多个子项目,以子项目为单位存储代码,子项目中包括相应的代码。
具体地,在本地项目中的组件项目的代码发生变动时,例如子项目中的代码发生变化,需要获取云端代码仓库中存储的对应的代码,以对本地项目中组件项目对应的代码进行更新。在本实施例中,在本地项目中组件项目的代码发生变动时,获取组件项目对应的配置文件。该配置文件中包括组件项目对应的本地项目信息以及源项目信息,例如,在一个配置文件中包括组件项目的ID以及源项目ID,或包括组件项目的地址信息以及源项目的地址信息。组件项目信息用于指示组件项目中各个子项目的代码存储位置、源项目信息用于指示组件项目中各个子项目对应的源代码存储位置。
需要说明的是,在本实施例中,配置文件是根据组件项目的项目信息预先生成的,保存在本地服务器或本地终端的数据库中,在组件项目中的代码发生变动时,需要根据组件项目中的代码生成合并请求时,从本地服务器或本地终端的数据库中获取。
还需要说明的是,本地终端和本地服务器通过通信网络与预设服务器等连接,通信网络包括但不限于局域网、广域网等。
步骤102,根据配置文件向服务器发送组件项目中各个子项目分别对应的代码发布请求,以及接收预设服务器返回的与各个子项目分别对应的代码发布参数。
具体地,在本实施例中,在组件项目中的代码发生变动时,根据配置文件中各个子项目的源项目信息以及组件项目信息生成代码发布请求,向预设服务器中的代码仓库发送各个子项目对应的代码发布请求,以请求代码更新组件项目中对应的代码。在一个例子中,在组件项目中某个子项目中的组件进行代码更新时,基于组件项目的配置文件向预设服务器发送各个子项目对应的代码发布请求,然后接受预设服务器返回的个子项目对应的代码发布参数,基于各个子项目对应的代码发布参数获取各个子项目对应的的Web Url(WebUniform Resource Locator,网页统一资源***),基于Web Url发送合并请求,以更新子项目中的组件项目对应的代码。需要说明的是,在组件项目中的任一个子项目的代码发生变动时,则需要从预设服务器中发送该组件项目中全部子项目对应的代码发布请求,以对该组件项目中的全部子项目进行代码更新。
步骤103,根据各个子项目分别对应的代码发布参数确定各个子项目分别对应的提交地址;
步骤104,根据各个子项目分别对应的提交地址发送组件项目对应的代码合并请求。
具体地,在本实施例中,基于配置文件中的组件项目信息以及源项目信息生成代码发布请求,在代码发布请求中携带有本地终端的身份信息以及需要进行代码合并的组件项目信息,例如组件项目对应的组件项目ID以及源项目ID。预设服务器在接收到代码发布请求之后,对代码发布请求中的身份信息进行验证,在验证成功后基于代码发布请求中的组件项目信息以及源项目信息,返回对应的代码发布参数,即各个子项目对应的代码发布参数。本地终端根据各个子项目对应的代码发布参数确定各个子项目对应的提交地址,然后根据各个子项目对应的提交地址发送组件项目对应的代码的合并请求。
在一个例子中,获取配置文件中的target_project_id(组件项目ID)、source_project_id(源项目ID),然后由PRIVATE_TOKEN(身份信息)、source_project_id(源项目ID)、target_project_id(组件项目ID)、source_branch(源项目分支)、target_branch(子项目)、title(标题)等参数生成WEB URL(Uniform Resource Locator,统一资源***),将代码发布请求基于WEB URL发送至预设服务器,接收预设服务器返回的响应消息,根据响应消息确定组件项目中各个子项目对应的代码发布参数,然后根据由各个子项目对应的代码发布参数确定的提交地址发送Merge Request合并请求。
作为一种可选地技术方案,在本实施例中,在获取组件项目对应的配置文件之前,还包括但不限于:根据用户身份信息以及组件项目向预设服务器发送配置信息请求;根据预设服务器返回的配置信息生成配置文件,其中,配置信息包括组件项目信息以及源项目信息。
具体地,在本实施例中,配置信息请求中可以携带有组件项目编码以及源项目编码,预设服务器基于组件项目编码以及源项目编码返回对应的组件项目信息以及源项目信息。
在一个例子中,预设服务器为Gitlab,通过基于Gitlab的Merge Request工具使用命令行去完成相应地操作,通过本地终端用户提供的私人身份令牌PRIVATE_TOKEN使用Ruby语言,基于组件项目编码以及源项目编码向Gitlab请求获取target_project_id、source_project_id,在获取target_project_id以及source_project_id之后,将其保存至配置文件repo_config.rb文件中,在本地终端或者本地服务器的数据库中保存配置文件,后需不需要再次请求。
通过上述实施例,获取组件项目对应的配置文件,后续代码更新过程中不需要在网页中进行组件项目代码与云端存储的源项目代码进行对比,直接获取配置文件中的配置信息,简化了代码合并请求的操作步骤,提升了软件的开发效率。
优选地,在本实施例中,在配置信息请求中携带有本地终端或本地服务器用户的身份信息,预设服务器在接收到携带有身份信息的配置信息请求后,将该用户相关联的所有组件项目(包括源项目以及组件项目)全部返回至用户,以使用户根据与之相关联的全部项目信息生成配置文件,在后续在需要获取项目信息时直接进行配置文件的调用,不需要再次向预设服务器进行请求获取。
作为一种可选地技术方案,在本实施例中,用户身份信息包括用户ID、身份令牌,根据配置文件向服务器发送组件项目中各个子项目分别对应的代码发布请求,包括但不限于:根据子项目、用户ID、身份令牌、组件项目信息以及源项目信息生成子项目对应的代码发布请求;向预设服务器发送子项目对应的代码发布请求,以及接收预设服务器返回的代码发布响应消息;根据代码发布响应消息获取子项目对应的代码发布参数。
具体地,在一个例子中,获取配置文件中的组件项目ID target_project_id、源项目IDsource_project_id,然后由用户身份令牌PRIVATE_TOKEN、源项目IDsource_project_id、组件项目IDtarget_project_id、源项目分支source_branch、组件项目分支target_branch、标题title等参数生成组件项目中各个子项目对应的代码发布请求。预设服务器接收到代码发布请求之后,响应于各个子项目对应的代码发布请求确定各个子项目对应的代码存储位置,向请求方本地终端返回各个子项目对应的的代码发布参数,本地终端接收预设服务器返回的代码发布响应消息,从代码发布响应消息中获取各个子项目对应的代码发布参数。
作为一种可选地技术方案,在本实施例中,根据各个子项目分别对应的代码发布参数确定各个子项目分别对应的提交地址,包括但不限于:根据子项目对应的代码发布参数以及用户身份信息生成子项目对应的提交地址。
具体地,在获取到预设服务器返回的代码发布响应消息之后,获取代码发布响应消息中各个子项目分别对应的代码发布参数,根据各个子项目分别对应的代码发布参数确定各个子项目分别对应的提交地址Web Url,在本地终端中将Web Url复制到剪贴板中,基于剪贴板中的网络地址发送Merge Request合并请求。具体地,代码发布参数用于对WebUrl进行验证以及编译,以得到提交地址Web Url。
作为一种可选地技术方案,在本实施例中,根据各个子项目分别对应的提交地址发送组件项目对应的代码合并请求,包括但不限于:根据各个子项目分别对应的提交地址获取各个子项目分别对应的待提交代码,以及获取待提交代码对应的执行动作;根据各个子项目分别对应的待提交代码以及执行动作生成合并请求Merge Request;基于各个子项目分别对应的提交地址发送Merge Request。
具体地,获取各个子项目分别对应的待提交代码以及基于各个子项目分别对应的待提交代码所要执行的执行动作,执行动作包括但不限于提交commit、代替合并rebase、拉去push、存储stash以及推送push等。根据各个子项目分别对应的待提交代码以及执行动作生成合并请求Merge Request,然后将合并请求发送至提交地址。
通过本发明实施例,获取组件项目对应的配置文件,其中,配置文件包括组件项目对应的组件项目信息以及源项目信息;根据配置文件向服务器发送组件项目中各个子项目分别对应的代码发布请求,以及接收预设服务器返回的与各个子项目分别对应的代码发布参数;根据各个子项目分别对应的代码发布参数确定各个子项目分别对应的提交地址;根据各个子项目分别对应的提交地址发送组件项目对应的代码合并请求。简化了软件开发过程中的对本地项目对应的代码提交操作,提升了软件的开发效率,进而解决了相关技术中提交代码的方式单一,而导致较多的代码提交场景中代码提交操作复杂且效率低的问题。
实施例二
详细介绍本发明实施例提供的一种代码的合并请求发送方法。
参照图2,图2中示出了本发明实施例中一种代码的合并请求发送方法的具体步骤流程图,具体可以包括以下步骤:
步骤201,获取待提交代码;
步骤202,对本地终端进行初始化;
具体地,判断本地终端是否存在配置文件,若存在,则跳转至步骤2,5,若不存在,则跳转至步骤203。
步骤203,根据用户的身份信息向Gitlab服务器请求源项目信息信息以及组件项目信息;
具体地,根据用户的PRIVATE_TOKEN想服务器请求target_project_id、source_project_id。
步骤204,根据源项目信息以及组件项目信息生成配置文件;
步骤205,读取配置文件中的配置;
步骤206,根据配置文件中的配置以及用户的身份信息向Gitlab服务器发送post请求;
具体地,根据PRIVATE_TOKEN、source_project_id、target_project_id、source_branch、target_branch、title等参数生成URL,使用Ruby语言向Gitlab服务器发起post请求。
步骤207,对Gitlab服务器的响应消息进行解析,以得到提交地址Web Url。
步骤208,确定待提交代码对应的执行操作;
具体地,待提交代码对应的执行操作包括git stash、git push、git commit、gitpull等等。
步骤209,根据待提交代码对应的执行操作、待提交的代码生成代码合并请求Merge Request。
步骤210,基于Web Url发送Merge Request。
通过上述实施例,获取组件项目对应的配置文件,其中,配置文件包括组件项目对应的组件项目信息以及源项目信息;根据配置文件向服务器发送组件项目中各个子项目分别对应的代码发布请求,以及接收预设服务器返回的与各个子项目分别对应的代码发布参数;根据各个子项目分别对应的代码发布参数确定各个子项目分别对应的提交地址;根据各个子项目分别对应的提交地址发送组件项目对应的代码合并请求。简化了软件开发过程中的对本地项目对应的代码提交操作,提升了软件的开发效率,进而解决了相关技术中提交代码的方式单一,而导致较多的代码提交场景中代码提交操作复杂且效率低的问题。
实施例三
详细介绍本发明实施例提供的一种代码的合并请求发送装置。
参照图3,示出了本发明实施例中一种代码的合并请求发送装置的结构示意图。
本发明实施例的合并请求发送装置包括:第一获取单元30,通信单元32、确定单元34以及提交单元36。
下面分别详细介绍各模块的功能以及各模块之间的交互关系。
1)第一获取单元30,用于获取组件项目对应的配置文件,其中,所述配置文件包括所述组件项目对应的组件项目信息以及源项目信息;
2)通信单元32,用于根据所述配置文件向服务器发送所述组件项目中各个子项目分别对应的代码发布请求,以及接收所述预设服务器返回的与所述各个子项目分别对应的代码发布参数;
3)确定单元34,用于根据所述各个子项目分别对应的代码发布参数确定所述各个子项目分别对应的提交地址;
4)提交单元36,用于根据所述各个子项目分别对应的提交地址发送所述组件项目对应的代码合并请求。
可选地,在本实施例中,还包括:
1)发送单元,用于在获取组件项目对应的配置文件之前,根据用户身份信息以及所述组件项目向所述预设服务器发送配置信息请求;
2)第二获取单元,用于根据所述预设服务器返回的配置信息生成所述配置文件,其中,所述配置信息包括所述组件项目信息以及所述源项目信息;
可选地,在本实施例中,所述用户身份信息包括用户ID、身份令牌;
所述通信单元32包括:
1)第一处理模块,用于根据所述子项目、所述用户ID、所述身份令牌、所述组件项目信息以及所述源项目信息生成所述子项目对应的代码发布请求;
2)通信模块,向所述预设服务器发送所述子项目对应的代码发布请求,以及接收所述预设服务器返回的代码发布响应消息;
3)第一获取模块,用于根据所述代码发布响应消息获取所述子项目对应的代码发布参数。
可选地,在本实施例中,所述确定单元包括:
1)第二处理模块,用于根据所述子项目对应的代码发布参数以及所述用户身份信息生成所述子项目对应的提交地址。
可选地,在本实施例中,所述提交单元36包括:
1)第二获取模块,用于根据所述各个子项目分别对应的提交地址获取所述各个子项目分别对应的待提交代码,以及获取所述待提交代码对应的执行动作;
2)第三处理模块,用于根据所述各个子项目分别对应的待提交代码以及所述执行动作生成合并请求Merge Request;
3)提交模块,用于基于所述各个子项目分别对应的提交地址发送所述MergeRequest。
而且,在本发明实施例中,获取组件项目对应的配置文件,其中,配置文件包括组件项目对应的组件项目信息以及源项目信息;根据配置文件向服务器发送组件项目中各个子项目分别对应的代码发布请求,以及接收预设服务器返回的与各个子项目分别对应的代码发布参数;根据各个子项目分别对应的代码发布参数确定各个子项目分别对应的提交地址;根据各个子项目分别对应的提交地址发送组件项目对应的代码合并请求。简化了软件开发过程中的对本地项目对应的代码提交操作,提升了软件的开发效率,进而解决了相关技术中提交代码的方式单一,而导致较多的代码提交场景中代码提交操作复杂且效率低的问题。
实施例四
图4为实现本发明各个实施例的一种电子设备的硬件结构示意图。
该电子设备600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609、处理器610、以及电源611等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元601可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器610处理;另外,将上行的数据发送给基站。通常,射频单元601包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元601还可以通过无线通信***与网络和其他设备通信。
电子设备通过网络模块602为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元603可以将射频单元601或网络模块602接收的或者在存储器609中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元603还可以提供与电子设备600执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元603包括扬声器、蜂鸣器以及受话器等。
输入单元604用于接收音频或视频信号。输入单元604可以包括图形处理器(Graphics Processing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元606上。经图形处理器6041处理后的图像帧可以存储在存储器609(或其它存储介质)中或者经由射频单元601或网络模块602进行发送。麦克风6042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元601发送到移动通信基站的格式输出。
电子设备600还包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板6061的亮度,接近传感器可在电子设备600移动到耳边时,关闭显示面板6061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器605还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元606用于显示由用户输入的信息或提供给用户的信息。显示单元606可包括显示面板6061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板6061。
用户输入单元607可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元607包括触控面板6071以及其他输入设备6072。触控面板6071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板6071上或在触控面板6071附近的操作)。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器610,接收处理器610发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板6071。除了触控面板6071,用户输入单元607还可以包括其他输入设备6072。具体地,其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板6071可覆盖在显示面板6061上,当触控面板6071检测到在其上或附近的触摸操作后,传送给处理器610以确定触摸事件的类型,随后处理器610根据触摸事件的类型在显示面板6061上提供相应的视觉输出。虽然在图4中,触控面板6071与显示面板6061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板6071与显示面板6061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元608为外部装置与电子设备600连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元608可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备600内的一个或多个元件或者可以用于在电子设备600和外部装置之间传输数据。
存储器609可用于存储软件程序以及各种数据。存储器609可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器609可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器610是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器609内的软件程序和/或模块,以及调用存储在存储器609内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器610可包括一个或多个处理单元;优选的,处理器610可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
电子设备600还可以包括给各个部件供电的电源611(比如电池),优选的,电源611可以通过电源管理***与处理器610逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
另外,电子设备600包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供了一种电子设备,包括:处理器610,存储器609,存储在存储器609上并可在处理器610上运行的计算机程序,该计算机程序被处理器610执行时实现上述代码的合并请求发送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述代码的合并请求发送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种代码的合并请求发送方法,其特征在于,所述方法包括:
获取组件项目对应的配置文件,其中,所述配置文件包括所述组件项目对应的组件项目信息以及源项目信息;其中,所述组件项目信息用于指示组件项目中各个子项目的代码存储位置,所述源项目信息用于指示组件项目中各个子项目对应的源代码存储位置;
根据所述配置文件向预设服务器发送所述组件项目中各个子项目分别对应的代码发布请求,以及接收所述预设服务器返回的与所述各个子项目分别对应的代码发布参数;其中,所述预设服务器接收到所述代码发布请求之后,响应于所述各个子项目对应的代码发布请求确定所述各个子项目对应的代码存储位置,向请求方本地终端返回所述各个子项目对应的的代码发布参数;
根据所述各个子项目分别对应的代码发布参数确定所述各个子项目分别对应的提交地址;
根据所述各个子项目分别对应的提交地址发送所述组件项目对应的代码合并请求;
所述根据所述配置文件向预设服务器发送所述组件项目中各个子项目分别对应的代码发布请求,以及接收所述预设服务器返回的与所述各个子项目分别对应的代码发布参数,包括:
所述本地终端接收所述预设服务器返回的代码发布响应消息,从所述代码发布响应消息中获取所述各个子项目对应的代码发布参数。
2.根据权利要求1所述的方法,其特征在于,在获取组件项目对应的配置文件之前,还包括:
根据用户身份信息以及所述组件项目向所述预设服务器发送配置信息请求;
根据所述预设服务器返回的配置信息生成所述配置文件,其中,所述配置信息包括所述组件项目信息以及所述源项目信息。
3.根据权利要求2所述的方法,其特征在于,所述用户身份信息包括用户ID、身份令牌;
根据所述配置文件向预设服务器发送所述组件项目中各个子项目分别对应的代码发布请求,包括:
根据所述子项目、所述用户ID、所述身份令牌、所述组件项目信息以及所述源项目信息生成所述子项目对应的代码发布请求;
向所述预设服务器发送所述子项目对应的代码发布请求,以及接收所述预设服务器返回的代码发布响应消息;
根据所述代码发布响应消息获取所述子项目对应的代码发布参数。
4.根据权利要求3所述的方法,其特征在于,根据所述各个子项目分别对应的代码发布参数确定所述各个子项目分别对应的提交地址,包括:
根据所述子项目对应的代码发布参数以及所述用户身份信息生成所述子项目对应的提交地址。
5.根据权利要求1所述的方法,其特征在于,根据所述各个子项目分别对应的提交地址发送所述组件项目对应的代码合并请求,包括:
根据所述各个子项目分别对应的提交地址获取所述各个子项目分别对应的待提交代码,以及获取所述待提交代码对应的执行动作;
根据所述各个子项目分别对应的待提交代码以及所述执行动作生成合并请求MergeRequest;
基于所述各个子项目分别对应的提交地址发送所述Merge Request。
6.一种代码的合并请求发送装置,其特征在于,所述装置包括:
第一获取单元,用于获取组件项目对应的配置文件,其中,所述配置文件包括所述组件项目对应的组件项目信息以及源项目信息;其中,所述组件项目信息用于指示组件项目中各个子项目的代码存储位置,所述源项目信息用于指示组件项目中各个子项目对应的源代码存储位置;
通信单元,用于根据所述配置文件向预设服务器发送所述组件项目中各个子项目分别对应的代码发布请求,以及接收所述预设服务器返回的与所述各个子项目分别对应的代码发布参数;其中,所述预设服务器接收到所述代码发布请求之后,响应于所述各个子项目对应的代码发布请求确定所述各个子项目对应的代码存储位置,向请求方本地终端返回所述各个子项目对应的的代码发布参数;
确定单元,用于根据所述各个子项目分别对应的代码发布参数确定所述各个子项目分别对应的提交地址;
提交单元,用于根据所述各个子项目分别对应的提交地址发送所述组件项目对应的代码合并请求;
其中,所述通信单元,用于通过所述本地终端接收所述预设服务器返回的代码发布响应消息,从所述代码发布响应消息中获取所述各个子项目对应的代码发布参数。
7.根据权利要求6所述的装置,其特征在于,还包括:
发送单元,用于在获取组件项目对应的配置文件之前,根据用户身份信息以及所述组件项目向所述预设服务器发送配置信息请求;
第二获取单元,用于根据所述预设服务器返回的配置信息生成所述配置文件,其中,所述配置信息包括所述组件项目信息以及所述源项目信息。
8.根据权利要求7所述的装置,其特征在于,所述用户身份信息包括用户ID、身份令牌;
所述通信单元包括:
第一处理模块,用于根据所述子项目、所述用户ID、所述身份令牌、所述组件项目信息以及所述源项目信息生成所述子项目对应的代码发布请求;
通信模块,向所述预设服务器发送所述子项目对应的代码发布请求,以及接收所述预设服务器返回的代码发布响应消息;
第一获取模块,用于根据所述代码发布响应消息获取所述子项目对应的代码发布参数。
9.根据权利要求8所述的装置,其特征在于,所述确定单元包括:
第二处理模块,用于根据所述子项目对应的代码发布参数以及所述用户身份信息生成所述子项目对应的提交地址。
10.根据权利要求6所述的装置,其特征在于,所述提交单元包括:
第二获取模块,用于根据所述各个子项目分别对应的提交地址获取所述各个子项目分别对应的待提交代码,以及获取所述待提交代码对应的执行动作;
第三处理模块,用于根据所述各个子项目分别对应的待提交代码以及所述执行动作生成合并请求Merge Request;
提交模块,用于基于所述各个子项目分别对应的提交地址发送所述Merge Request。
11.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的代码的合并请求发送方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的代码的合并请求发送方法的步骤。
CN202011377151.0A 2020-11-30 2020-11-30 代码的合并请求发送方法、装置、电子设备及存储介质 Active CN112486567B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011377151.0A CN112486567B (zh) 2020-11-30 2020-11-30 代码的合并请求发送方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011377151.0A CN112486567B (zh) 2020-11-30 2020-11-30 代码的合并请求发送方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112486567A CN112486567A (zh) 2021-03-12
CN112486567B true CN112486567B (zh) 2024-06-14

Family

ID=74937806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011377151.0A Active CN112486567B (zh) 2020-11-30 2020-11-30 代码的合并请求发送方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112486567B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113126998B (zh) * 2021-04-21 2023-11-07 北京字节跳动网络技术有限公司 一种增量源码获取方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168758A (zh) * 2017-04-12 2017-09-15 北京小米移动软件有限公司 多代码库的代码编译检查方法及装置
CN111443940A (zh) * 2020-05-08 2020-07-24 南京大学 一种基于DevOps的完整软件生命周期管理方法及平台

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10769250B1 (en) * 2017-10-26 2020-09-08 Amazon Technologies, Inc. Targeted security monitoring using semantic behavioral change analysis
CN108776643B (zh) * 2018-06-04 2021-10-22 腾讯科技(武汉)有限公司 一种基于版本控制流程的目标代码合并控制方法及***
CN110727575B (zh) * 2018-07-17 2021-04-23 腾讯科技(深圳)有限公司 一种信息处理方法、***、装置、以及存储介质
CN111352649B (zh) * 2018-12-24 2023-09-22 北京嘀嘀无限科技发展有限公司 代码处理方法、装置、服务器及可读存储介质
CN111628938B (zh) * 2020-05-26 2023-06-20 抖音视界有限公司 分支合并的方法、装置、电子设备及计算机存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168758A (zh) * 2017-04-12 2017-09-15 北京小米移动软件有限公司 多代码库的代码编译检查方法及装置
CN111443940A (zh) * 2020-05-08 2020-07-24 南京大学 一种基于DevOps的完整软件生命周期管理方法及平台

Also Published As

Publication number Publication date
CN112486567A (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
CN111597542B (zh) 验证信息共享方法、装置及电子设备及存储介质
CN109739402B (zh) 快应用处理方法及终端设备
CN109857297B (zh) 信息处理方法及终端设备
CN110224920B (zh) 一种分享方法及终端设备
CN111090489B (zh) 一种信息控制方法及电子设备
CN109495638B (zh) 一种信息显示方法及终端
JP7324949B2 (ja) アプリケーション共有方法、第1電子機器及びコンピュータ可読記憶媒体
CN111143002A (zh) 一种应用分享方法、电子设备及计算机可读存储介质
CN111090529B (zh) 共享信息的方法及电子设备
CN111723843B (zh) 一种签到方法、装置、电子设备及存储介质
CN111399819B (zh) 数据生成方法、装置、电子设备及存储介质
CN112231144A (zh) 一种数据处理方法、装置及电子设备
CN111405043A (zh) 信息处理方法、装置及电子设备
CN111061446A (zh) 一种显示方法及电子设备
CN109063079B (zh) 网页标注方法及电子设备
CN111209031A (zh) 一种数据获取方法、装置、终端设备及存储介质
CN111131607A (zh) 一种信息共享方法、电子设备及计算机可读存储介质
CN112486567B (zh) 代码的合并请求发送方法、装置、电子设备及存储介质
CN111444737A (zh) 一种图形码识别方法及电子设备
CN111130995A (zh) 图像控制方法、电子设备及存储介质
CN110599158A (zh) 虚拟卡合并方法、虚拟卡合并装置及终端设备
CN110764668B (zh) 评论信息获取方法及电子设备
CN110855550B (zh) 通讯方法、电子设备和存储介质
CN110442361B (zh) 一种灰度发布方法、装置及电子设备
CN111147745B (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