CN116185379B - 一种对代码托管平台进行优化的方法 - Google Patents

一种对代码托管平台进行优化的方法 Download PDF

Info

Publication number
CN116185379B
CN116185379B CN202211437522.9A CN202211437522A CN116185379B CN 116185379 B CN116185379 B CN 116185379B CN 202211437522 A CN202211437522 A CN 202211437522A CN 116185379 B CN116185379 B CN 116185379B
Authority
CN
China
Prior art keywords
code
user
hosting platform
information
library
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
CN202211437522.9A
Other languages
English (en)
Other versions
CN116185379A (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.)
Beijing Tongtech Co Ltd
Original Assignee
Beijing Tongtech 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 Beijing Tongtech Co Ltd filed Critical Beijing Tongtech Co Ltd
Priority to CN202211437522.9A priority Critical patent/CN116185379B/zh
Publication of CN116185379A publication Critical patent/CN116185379A/zh
Application granted granted Critical
Publication of CN116185379B publication Critical patent/CN116185379B/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/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种对代码托管平台进行优化的方法,包括:利用已设定的爬虫程序收集网络中的代码信息,并对所述代码信息进行预处理操作,获取预处理后代码信息中的用户数据;代码托管平台将用户数据中的代码采用分库的方式存储至代码库;建立路由选择模块,用于进行代码操作时将所述代码库的变更存储到指定节点上;获取所述指定节点中的数据,并通过社区发现算法建立用户模型以及带权网络拓扑图,完成社区划分;将所述社区划分的结果及进行可视化展示,通过用户查询的方式实现代码托管平台的优化。通过对代码托管平台进行优化,可以使代码更方便、轻量的存储在代码托管平台中,并且有利于开发人员对代码托管平台的使用。

Description

一种对代码托管平台进行优化的方法
技术领域
本发明涉及计算机技术领域,具体涉及一种对代码托管平台进行优化的方法。
背景技术
随着计算机技术的发展,在大型互联网公司,软件开发越来越注重效率,基于此,一种由公共语言环境执行的代码应运而生。代码托管是同受管制的代码。托管代码应用程序可以获得公共语言、统一的代码托管应用程序行为。在托管执行环境中使用托管代码及其编译,可以避免许多典型的导致安全漏洞和不稳定程序的编程错误,同样,许多不可靠的设计也自动的被增强了安全性。
保证代码库的高可用性和安全性等储存问题的研究显得尤其重要。由于托管服务根据使用的规模不同,通常会更加的庞大复杂和难以管理,对于个人开发者可能无需关注,但对于企业而言需要一定的维护成本和开销,并且由于大量项目的编写,使得代码托管平台的运行更加繁冗、复杂。
发明内容
本发明提供,以解决现有技术中存在的上述问题。
一种代码托管平台进行优化的方法,其特征在于,包括以下步骤:
S100,利用已设定的爬虫程序收集网络中的代码信息,并对所述代码信息进行预处理操作,获取预处理后代码信息中的用户数据;
S200,代码托管平台将用户数据中的代码采用分库的方式存储至代码库;
S300,建立路由选择模块,将所述代码库的变更存储到指定节点上;
S400,获取所述指定节点中的用户数据,并通过社区发现算法建立用户模型以及带权网络拓扑图,完成社区划分;
S500,将所述社区划分的结果进行可视化展示,通过用户查询的方式实现代码托管平台的优化。
优选的,S100中,所述进行预处理操作,包括:
S101,请求访问URL,收集用户数据以及代码库信息存放至数据库中;
S102,计算用户数据参与度,排除代码库中数量小于20以及大于300的用户;
S103,将用户名用唯一的数字进行编码,并将用户数据根据编码顺序存储到文本文件中用于调用。
优选的,S300中,所述路由器选择模块,包括:
判断所述代码库的名字是否为空;
若为空,在代码库中制定路由规则,并通过代码库的名字获取代码库的路由地址;
若不为空,则说明代码库存放于数据存储单元中,获取在数据存储单元中的代码库;
使用轮询算法将客户端发来的请求依次传送到每个服务器中;
当服务器性能出现差异时,则使用代码库根据所述路由规则对服务器进行加权轮询。
优选的,S300中,所述将所述代码库的变更存储到指定节点上,包括:
获取代码库的集群,所述代码库的集群由主节点以及从属节点构成,且主节点与从属节点存储的代码库相同;
设定项目版本数据存储库为第一存储单元;
设定元数据存储库为第二存储单元;
所述第一存储单元用于存储不同修订版本的项目管理数据库,并直接访问数据库中的文件系统;
所述第二存储单元存储代码托管平台中的元数据信息,所述元数据信息包括:代码库信息、代码评审信息、版本控制分支信息以及各个用户账户信息。
优选的,S400中,包括:
S401:根据社区发现算法中模块度的波动变化,设定初始状态下各节点之间的边权;
S402:计算不同节点之间的权重,将节点集合中的用户模型进行重构,形成多维度用户模型;
S403:建立所述多维度用户模型与代码库的多种亲密度关系用于客户端对代码托管平台进行操作;
S404:对所述多种亲密度关系依据用户的使用程度的频率做出排序,并根据排序设置不同的权重值。
优选的,S402中,所述形成多维度用户模型,包括:
判断节点中的用户集合是否为空,若不为空则从中取出一个测试用户;
遍历所述多种亲密度关系,并分别建立关系集合,用于记录每种关系中所有的编程语言类型,以及与编程类语言类型对应的代码库数量;
提取测试用户的信息,判断测试用户是否有多种亲密度关系对应的数据集合,如果有,则遍历测试用户的多种亲密度关系对应的数据结合,并结合测试用户对应的编程类语言计算权重值;将计算的权重值整合为多维度用户模型。
优选的,S500中,所述将所述社区划分的结果及进行可视化展示,包括:
S500中,所述将所述社区划分的结果进行可视化展示,包括:
将社区划分的结果在浏览器中进行可视化展示;
不同的社区结构赋予不同的颜色标记,并通过颜色标记查看所述网络拓扑图的节点数、边数、社区结构个数以及模块度值;
具有相似编程特点的用户划分在同一社区,代码托管平台根据当前用户的使用需求为用户推荐代码库。
优选的,所述代码托管平台根据当前用户使用需求推荐代码库,包括:
查询用户的代码库信息,在用户页面显示与用户相关的代码库信息,用鼠标点击可以直接访问对应网站上的代码库;
为用户推荐社区划分后当前用户所在社区的其他用户信息;
为用户推荐社区划分后与当前用户同一社区其他用户所关注的代码库。
优选的,一种代码托管平台进行优化的方法,其特征在于,还包括:
S600,当代码托管平台收到用户对代码库发出的回调请求时,代码托管平台响应用户发出的回调请求,并查询用户当前所需的代码库;
S700,代码托管平台中的事件提交模块获取回调请求中的用户代码,并对用户代码进行镜像构建;获取镜像构建后用户代码对应的版本号,并将所有用户代码对应的版本号集合保存并放至存储装置中,对存储装置中的用户代码进行测试用例处理。
优选的,S700中,所述对存储装置中的用户代码进行测试用例处理,包括:
在用户代码提交客户端与代码托管平台之间添加需求建立模块;
代码托管平台获取所述镜像构建中的用户代码,并通过所述需求建立模块查询出本次代码开发的相关需求,并将相关需求信息填入提交日志信息中;
获取所述提交日志信息,并按日志信息中的相关需求自动建立测试用例,将建立完成的测试用例返还至客户端,用于用户测试执行。
与现有技术相比,本发明具有以下优点:
本发明提供,将代码平台进行优化弥补了许多开发使用者对平台使用上手慢的问题,对软件开发具有举足轻重的作用,在很大程度上保证程序开发的同时,还使异域的团队成员可以同步开发,不至于影响进步,从而提高了开发效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种对代码托管平台进行优化的方法步骤图;
图2为本发明实施例中代码托管平台中路由选择模块的执行流程图;
图3为本发明实施例中代码托管平台中用户操作的权重分配的步骤图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
参照图1,本发明实施例提供了一种对代码托管平台进行优化的方法,其特征在于,包括:
S100,利用已设定的爬虫程序收集网络中的代码信息,并对所述代码信息进行预处理操作,获取预处理后代码信息中的用户数据;
S200,代码托管平台将用户数据中的代码采用分库的方式存储至代码库;
S300,建立路由选择模块,将所述代码库的变更存储到指定节点上;
S400,获取所述指定节点中的用户数据,并通过社区发现算法建立用户模型以及带权网络拓扑图,完成社区划分;
S500,将所述社区划分的结果进行可视化展示,通过用户查询的方式实现代码托管平台的优化。
上述技术方案的工作原理为:本实施例采用的方案是,由于网络使用者的检索目的各不相同,通过爬虫程序按照既定的规则,定向抓取网页资源,用于代码托管平台的优化;将用户数据存放至代码库,并建立路由器选择模块,所述路由器选择模块将用户数据中变更存储到指定节点中;通过对用户进行建模,并计算模型之间的权重,完成网络拓扑图的构建以及社区的划分;并基于社区划分的结果向用户进行推荐,实现社区划分结果和用户模型的可视化展示,并为用户推荐同一社区内相关的代码库信息。
上述技术方案的有益效果为:采用本实施例提供的方案,通过网络爬虫的设计与实现,使数据的检索得到更大的方便,将数据通过路由器模块存储到不同节点中,将节点中的数据用于对用户进行建模,根据社区发现算法将不同的用户数据进行划分,并给用户进行推荐,可以促进代码托管平台中具有相同编程特点的开发用户相互交流。
在另一实施例中,S100中,所述进行预处理操作,包括:
S101,请求访问URL,收集用户数据以及代码库信息存放至数据库中;
S102,计算用户数据参与度,排除代码库中数量小于20以及大于300的用户;
S103,将用户名用唯一的数字进行编码,并将用户数据根据编码顺序存储到文本文件中用于调用。
上述技术方案的工作原理为:本实施例采用的方案是,确定网络爬虫程序的爬取目标,确定所需的数据所在的固定网页;对所述爬取目标进行分析,获取数据中的url格式,并在网页中筛选过滤出有用的url,并收集url中用户信息以及代码库信息存放至数据库中,对数据库中的数据进行数据清理操作,排除相关代码库数量小于20的用户,由于他们的参与度过低,相关信息太少而无法确定用户特征;同时排除相关代码库数量大于300的用户,这些用户由于参与度过高而对用户的特性把握不准确,所以最终将数据预处理控制在用户数据为20到300之间的代码库用户。然后将用户名进行一一编排以方便调用,在进行社区划分时,可以通过数字编号找到对应的信息,最后根据数字编码存储到文本文件中。
上述技术方案的有益效果为:采用本实施例提供的方案,通过对数据进行预处理,可以更精准的实现社区划分,筛选出符合要求的用户数据,并加以编排更方便用户进行调用。
参照图2,在另一实施例中,S300中,所述路由器选择模块,包括:
判断所述代码库的名字是否为空;
若为空,在代码库中制定路由规则,并通过代码库的名字获取代码库的路由地址;
若不为空,则说明代码库存放于数据存储单元中,获取在数据存储单元中的代码库;
使用轮询算法将客户端发来的请求依次传送到每个服务器中;
当服务器性能出现差异时,则使用代码库根据所述路由规则对服务器进行加权轮询。
上述技术方案的工作原理为:本实施例采用的方案是,当代托管平台执行对代码库的相关操作时,例如发评审、合入、上传、下载等操作,这些操作调用了底层路由,在传入代码库名字时,检验代码库名字是否为空,若不为空,则不为新建的代码库,并从本地缓存中取出;若为空,则根据路由规则,存在Redis中,并获取具体的存储路径;获取存储在Redis中的代码库,当客户端发来请求时,则通过轮询算法将请求依次发送到每个服务器中,当服务器出现性能上的差异时,则根据性能上的差异,选择合适的服务器将代码库根据轮询算法给定一些权值,进行加权轮询。
上述技术方案的有益效果为:采用本实施例提供的方案,通过轮询算法可以同时处理多个任务,在轮询调度中,每个任务在有限的时间内循环轮流进行。
在另一实施例中,S300中,所述将所述代码库的变更存储到指定节点上,包括:
获取代码库的集群,所述代码库的集群由主节点以及从属节点构成,且主节点与从属节点存储的代码库相同;
设定项目版本数据存储库为第一存储单元;
设定元数据存储库为第二存储单元;
所述第一存储单元用于存储不同修订版本的项目管理数据库,并直接访问数据库中的文件系统;
所述第二存储单元存储代码托管平台中的元数据信息,所述元数据信息包括:代码库信息、代码评审信息、版本控制分支信息以及各个用户账户信息。
上述技术方案的工作原理为:本实施例采用的方案是,所述第一存储单元用于存储修订版本的Git对象数据库,并直接访问代码库的文件,代码库中的数据存储在可以通过访问的远程服务器上,并进行远程访问;所述第二存储单元中的元数据包含代码托管平台中上面需要的数据存储,例如代码库信息、代码评审信息、版本控制分支信息以及各个用户账户信息,元数据的存储通过数据库与代码审查软件进行交互,在数据库中创建用户,并为用户分配密码,创建数据库,并授予完全权限。
参照图3,在另一实施例中,S400中,包括:
S401:根据社区发现算法中模块度的波动变化,设定初始状态下各节点之间的边权;
S402:计算不同节点之间的权重,将节点集合中的用户模型进行重构,形成多维度用户模型;
S403:建立所述多维度用户模型与代码库的多种亲密度关系用于客户端对代码托管平台进行操作;
S404:对所述多种亲密度关系依据用户的使用程度的频率做出排序,并根据排序设置不同的权重值。
上述技术方案的工作原理为:本实施例采用的方案是,根据计算不同节点之间的边权,以及与用户发生关系的所有代码仓库构建多维度的用户模型,用户与代码库的多种亲密度关系为like、wait、copy、create,其中like是一种关注代码库的行为,代表了用户的兴趣,类似于将代码库的信息加入收藏列表,表示对此代码库有一定的关注,但是用户与该代码库的亲密程度较弱;wait操作则是将感兴趣的代码库加入wait列表,如果wait列表内的代码库有更新的操作,则所有信息会显示在客户端首页;copy操作则是将其他人代码库的代码克隆到自己的代码库中。可以作为子模块进行使用,并允许用户对克隆到自己代码库的代码进行修改、二次开发;create操作用于用户自己创建代码库,在用户自己创建代码库后,才能上传代码到自己的代码库中,创建的代码库可以是共有的,也可以是私有的。
为了满足社区划分的需求,对模块度的值进行了定义,公式如下:
其中,Aij表示节点i和j之间边的权重,δ是隶属函数,当节点i和j同属于一个社区时,δ(σij)=1,否则δ(σij)=0,表示在随机的情况下,节点i和j的期望值,kikj即随机的节点i与节点j,l为节点i与j之间的距离,P则代表模块度的值,在一般情况下,P的值在0.5与0.8之间说明网络结构良好。
在另一实施例中,S402中,所述形成多维度用户模型,包括:
判断节点中的用户集合是否为空,若不为空则从中取出一个测试用户;
遍历所述多种亲密度关系,并分别建立关系集合,用于记录每种关系中所有的编程语言类型,以及与编程类语言类型对应的代码库数量;
提取测试用户的信息,判断测试用户是否有多种亲密度关系对应的数据集合,如果有,则遍历测试用户的多种亲密度关系对应的数据结合,并结合测试用户对应的编程类语言计算权重值;将计算的权重值整合为多维度用户模型。
上述技术方案的工作原理为:本实施例采用的方案是,设定所述多种亲密度关系like、wait、copy、create所对应的参数分别为w1、w2、w3、w4,输入用于多维度模型建立的用户集合中,遍历上述多种亲密度关系,并建立关系集合,用于记录该关系中的编程语言类型,以及该编程语言类型对应的代码仓库数量,当取出某个用户信息的时候,判断用户是否有多种亲密度关系对应的数据结构,如果没有则跳过这个用户,如果有,则遍历该用户的四个集合,并整合四个集合的权重值,并根据权重值构建多维度用户模型。在完成多维度用户模型的构建后,遍历所有多维度用户模型的节点,并判断两节点之间是否有边,若满足条件,则计算边权重,并获取多维度用户模型的两两组合,计算组合后对应维度权重的总和,最后判断是否完成遍历操作,若完成,则输出带权网络拓扑图信息。
在判断两个用户的两节点之间是否有紧密联系时,即网络中两个节点是否有边相连,以及边权重的计算,将两个用户模型设为A与B,计算公式如下:
其中Wsum(A)为用户模型A的权重值总和,为用户模型A任一节点的权重,Wsum(B)为用户模型B的权重值总和,/>为用户模型B任一节点的权重,WAB表示用户模型A与B相同编程语言所占权重的比值。
在另一实施例中,S500中,所述将所述社区划分的结果及进行可视化展示,包括:
将社区划分的结果在浏览器中进行可视化展示;
不同的社区结构赋予不同的颜色标记,并通过颜色标记查看所述网络拓扑图的节点数、边数、社区结构个数以及模块度值;
具有相似编程特点的用户划分在同一社区,代码托管平台根据当前用户的使用需求为用户推荐代码库。
在另一实施例中,所述代码托管平台根据当前用户使用需求推荐代码库,包括:
查询用户的代码库信息,在用户页面显示与用户相关的代码库信息,用鼠标点击可以直接访问对应网站上的代码库;
为用户推荐社区划分后当前用户所在社区的其他用户信息;
为用户推荐社区划分后与当前用户同一社区其他用户所关注的代码库。
上述技术方案的工作原理为:本实施例采用的方案是,在经过社区划分算法后,所述网络拓扑图将社区进行划分,并形成结果集,点击某个结果集即可进入社区可视化页面,可视化页面中的不同颜色代表不同的社区,并包括节点数、边数、社区数和模块度值;其中,可视化页面中展示了代码托管平台中所有成员信息,并且可以通过用户名进行搜索,点击按钮可以转换为其他社区用户。客户端可以对代码托管平台进行两次查询请求,第一是查询与该用户相关的代码仓的信息,第二是请求同社区中其他用户相关代的代码库的信息,为用户推荐同社区中其他用户关注的代码库。
上述技术方案的有益效果为:采用本实施例提供的方案对社区进行划分并建立多维度用户模型,最后进行可视化展示,并给出了运行效果,可以使用户在操作代码托管平台时有更多的选择,避免了新手用户在使用平台时出现操作不熟练的情况。
在另一实施例中,一种代码托管平台进行优化的方法,其特征在于,还包括:
S600,当代码托管平台收到用户对代码库发出的回调请求时,代码托管平台响应用户发出的回调请求,并查询用户当前所需的代码库;
S700,代码托管平台中的事件提交模块获取回调请求中的用户代码,并对用户代码进行镜像构建;获取镜像构建后用户代码对应的版本号,并将所有用户代码对应的版本号集合保存并放至存储装置中,对存储装置中的用户代码进行测试用例处理。
上述技术方案的有益效果为:采用本实施例提供的方案,代码托管平台可以快速响应用户的回调请求,并支持用户查看构建部署的实时日志,在较差的网络环境中,用户依旧可以通过镜像构建的方式查看存储装置的代码,并且方便查看用户代码完成的进度和结果,从而增强用户的友好性,提升用户体验。
在另一实施例中,S700中,所述对存储装置中的用户代码进行测试用例处理,包括:
在用户代码提交客户端与代码托管平台之间添加需求建立模块;
代码托管平台获取所述镜像构建中的用户代码,并通过所述需求建立模块查询出本次代码开发的相关需求,并将相关需求信息填入提交日志信息中;
获取所述提交日志信息,并按日志信息中的相关需求自动建立测试用例,将建立完成的测试用例返还至客户端,用于用户测试执行。
上述技术方案的有益效果为:采用本实施例提供的方案,根据在客户端以及代码托管平台间添加需求建立模块,可以在代码进行开发时,从需求建立模块中及时查询出本次代码开发的相关需求,并根据代码的变更精确识别出需要执行的测试用例,最后通过获取所提交的日志信息,高效的看出本次代码开发的过程。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (7)

1.一种代码托管平台进行优化的方法,其特征在于,包括以下步骤:
S100,利用已设定的爬虫程序收集网络中的代码信息,并对所述代码信息进行预处理操作,获取预处理后代码信息中的用户数据;
S200,代码托管平台将用户数据中的代码采用分库的方式存储至代码库;
S300,建立路由选择模块,将所述代码库的变更存储到指定节点上;
S400,获取所述指定节点中的用户数据,并通过社区发现算法建立用户模型以及带权网络拓扑图,完成社区划分;
S500,将所述社区划分的结果进行可视化展示,通过用户查询的方式实现代码托管平台的优化;
S300中,所述将所述代码库的变更存储到指定节点上,包括:
获取代码库的集群,所述代码库的集群由主节点以及从属节点构成,且主节点与从属节点存储的代码库相同;
设定项目版本数据存储库为第一存储单元;
设定元数据存储库为第二存储单元;
所述第一存储单元用于存储不同修订版本的项目管理数据库,并直接访问数据库中的文件系统;
所述第二存储单元存储代码托管平台中的元数据信息,所述元数据信息包括:代码库信息、代码评审信息、版本控制分支信息以及各个用户账户信息;
S500中,所述将所述社区划分的结果进行可视化展示,包括:
将社区划分的结果在浏览器中进行可视化展示;
不同的社区结构赋予不同的颜色标记,并通过颜色标记查看所述网络拓扑图的节点数、边数、社区结构个数以及模块度值;
具有相似编程特点的用户划分在同一社区,代码托管平台根据当前用户的使用需求为用户推荐代码库;
所述代码托管平台根据当前用户使用需求推荐代码库,包括:
查询用户的代码库信息,在用户页面显示与用户相关的代码库信息,用鼠标点击直接访问对应网站上的代码库;
为用户推荐社区划分后当前用户所在社区的其他用户信息;
为用户推荐社区划分后与当前用户同一社区其他用户所关注的代码库。
2.根据权利要求1所述的一种代码托管平台进行优化的方法,其特征在于,S100中,所述进行预处理操作,包括:
S101,请求访问URL,收集用户数据以及代码库信息存放至数据库中;
S102,计算用户数据参与度,排除代码库中数量小于20以及大于300的用户;
S103,将用户名用唯一的数字进行编码,并将用户数据根据编码顺序存储到文本文件中用于调用。
3.根据权利要求1所述的一种代码托管平台进行优化的方法,其特征在于,S300中,所述路由选择模块,包括:
判断所述代码库的名字是否为空;
若为空,在代码库中制定路由规则,并通过代码库的名字获取代码库的路由地址;
若不为空,则说明代码库存放于数据存储单元中,获取在数据存储单元中的代码库;
使用轮询算法将客户端发来的请求依次传送到每个服务器中;
当服务器性能出现差异时,则使用代码库根据所述路由规则对服务器进行加权轮询。
4.根据权利要求1所述的一种代码托管平台进行优化的方法,其特征在于,S400中,包括:
S401:根据社区发现算法中模块度的波动变化,设定初始状态下各节点之间的边权;
S402:计算不同节点之间的权重,将节点集合中的用户模型进行重构,形成多维度用户模型;
S403:建立所述多维度用户模型与代码库的多种亲密度关系用于客户端对代码托管平台进行操作;
S404:对所述多种亲密度关系依据用户的使用程度的频率做出排序,并根据排序设置不同的权重值。
5.根据权利要求4所述的一种代码托管平台进行优化的方法,其特征在于,S402中,所述形成多维度用户模型,包括:
判断节点中的用户集合是否为空,若不为空则从中取出一个测试用户;
遍历所述多种亲密度关系,并分别建立关系集合,用于记录每种关系中所有的编程语言类型,以及与编程类语言类型对应的代码库数量;
提取测试用户的信息,判断测试用户是否有多种亲密度关系对应的数据集合,如果有,则遍历测试用户的多种亲密度关系对应的数据结合,并结合测试用户对应的编程类语言计算权重值;将计算的权重值整合为多维度用户模型。
6.根据权利要求1所述的一种代码托管平台进行优化的方法,其特征在于,还包括:
S600,当代码托管平台收到用户对代码库发出的回调请求时,代码托管平台响应用户发出的回调请求,并查询用户当前所需的代码库;
S700,代码托管平台中的事件提交模块获取回调请求中的用户代码,并对用户代码进行镜像构建;获取镜像构建后用户代码对应的版本号,并将所有用户代码对应的版本号集合保存并放至存储装置中,对存储装置中的用户代码进行测试用例处理。
7.根据权利要求6所述的一种代码托管平台进行优化的方法,其特征在于,S700中,所述对存储装置中的用户代码进行测试用例处理,包括:
在用户代码提交客户端与代码托管平台之间添加需求建立模块;
代码托管平台获取所述镜像构建中的用户代码,并通过所述需求建立模块查询出本次代码开发的相关需求,并将相关需求信息填入提交日志信息中;
获取所述提交日志信息,并按日志信息中的相关需求自动建立测试用例,将建立完成的测试用例返还至客户端,用于用户测试执行。
CN202211437522.9A 2022-11-17 2022-11-17 一种对代码托管平台进行优化的方法 Active CN116185379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211437522.9A CN116185379B (zh) 2022-11-17 2022-11-17 一种对代码托管平台进行优化的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211437522.9A CN116185379B (zh) 2022-11-17 2022-11-17 一种对代码托管平台进行优化的方法

Publications (2)

Publication Number Publication Date
CN116185379A CN116185379A (zh) 2023-05-30
CN116185379B true CN116185379B (zh) 2023-09-22

Family

ID=86437118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211437522.9A Active CN116185379B (zh) 2022-11-17 2022-11-17 一种对代码托管平台进行优化的方法

Country Status (1)

Country Link
CN (1) CN116185379B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2803461A1 (fr) * 1999-12-31 2001-07-06 Ge Medical Tech Serv Procede et dispositif pour la gestion de groupes dans l'entretien de services distants
WO2009098739A1 (ja) * 2008-02-05 2009-08-13 Panasonic Corporation プログラム最適化装置およびプログラム最適化方法
CN102760151A (zh) * 2012-04-05 2012-10-31 中国人民解放军国防科学技术大学 开源软件获取与搜索系统的实现方法
WO2015159131A1 (en) * 2014-04-17 2015-10-22 Yogesh Chunilal Rathod Platform for enabling integrating, accessing, hosting & executing of source codes of 3rd parties and sharing associate generated revenue
CN105915602A (zh) * 2016-04-13 2016-08-31 华南理工大学 基于社区检测算法p2p网络的调度方法及其系统
CN108073710A (zh) * 2017-12-21 2018-05-25 儒安科技有限公司 基于动态网络图挖掘的Github开源代码库推荐系统
CN109344230A (zh) * 2018-10-31 2019-02-15 任志颖 代码库文件生成、代码搜索、联结、优化以及移植方法
CN110610434A (zh) * 2019-09-04 2019-12-24 成都威嘉软件有限公司 基于人工智能的社区发现方法
CN112051986A (zh) * 2020-08-26 2020-12-08 西安电子科技大学 基于开源知识的代码搜索推荐装置及方法
CN112115376A (zh) * 2020-08-31 2020-12-22 南京航空航天大学 一种面向开源社区开发者的画像构建方法
CN112800430A (zh) * 2021-02-01 2021-05-14 苏州棱镜七彩信息科技有限公司 适用于开源组件的安全与合规治理方法
CN113342331A (zh) * 2021-05-21 2021-09-03 武汉大学 一种面向生态的软件服务系统演化分析方法
CN114637912A (zh) * 2022-03-08 2022-06-17 浙江工商大学 位置社交网络中的基于高覆盖性社区发现的朋友推荐方法及装置
CN115033867A (zh) * 2022-06-07 2022-09-09 北京大学深圳研究生院 一种基于代码云托管平台联合协作的竞赛平台管理方法
US11487538B1 (en) * 2021-01-20 2022-11-01 Two Six Labs, LLC Software repository recommendation engine

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140194209A1 (en) * 2013-01-08 2014-07-10 Polyxeni Ziouvelou Platforms for community game development and community management of game lifecycle
US9678746B2 (en) * 2014-07-31 2017-06-13 International Business Machines Corporation Coding convention discovery and enforcement
US10455002B2 (en) * 2015-10-29 2019-10-22 Tharmalingam Satkunarajah Apparatus and method for generating customizable software based networking platforms
US20170206276A1 (en) * 2016-01-14 2017-07-20 Iddo Gill Large Scale Recommendation Engine Based on User Tastes
CN106503558B (zh) * 2016-11-18 2019-02-19 四川大学 一种基于社团结构分析的Android恶意代码检测方法
US10628138B2 (en) * 2018-02-09 2020-04-21 International Business Machines Corporation Automated management of undesired code use based on predicted valuation and risk analysis
US10754645B2 (en) * 2018-03-02 2020-08-25 Microsoft Technology Licensing, Llc Displaying results of a codebase analysis service
US11194553B2 (en) * 2019-09-17 2021-12-07 International Business Machines Corporation Identifying and recommending code snippets to be reused by software developer
US11275579B2 (en) * 2020-05-14 2022-03-15 Bank Of America Corporation Discovery and authorization optimization of GIT based repositories

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2803461A1 (fr) * 1999-12-31 2001-07-06 Ge Medical Tech Serv Procede et dispositif pour la gestion de groupes dans l'entretien de services distants
WO2009098739A1 (ja) * 2008-02-05 2009-08-13 Panasonic Corporation プログラム最適化装置およびプログラム最適化方法
CN102760151A (zh) * 2012-04-05 2012-10-31 中国人民解放军国防科学技术大学 开源软件获取与搜索系统的实现方法
WO2015159131A1 (en) * 2014-04-17 2015-10-22 Yogesh Chunilal Rathod Platform for enabling integrating, accessing, hosting & executing of source codes of 3rd parties and sharing associate generated revenue
CN105915602A (zh) * 2016-04-13 2016-08-31 华南理工大学 基于社区检测算法p2p网络的调度方法及其系统
CN108073710A (zh) * 2017-12-21 2018-05-25 儒安科技有限公司 基于动态网络图挖掘的Github开源代码库推荐系统
CN109344230A (zh) * 2018-10-31 2019-02-15 任志颖 代码库文件生成、代码搜索、联结、优化以及移植方法
CN110610434A (zh) * 2019-09-04 2019-12-24 成都威嘉软件有限公司 基于人工智能的社区发现方法
CN112051986A (zh) * 2020-08-26 2020-12-08 西安电子科技大学 基于开源知识的代码搜索推荐装置及方法
CN112115376A (zh) * 2020-08-31 2020-12-22 南京航空航天大学 一种面向开源社区开发者的画像构建方法
US11487538B1 (en) * 2021-01-20 2022-11-01 Two Six Labs, LLC Software repository recommendation engine
CN112800430A (zh) * 2021-02-01 2021-05-14 苏州棱镜七彩信息科技有限公司 适用于开源组件的安全与合规治理方法
CN113342331A (zh) * 2021-05-21 2021-09-03 武汉大学 一种面向生态的软件服务系统演化分析方法
CN114637912A (zh) * 2022-03-08 2022-06-17 浙江工商大学 位置社交网络中的基于高覆盖性社区发现的朋友推荐方法及装置
CN115033867A (zh) * 2022-06-07 2022-09-09 北京大学深圳研究生院 一种基于代码云托管平台联合协作的竞赛平台管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Git的代码托管平台JLUCODE;侯效永;李良伟;孙召;宋春雨;杨昊;韩霄松;;计算机时代(第12期);全文 *
软件历史代码库词库自动构建技术及实现;孙伟松;孙小兵;李斌;杨辉;;中国科学技术大学学报(第01期);全文 *

Also Published As

Publication number Publication date
CN116185379A (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
US6038668A (en) System, method, and medium for retrieving, organizing, and utilizing networked data
US10732953B2 (en) Systems and methods for using graphs for application updates
JP5230421B2 (ja) 集合の類似性に基づく拡張性に富むユーザクラスタリング
Peng Internet GIS for public participation
US6694482B1 (en) System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system
CN100573528C (zh) 数字博物馆网格及其构造方法
US9195648B2 (en) Multi-lingual knowledge base
US6882988B2 (en) System and method for time-efficient distributed search and decision-making using cooperative co-evolutionary algorithms executing in a distributed multi-agent architecture
US20020091923A1 (en) System, method, and medium for retrieving, organizing, and utilizing networked data using databases
CN102200996B (zh) 对动态报告进行解析和索引
US20060129261A1 (en) System for aiding the design of product configuration
Sadigh et al. An ontology-based multi-agent virtual enterprise system (OMAVE): part 1: domain model l ing and rule management
Zuo et al. A reputation-based model for mobile agent migration for information search and retrieval
US20060074843A1 (en) World wide web directory for providing live links
CN108280178A (zh) 一种多平台的空间信息资源协同共享方法
Chen et al. A digital equipment identifier system
Dong et al. A human-centered semantic service platform for the digital ecosystems environment
Yen et al. LONET: an interactive search network for intelligent lecture path generation
US7650571B2 (en) Smart links and dynamic favorites
CN116185379B (zh) 一种对代码托管平台进行优化的方法
KR20010091506A (ko) 인터넷 웹사이트 검색엔진의 구축방법
Nocera et al. MoSAIC: A middleware-induced software archIteCture design decision support system
KR100261272B1 (ko) 인터넷 웹 환경에서 3차원 가상공간 동적구성방법
EP3537350A1 (en) Method and system for customized transfer of data
CN1493981A (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