Software repository management method and system, electronic equipment, storage medium and program product

By establishing a combined warehouse in multiple warehouses and setting priority order, the problem of warehouse maintenance complexity and version conflicts is solved, and the orderly matching and accurate download of software packages are achieved.

CN120276756AActive Publication Date: 2025-07-08ALIBABA CLOUD COMPUTING CO LTD
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
CN202510765619.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-10
Publication Date
2025-07-08
Estimated Expiration
2045-06-10

AI Technical Summary

Technical Problem

In the management of multiple software warehouses, warehouse maintenance is complex and the dependency resolution is incomplete, resulting in version conflicts and download errors.

Method used

By establishing a combined warehouse, setting the priority order of multiple software warehouses, matching the target software packages from the combined warehouse according to the priority, ensuring the orderliness and accuracy of the download process.

Benefits of technology

Reduces the complexity of warehouse maintenance, avoids version conflicts, and ensures the orderliness and accuracy of the download process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120276756A_ABST
    Figure CN120276756A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a software repository management method and system, electronic equipment, a storage medium and a program product, and relates to the technical field of computers.The method comprises the steps that a downloading request sent by a client side is received, and the downloading request is used for requesting to download a target software package; in response to the fact that the target software package is located in the combined warehouse, the target software package is matched from the multiple software warehouses according to the priority sequence of the multiple software warehouses in the combined warehouse, the multiple software warehouses have the incidence relation, and any software warehouse comprises at least one software package; and sending the target software package to a client. According to the technical scheme, the complexity of maintaining the software repository can be reduced, the orderliness of the software package matching process is guaranteed, and the problems of version conflicts and the like are avoided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technologies, and in particular, to a software repository management method, system, electronic device, storage medium, and program product, which can be applied to the field of software management technologies. Background Art

[0002] With the continuous increase in enterprise self-developed applications, using multiple software repositories to manage software packages for each application has become one of the mainstream management methods for software packages. Currently, in the process of using multiple software repositories to manage software packages, the multiple software repositories are independently maintained, so the complexity of repository maintenance is relatively high. Moreover, the management of dependency resolution is not perfect, and different users may download software packages with the same package name but different contents, resulting in errors during runtime, that is, there are problems such as version conflicts. Summary of the Invention

[0003] Embodiments of this application provide a software repository management method, system, electronic device, storage medium, and program product to alleviate or solve one or more technical problems existing in the prior art.

[0004] In a first aspect, embodiments of this application provide a software repository management method, and the method includes: receiving a download request sent by a client, where the download request is used to request to download a target software package; in response to the target software package being located in a combined repository, matching the target software package from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository, where the multiple software repositories have an association relationship, and any software repository includes at least one software package; sending the target software package to the client.

[0005] In a second aspect, embodiments of this application provide a software repository management method, and the method includes: in response to a download instruction for a target software package, sending a download request to a server, where the download request is used to request to download the target software package; receiving the target software package sent by the server, where the target software package is matched by the server from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository in response to the target software package being located in the combined repository, the multiple software repositories have an association relationship, and any software repository includes at least one software package.

[0006] In a third aspect, an embodiment of the present application provides a software repository management system, which includes: a client for sending a download request to a server in response to a download instruction for a target software and receiving the target software sent by the server; the server for obtaining the target software package from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository when it is determined that the target software package to be downloaded is located in the combined repository according to the download request; and sending the target software package to the client.

[0007] In a fourth aspect, an embodiment of the present application provides an electronic device, including a memory, a processor, and a computer program stored on the memory. The processor implements the method according to any one of the embodiments of the present application when executing the computer program.

[0008] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium with a computer program stored therein. The computer program implements the method according to any one of the embodiments of the present application when executed by a processor.

[0009] In a sixth aspect, an embodiment of the present application provides a computer program product, including a computer program that implements the method according to any one of the embodiments of the present application when executed by a processor.

[0010] In the software repository management method provided by the embodiment of the present application, by setting up a combined repository, it is only necessary to maintain the combined repository, and there is no need to maintain each software repository in the combined repository one by one. Therefore, the complexity of repository maintenance is reduced. By setting the priorities of the multiple software repositories in the combined repository, the target software package required for download by the client can be matched from the multiple software repositories according to the priorities, ensuring the orderliness of the matching process. Since the matching process is orderly, for different download requests for the same target software package, the same matching order is followed for matching, ensuring that the same software package is matched for different download requests, rather than different software packages with version conflicts. That is, problems such as version conflicts can be avoided in the combined repository.

[0011] The above description is only an overview of the technical solution of the present application. In order to understand the technical means of the present application more clearly, it can be implemented according to the content of the specification. And in order to make the above and other purposes, features, and advantages of the present application more obvious and understandable, the specific embodiments of the present application are hereinafter specifically described. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] In the drawings, unless otherwise specified, the same reference numerals throughout the multiple drawings denote the same or similar components or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings only depict some embodiments according to the present application and should not be regarded as limiting the scope of the present application.

[0013] Figure 1 Shows a schematic diagram of the composition of the software repository management system provided by the embodiments of the present application; Figure 2 Shows a schematic diagram of the composition of the management application provided by the embodiments of the present application; Figure 3 Shows a schematic diagram of the functions of the server provided by the embodiments of the present application; Figure 4 Shows the first flowchart of the software repository management method provided by the embodiments of the present application; Figure 5 Shows a schematic diagram of matching a target software package provided by the embodiments of the present application; Figure 6 Shows a schematic diagram of the management of a private type of software repository provided by the embodiments of the present application; Figure 7 Shows a schematic diagram of the management of a proxy type of software repository provided by the embodiments of the present application; Figure 8 Shows the second flowchart of the software repository management method provided by the embodiments of the present application; Figure 9 Shows the first schematic diagram of the composition of the software repository management device provided by the embodiments of the present application; Figure 10 Shows the second schematic diagram of the composition of the software repository management device provided by the embodiments of the present application; Figure 11 Shows a block diagram of the electronic device provided by the embodiments of the present application. Detailed implementation manners

[0014] In the following, only some exemplary embodiments are briefly described. As those skilled in the art can recognize, the described embodiments can be modified in various different ways without departing from the concept or scope of the present application. Therefore, the drawings and the description are considered to be exemplary in nature and not restrictive.

[0015] To facilitate the understanding of the technical solutions of the embodiments of the present application, the related technologies of the embodiments of the present application are described below. The following related technologies can be combined arbitrarily with the technical solutions of the embodiments of the present application as optional solutions, and they all fall within the protection scope of the embodiments of the present application.

[0016] The following terms will be used hereinafter: Python Package Index (PyPI for short): It can also be called the PyPI repository, which is a repository for storing and distributing custom Python packages within an enterprise and can effectively manage the use and distribution of enterprise-level packages.

[0017] Dependency resolution: Resolve the dependencies of the project on different package versions to ensure compatibility between each package.

[0018] Priority management: When there are multiple software repositories, prioritize the software repositories to determine the order of package dependency resolution and installation.

[0019] With the widespread use of Python in enterprise applications, the demand for Python package management is increasing. Although the traditional PyPI repository provides rich package resources, the following problems still exist in its internal enterprise use: In the process of managing software packages using multiple software repositories, the multiple software repositories are independently maintained, so the complexity of repository maintenance is relatively high. And the management of dependency resolution is not perfect. Since there may be software packages with the same name but different contents in different software repositories, it may cause different users to download software packages with the same name but different contents, resulting in runtime errors, that is, there are problems such as version conflicts. Exemplarily, both software repository 1 and software repository 2 contain a software package named 123. However, the software package named 123 in software repository 2 fixes the vulnerability existing in the software package named 123 in software repository 1. Therefore, the content of the software package named 123 in software repository 1 is different from the content of the software package named 123 in software repository 2. However, due to the imperfect dependency resolution, that is, there is no constraint on the parsing order, users may download the software package named 123 from software repository 1, resulting in an error due to the vulnerability at runtime.

[0020] Based on this, the embodiments of the present application provide a software repository management method, an electronic device, a storage medium, and a program product, aiming to reduce the complexity of maintaining software repositories, ensure the orderliness of the software package matching process, and avoid problems such as version conflicts. Figure 1 The figure shows a schematic diagram of a software repository management system provided by an embodiment of the present application, as Figure 1 shown, the system may include a client and a server.

[0021] Exemplarily, the client may be a terminal device such as a mobile phone, a tablet computer, a desktop computer, a portable notebook, etc. The server may be a physical server or a cloud server, etc. Figure 1 In the figure, the client is a desktop computer and the server is a physical server as an example for schematic illustration.

[0022] A software repository management application may be configured in the client. The management application may be an independent application (Application, abbreviated as App), or a small program embedded in other application programs, or a web application, etc. As Figure 2As shown, the management application may include an interface module and an operation interface.

[0023] The interface module may include an upload interface, a download interface, a user management interface, a warehouse management interface, a permission management interface, etc. Among them, the upload interface is used to request uploading a software package to the corresponding software warehouse, or requesting to upload the test results of the software package, etc. The download interface is used to request downloading a software package from the software warehouse. The user management interface is used to request adding users, deleting users, etc. The warehouse management interface is used to request creating a software warehouse, updating a software warehouse, deleting a software warehouse, etc. The permission management interface is used to request configuring the upload permissions, download permissions, access permissions to the interface and the interface, user management permissions, warehouse management permissions, etc. of users.

[0024] The operation interface includes a user management module, a warehouse management module, a namespace management module, a permission management module, a software package management module, etc. Among them, the user management module is used for users with user management permissions (such as administrators, project managers, etc.) to edit the attributes of target users, request to add users through the aforementioned user management interface, or request to delete users, etc. The attributes of users include at least one of user roles, user groups where the users are located, etc. The warehouse management module is used for users with warehouse management permissions to edit the attributes of the target software warehouse, request to create a software warehouse, update a software warehouse, or delete a software warehouse, etc. through the aforementioned warehouse management interface. The attributes of the target software warehouse may include at least one of the warehouse name, warehouse type, namespace associated with the warehouse, etc. The warehouse type may include a private type and an agent type. The private type of software warehouse is used to store customized software packages, and the agent type of software warehouse is used to store software packages downloaded from the associated website. The namespace management module is used to edit namespaces to request adding namespaces, deleting namespaces, etc. The namespace can be used as the prefix of the URL (Uniform Resource Locator) of the software warehouse, and the warehouse name of the software warehouse can be used as the suffix of the URL of the software warehouse, that is, the URL of the software warehouse includes the namespace and the warehouse name of the software warehouse. The permission management module is used to edit the upload permissions, download permissions, access permissions to the interface and the interface, etc. of users. The software package management module is used to provide a browser index of software packages so that users can view software packages or download software packages, etc. in the browser interface, and is also used for users to upload software packages to be stored, etc. It should be noted that Figure 2 For illustration only and not for limitation, in actual applications, the operation interface may include more or fewer modules, the management application may include more or fewer interfaces, and the functions of some modules can also be combined into the same module. Exemplarily, the user management module may include permission management functions, etc.

[0025] The server is used to manage multiple software repositories, and each software repository contains at least one software package. At least two software repositories with an association relationship can form a combined repository, and the association relationship can be associating the same project, associating the same product, etc. Correspondingly, with the composition of the foregoing management application, as Figure 3 shown, the server's management of software repositories can include the management of private-type software repositories (including creation, deletion, update, etc.), the management of proxy-type software repositories (including creation, deletion, update, etc.), user management (including user attributes, user permissions, etc.), priority management (i.e., managing the priorities among multiple software repositories in a combined repository), etc.

[0026] The server and the client can communicate over the network. When receiving a download request for a target software package sent by the client, in response to the target software package being located in the combined repository, the server matches the target software package from multiple software repositories in the combined repository according to the priority order of the multiple software repositories in the combined repository, and sends the target software package to the client. For other management of software repositories by the server, refer to the relevant descriptions in the following text, and the repeated parts will not be elaborated here.

[0027] It can be seen that by setting up a combined repository, it is only necessary to maintain the combined repository, rather than maintaining each software repository in the combined repository one by one, thus reducing the complexity of repository maintenance. By setting the priorities of multiple software repositories in the combined repository, the target software package required to be downloaded by the client can be matched from the multiple software repositories according to the priority, ensuring the orderliness of the matching process. Since the matching process is orderly, for different download requests for the same target software package, the same matching order is used for matching, ensuring that the same software package is matched for different download requests, rather than different software packages with version conflicts, that is, problems such as version conflicts can be avoided in the combined repository.

[0028] It should be noted that the above application scenarios or application examples provided in the embodiments of the present application are for easy understanding, and the embodiments of the present application do not specifically limit the application of the technical solutions. In addition, the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application are all information and data authorized by the user or fully authorized by all parties. And the collection, use, and processing of relevant data need to comply with the relevant laws, regulations, and standards of relevant countries and regions, and corresponding operation entrances are provided for users to choose to authorize or refuse.

[0029] The following uses specific embodiments to elaborate in detail on the technical solution of this application and how the technical solution of this application solves the aforementioned technical problems. The several specific embodiments listed can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The following will describe the embodiments of this application in detail with reference to the accompanying drawings.

[0030] Figure 4 The flowchart of the chart display method according to the embodiment of this application is shown, and this method can be applied to Figure 1 the server shown, such as Figure 4 shown, and this method can include step S401, step S402, and step S403.

[0031] Step S401: Receive the download request sent by the client, where the download request is used to request to download the target software package.

[0032] In some implementation manners, when the user has a download requirement for the target software package, the software repository management application configured in the client can be operated to edit the information of the target software package and input a download instruction. Correspondingly, the client responds to the download instruction input by the user and sends a download request to the server according to the information of the target software package. The server receives the download request sent by the client.

[0033] In some implementation manners, the operation interface of the management application includes a graphical user interface (Graphical User Interface, GUI). Correspondingly, the user can operate the graphical user interface to manually input the information of the target software package, or can select the information of the target software package from a drop-down list, etc. Inputting the download instruction can be to operate (such as clicking, double-clicking, etc.) the download control or operate the download link matching the target software package displayed on the graphical user interface. Among them, the download control and the download link are associated with the aforementioned download interface.

[0034] In some other implementation manners, the operation interface of the management application includes a command-line interface (Command-Line Interface, CLI). Correspondingly, the user can operate the command-line interface to edit the download instruction, and the parameters of the download instruction include the information of the target software package, etc.

[0035] Step S402: In response to the target software package being located in the combined repository, match the target software package from multiple software repositories according to the priority order of the multiple software repositories in the combined repository, where the multiple software repositories have an association relationship, and any software repository includes at least one software package.

[0036] In order to reduce the difficulty of software repository management and avoid problems such as version conflicts, in the embodiments of the present application, multiple software repositories with an associated relationship can be divided into a combined repository, and the priorities of multiple software repositories in the combined repository can be preset in advance. When the server determines that the target software package is located in the combined repository according to the download request, the target software package is matched from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository.

[0037] Step S403: Send the target software package to the client.

[0038] Thus, by setting up a combined repository, it is only necessary to maintain the combined repository, rather than maintaining each software repository in the combined repository one by one, thereby reducing the complexity of repository maintenance. By setting the priorities of multiple software repositories in the combined repository, the target software package to be downloaded by the client can be matched from the multiple software repositories according to the priorities, ensuring the orderliness of the matching process. Since the matching process is orderly, for different download requests for the same target software package, the same matching order is used for matching, ensuring that the same software package is matched for different download requests, rather than different software packages with version conflicts, that is, problems such as version conflicts can be avoided in the combined repository.

[0039] In order to efficiently manage software packages and achieve fast download of software packages, in some embodiments, multiple software repositories in the combined repository can include a private type of software repository and a proxy type of software repository. Among them, the priority of the private type of software repository is higher than the priority of the proxy type of software repository. The private type of software repository is used to store customized software packages and has environmental attributes and editing attributes, and the proxy type of software repository is used to store software packages downloaded from associated websites.

[0040] The customized software package can be a software package developed independently by an enterprise. That is to say, during the process of developing a project, enterprise employees can upload the written software package to a software repository of the private type. Considering that in actual applications, some projects of an enterprise may depend on software packages outside the enterprise. Based on this, in order to facilitate the acquisition of such external software packages, a proxy-type software repository can also be created, and the original software package downloaded from the associated website can be stored in the proxy-type software repository, or the software package after rewriting the original software package can be stored in the proxy-type software repository. Among them, the associated website can be an official website, other publicly available download websites on the Internet, etc. When matching the target software package from the combined repository, the target software package is preferentially matched from the software repository of the private type, and when the software repository of the private type does not contain the target software package, the target software package is then matched from the software repository of the proxy type. Thus, it can not only ensure the orderliness of dependency resolution, but also ensure the accuracy of the matched target software package. At the same time, since there is no need to search the associated website during the matching process, the matching efficiency can be improved.

[0041] Further, in the case where the software repository containing the target software package is a proxy-type software repository, in order to facilitate the subsequent evaluation of the quality of the software package in the target software repository, in some embodiments, after step S403, it may further include: generating a download record of the target software package.

[0042] To ensure the secure access to the target software package, in some embodiments, the download request includes the client identifier of the client. Correspondingly, obtaining the target software package from multiple software repositories according to the priority order of multiple software repositories in the combined repository in step S402 may include: querying the permission information of the client according to the client identifier; and when the permission information indicates that the client has the software download permission for the combined repository, obtaining the target software package from multiple software repositories according to the priority order of multiple software repositories in the combined repository.

[0043] In some embodiments, the server maintains the correspondence between the client identifier and the permission information, and when it is determined that the target software package is located in the combined repository, obtains the permission information associated with the client identifier in the download request from this correspondence. If the obtained permission information indicates that the client has the download permission for this combined repository, then obtain the target software package from multiple software repositories according to the priority order of multiple software repositories in this combined repository. Among them, the client identifier can be the user's account for the management application, or the unique identifier assigned by the server when the user registers for the management application account.

[0044] Thus, by verifying whether the client has access to the combined repository where the target software package is located and, if it does, matching the target software package from the combined repository, the security of the target software package is ensured and illegal access to the target software package is avoided.

[0045] To facilitate the server in accurately determining the software repository to be matched, in some implementation manners, the download request includes the repository address corresponding to the target software package. Correspondingly, the method may further include: obtaining the target repository identifier associated with the repository address corresponding to the target software package from the association relationship between the repository address and the repository identifier; and determining that the target software package is located in the combined repository when there are multiple target repository identifiers.

[0046] In some embodiments, the user can operate the management application in their terminal device to configure the default combined repository, and the client maintains the repository address of the default combined repository. When the user needs to download a software package from a software repository other than the default combined repository, the user can edit the information of the corresponding software repository and use the information of the software repository as the repository name for description. Correspondingly, after receiving the download instruction input by the user, the client can determine whether the download instruction includes the repository name of the software repository. If the repository name is not included, the client sends a download request to the server according to the repository address of the default combined repository. If the repository name is included, the client obtains the associated repository address (which can be the repository address of an independent repository or the repository address of a repository combination other than the default combined repository) from the preset association relationship between the repository name and the repository address, and sends a download request to the server according to the repository address. After receiving the download request, the server can obtain the target repository identifier associated with the repository address in the download request from the association relationship between the repository address and the repository identifier, and determine that the target software package is located in the combined repository when there are multiple target repository identifiers, and determine the repository corresponding to the repository address in the download request as the combined repository where the target software package is located. Among them, the repository identifier can be the repository name of the software repository, the URL of the software repository, or the unique identifier assigned when the software repository is created, etc.

[0047] Thus, based on the association relationship between the repository address and the repository identifier, the target repository identifier associated with the repository address corresponding to the target software package is obtained, and based on the number of target repository identifiers, it is determined whether the target software package is located in the combined repository, ensuring the accuracy of the determination result and providing a strong guarantee for accurately obtaining the target software package.

[0048] It can be understood that in the case of separate management of each warehouse, the client needs to maintain the warehouse addresses of each software warehouse, and the server needs to maintain the access permissions of each software warehouse. Thus, the client sends a download request to the server based on the warehouse address, and the server performs authentication based on the permission information of the software warehouse corresponding to the warehouse address. Whether it is the client or the server, since it is necessary to maintain the relevant information of each software warehouse, the maintenance of the software warehouse is relatively complex. In the embodiments of the present application, by configuring a combined warehouse, the client only needs to maintain the warehouse address of the combined warehouse, and does not need to maintain the warehouse addresses of each software warehouse in the combined warehouse. Therefore, the number of warehouse addresses that need to be maintained is greatly reduced, and the maintenance difficulty is lowered. For the server, it only needs to maintain the permission information of the combined warehouse and authenticate the access to the combined warehouse, and does not need to maintain the permission information of each software warehouse in the combined warehouse and authenticate them one by one. Therefore, the number of permission information that needs to be maintained is reduced, that is, the maintenance difficulty is lowered, and the number of authentication times is reduced, improving the authentication efficiency.

[0049] In some implementation manners, in order to improve the matching efficiency of the target software package, the information of the target software package edited by the user may be the package identifier of the target software package, that is, the download request includes the package identifier of the target software package. Correspondingly, in step S402, matching the target software package from multiple software warehouses according to the priority order of the multiple software warehouses in the combined warehouse may include: for the software warehouse corresponding to any priority in the priority order, matching the package identifier with the package identifiers of at least one software package included in the software warehouse; in the case that the software warehouse includes the successfully matched package identifier, determining the software package corresponding to the successfully matched package identifier as the target software package.

[0050] In some implementation manners, the priority order is the order from high to low in priority. Correspondingly, the highest priority may be first determined as the current priority, and the package identifier of the target software package is matched with the package identifiers of the software packages in the software warehouse corresponding to the current priority. In the case that there is a successfully matched package identifier in the software warehouse corresponding to the current priority, determining the software package corresponding to the successfully matched package identifier as the target software package. In the case that there is no successfully matched package identifier in the software warehouse corresponding to the current priority, determining the next priority of the current priority as the current priority, and then continuing to match the package identifier of the target software package with the package identifiers of the software packages in the software warehouse corresponding to the current priority until a successfully matched package identifier is obtained to obtain the target software package.

[0051] Therefore, matching the target software package based on the package identifier and the priority order can not only ensure the convenience and orderliness of the matching operation, but also, even if the software packages with the same package identifier but different package contents are included in different software repositories in the combined repository, accurately match the target software package according to the priority order, that is, the version conflict problem can be avoided.

[0052] Considering that in practical applications, there are software packages with the same name but different versions, based on this, in order to ensure the accuracy of the matched target software package, in some implementation manners, the package identifier includes the package name and the package version. Correspondingly, the foregoing matching of the package identifier with the package identifiers of at least one software package included in the software repository may include: For any one of the at least one software package, when the package name of the software package is the same as the package name of the target software package and the package version of the software package is the same as the package version of the target software package, it is determined that the software repository includes a successfully matched package identifier; or, when the package name of the software package is the same as the package name of the target software package and the package version of the software package is different from the package version of the target software package, a request failure message is sent to the client; or, when the package name of at least one software package is different from the package name of the target software package and the package version of at least one software package is different from the package version of the target software package, it is determined that the software repository does not include a successfully matched package identifier.

[0053] In some implementation manners, for any one of the software packages in the software repository corresponding to the current priority in the combined repository, the package name of the software package is matched with the package name of the target software package; when the matching result of the package name is the same, the package version of the software package is matched with the package version of the target software package. When the matching result of the package version is the same, it is determined that the software repository corresponding to the current priority includes a successfully matched package identifier. When the matching result of the package version is different, a request failure message is sent to the client. When the matching result of the package name is different and the software repository includes unmatched software packages, for any one of the unmatched software packages, the matching is performed in the foregoing manner. When the matching result of the package name is different and the software repository does not include unmatched software packages, that is, the package names of all software packages in the software repository are different from the package name of the target software package and the package versions of all software packages in the software repository are different from the package version of the target software package, it is determined that the software repository does not include a successfully matched package identifier.

[0054] Therefore, only when the matching results of the package name and the package version are both consistent, it is determined that the package identifier that matches successfully is included in the software repository, ensuring that the target software package obtained by matching is consistent with the expectation and avoiding compatibility problems or security risks caused by inconsistent versions. When the package names are the same but the package versions are different, by sending a request failure message to the client instead of continuing to match other software packages, not only can the chaos caused by inconsistent versions be avoided, but also the network and computing overhead can be reduced, which is beneficial for users to correct problems in a timely manner, such as modifying the version number. When the package names of all software packages in the software repository are different from the package name of the target software package and the package versions of all software packages in the software repository are different from the package version of the target software package, it is determined that the package identifier that matches successfully is not included in the software repository, avoiding the situation of omission and ensuring the accuracy of the matching result.

[0055] Furthermore, considering that in actual applications, users may provide incorrect package identifiers or incorrect software repository information, resulting in the failure to match the target software package in the combined repository. Based on this, in some implementation manners, the foregoing process of matching the target software package from multiple software repositories according to the priority order of multiple software repositories in the combined repository may further include: when the package identifier that matches successfully is not included in the software repository and there is a next priority in the priority order, matching the target software package from the software repository corresponding to the next priority; or, when the package identifier that matches successfully is not included in the software repository and the current priority is the last priority in the priority order, sending a request failure message for the download request to the client.

[0056] Specifically, when it is determined that the package identifier that matches successfully is not included in the software repository corresponding to the current priority, it is determined whether the current priority is the last priority in the priority order; if the current priority is not the last priority in the priority order, it indicates that there is a next priority in the priority order, and the next priority is determined as the current priority and the matching continues; if the current priority is the last priority in the priority order, it is determined that the target software package is not included in the combined repository, and a request failure message for the download request is sent to the client.

[0057] Exemplarily, the combined repository includes a private software repository 1, a private software repository 2, and a proxy software repository 3, and the priority order is the priority of software repository 1 > the priority of software repository 2 > the priority of software repository 3. As Figure 5As shown, the above matching process may include: determining whether the software repository 1 contains a software package with the same package name as the target software package. If the software repository 1 contains a software package with the same package name, determining whether the package version of this software package is the same as the package version of the target software package; if the package versions are the same, determining this software package as the target software package, that is, the software repository 1 contains the target software package; if the package versions are different, sending a request failure message to the client. If the software repository 1 does not contain a software package with the same package name, since there is a next priority in the priority order, determining whether the next priority software repository 2 contains a software package with the same package name as the target software package. If the software repository 2 contains a software package with the same package name, determining whether the package version of this software package is the same as the package version of the target software package; if the package versions are the same, determining this software package as the target software package, that is, the software repository 2 contains the target software package; if the package versions are different, sending a request failure message for the download request to the client. If the software repository 2 does not contain a software package with the same package name, since there is a next priority in the priority order, determining whether the next priority software repository 3 contains a software package with the same package name as the target software package. If the software repository 3 contains a software package with the same package name, determining whether the package version of this software package is the same as the package version of the target software package; if the package versions are the same, determining this software package as the target software package, that is, the software repository 3 contains the target software package; if the package versions are different, sending a request failure message for the download request to the client. If the software repository 3 does not contain a software package with the same package name, since the priority of the software repository 3 is the last priority in the priority order, determining that the combined repository does not contain the target software package and sending a request failure message for the download request to the client.

[0058] Thus, by performing matching level by level in the corresponding software repositories according to the priority order, the orderliness of the matching operation is ensured, and the problem of version conflicts is avoided. When it is determined that the combined repository does not contain the target software package, by sending a request failure message to the client, the client can timely adjust the information of the target software package.

[0059] As mentioned above, the user can also operate the management application in its client to create a software repository or update a software repository. Correspondingly, the method may further include: in response to a repository creation request for the target software repository, creating the target software repository, configuring the attributes of the target software repository, and, if the target software repository belongs to a combined repository, adding the target software repository to the corresponding combined repository and configuring the priority of the target software repository.

[0060] And / or, in response to a repository update request for a target software repository, storing the software packages to be stored into the target software repository, or deleting the software packages to be deleted from the target software repository, or in the case where the type of the target software repository is a private type, migrating the software packages in the target software repository to a new software repository, or in the case where the type of the target software repository is an agent type and the software packages in the target software repository have changed, updating the software inventory of the target software repository.

[0061] Wherein, the target software repository may be the software repository where the aforementioned target software packages are located, or may be other software repositories. Specifically, when a user needs to create a software repository, the user can operate the repository management module of the management application in the client to edit the creation information of the target software repository to be created. The creation information may include the attributes of the target software repository. When the target software repository belongs to a combined repository, the creation information may further include the repository identifier of the combined repository and the priority of the target software repository in the combined repository. After the creation information is edited, a repository creation request is input. The client sends the repository creation request to the server. In response to the repository creation request, the server calls the repository creation interface or runs the repository creation command according to the creation information in the repository creation request to create the target software repository, configure the attributes of the target software repository, and in the case where the creation information includes the repository identifier of the combined repository and the priority of the target software repository, that is, when the target software repository belongs to a combined repository, add the target software repository to the combined repository corresponding to the repository identifier and configure the priority of the target software repository. Among them, the attributes of the target software repository may include the repository type.

[0062] In the case where the repository type is a private type, configuring the attributes of the target software repository may include: configuring the type of the target software repository as private, configuring the environment to which the target software repository belongs and the read / write status. In some embodiments, in the case where the environment to which the target software repository belongs is a development environment, the read / write status of the target software repository may be configured as an editable state, that is, the software packages in the target software repository can be further modified. In the case where the environment to which the target software repository belongs is a pre-release environment or a release environment, the read / write status of the target software repository may be configured as a read-only state, that is, the software packages in the target software repository are not allowed to be further modified to ensure the availability of the software packages. In some embodiments, the software packages in the software repository with the development environment as the environment to which it belongs may be software packages in the R & D stage and need to be debugged multiple times. The software packages in the software repository with the development environment as the environment to which it belongs may be software packages that are ready to be released after passing the debugging. The software packages in the software repository with the release environment as the environment to which it belongs may be released software packages.

[0063] In the case where the warehouse type is the proxy type, it can be understood that the software packages in the target software warehouse are actually cached software packages, and the original software packages are located in the associated website. Therefore, in this case, configuring the properties of the target software warehouse may include: configuring the login information of the proxy warehouse, configuring cache parameters, creating a software manifest, etc. Among them, the cache parameters include whether to enable the cache function, the cache duration threshold, etc. Correspondingly, the method may further include, for any software package in the proxy-type software warehouse, if it is determined that the cache duration of the software package reaches the cache duration threshold, deleting the software package.

[0064] Furthermore, after the user creates the target software warehouse and has an update requirement for the target software warehouse, the user can send a warehouse update request to the server through its client. Among them, the warehouse update request may include at least one of an upload request, a download request, a migration request, a delete warehouse request, etc.

[0065] Specifically, when the user needs to upload the software package to be stored to the target software warehouse, the user can operate the software package management module of the management application in its client, upload the software package to be stored, edit the warehouse identifier of the target software warehouse for storing the software package, and send an upload request to the server. Correspondingly, in response to the upload request, the server determines the target software warehouse according to the warehouse identifier and saves the software package to be stored to the corresponding target software warehouse.

[0066] Furthermore, in the case where the target software warehouse is of the proxy type, in order to facilitate the management of the software packages in the target software warehouse, in some embodiments, after the server saves the software package to be stored to the corresponding target software warehouse in response to the upload request, the server may also add information such as the package identifier and source of the software package to the software manifest of the target software warehouse.

[0067] Even further, before the server saves the software package to be stored to the corresponding target software warehouse, it may further include: determining whether the client has the software upload permission for the target software warehouse, and saving the software package to be stored to the corresponding target software warehouse when the client has the software upload permission for the target software warehouse. Thus, by verifying the upload permission, the security of the target software warehouse is guaranteed.

[0068] When a user needs to delete a software package in a target software repository (i.e., take the package off the shelf), the user can operate the software package management module in the client that manages the application, edit the package identifier of the software package to be deleted, and send a deletion request to the server. Accordingly, in response to the deletion request, the server determines the target software repository where the software package to be deleted is located, and deletes the software package to be deleted from the target software repository. And, when the type of the target software repository is a proxy type, the software package to be deleted is cleared from the software repository. Among them, determining the target software repository where the software package to be deleted is located may include: determining the software repository corresponding to the repository identifier in the deletion request as the target software repository; or, matching the target software repository where the software package to be deleted is located according to the package identifier in the deletion request.

[0069] That is to say, when the type of the target software repository is a proxy type, the change of the software package in the target software repository may be storing the software package to be stored (i.e., the new software package) in the target software repository. Accordingly, updating the software list of the target software repository may be adding information such as the package identifier and source of the software package to the software list of the target software repository. The change of the software package in the target software repository may also be deleting the software package to be deleted from the target software repository. Accordingly, updating the software list of the target software repository may be deleting information such as the package identifier and source of the software package from the software list.

[0070] After a user debugs any software package in a target software repository whose affiliated environment is a development environment (i.e., the repository type is a private type) and wants to migrate the software package to a new software repository whose affiliated environment is a pre-release environment, or, for any software package in a target software repository whose affiliated environment is a pre-release environment and wants to migrate it to a new software repository whose affiliated environment is a release environment to release the software package, the user can operate the software package management module in the client that manages the application, edit the package identifier of the software package to be migrated and the repository identifier of the new software repository, and send a migration request to the server. Accordingly, in response to the migration request, the server determines the target software repository and the new software repository where the software package to be migrated is located, and migrates the software package to be migrated from the target software repository to the new software repository. Among them, when the affiliated environment of the new software repository is a release environment, migrating the software package to be migrated to the new software repository means that the software package is put on the shelf and available for other users to use.

[0071] Further, when the user no longer needs the target software repository, the user can also operate the management application to send a repository deletion request for the target software repository to the server. Accordingly, the server obtains the repository information (such as the repository URL, etc.) from the repository deletion request, and deletes the target software repository corresponding to the repository information.

[0072] That is to say, the server's management method for private-type software repositories is different from that for proxy-type software repositories. For example, Figure 6 As shown, the management of private-type software repositories can include the life cycle management and package management of software repositories. Among them, the life cycle management includes creating a software repository, configuring the attributes of the software repository, deleting the software repository, etc. Package management includes uploading private-type software packages, deleting (i.e., taking off the shelves) private-type software packages, migrating (including putting on the shelves) private-type software packages, etc. Private-type software packages can include Wheel packages, source code packages, etc. Among them, the Wheel package is a binary distribution format of Python (an assembly language), often existing in the form of a.whl file, and is used for quickly installing Python libraries. The source code package (source distribution, sdist) is the original code distribution format of Python libraries, usually existing in the form of.tar or.gz or.zip files. It contains the complete source code, resource files, and metadata of the library, and requires users to compile or interpret and execute locally.

[0073] For example, Figure 7 As shown, the management of proxy-type software repositories can include the life cycle management, cache management, and manifest management of software repositories, etc. Among them, the life cycle management includes creating a software repository, configuring the login information of the software repository, deleting the software repository, etc. Cache management includes starting the cache function, configuring cache parameters, etc. Manifest management includes creating a manifest, updating the manifest, generating download records for the software packages in the manifest, etc.

[0074] It can be understood that Figure 6 and Figure 7 are only for illustration and not for limitation. Figure 6 and Figure 7 For the detailed implementation methods of each management link shown, reference can be made to the relevant descriptions in the previous text.

[0075] Thus, the server executes corresponding processing in response to a repository creation request for a target software repository, and executes corresponding processing in response to a repository update request for the target software repository, meeting the user's diverse management needs for software repositories and achieving comprehensive and efficient management of software repositories.

[0076] Furthermore, considering that in actual applications, the software repository may be inaccessible due to network factors or other reasons. Based on this, in some embodiments, such as Figure 6 and Figure 7As shown, the life cycle management of the software repository can also include health detection. That is to say, the method further includes: for any software repository, detecting the health status of the software repository according to the detection cycle corresponding to the software repository; in the case where the health status indicates that the software repository is unhealthy, adding a preset mark to the software repository, where the preset mark is used to indicate that the software repository is inaccessible.

[0077] Specifically, for any software repository, according to the detection cycle of the software repository, a detection instruction is sent to the software repository based on the repository address of the software repository, and the health status of the software repository is determined according to the received response data. And, in the case where the health status indicates that the software repository is unhealthy, a preset mark is added to the software repository, so that when it is necessary to match a target software package from a repository combination including the software repository, the software repository is skipped, that is, according to the priority order of multiple healthy software repositories in the repository combination, the target software package is matched from the multiple healthy software repositories. Among them, the specific content of the response data can be set according to actual needs in practical applications. Exemplarily, when the response data is 00, it indicates that the software repository is in a healthy state, that is, an accessible state; when the response data is 11, it indicates that the software repository is in an unhealthy state, that is, an inaccessible state. It should be noted that the detection cycle of each software repository can be uniformly preset or specified by the user when creating the software repository.

[0078] Thus, by detecting the health status of the software repository, it is possible to timely discover software repositories in an inaccessible state and repair them in a timely manner, so as to provide access services to users.

[0079] Considering that in practical applications, different users have different responsibilities in the enterprise and different access permissions to the software repository. Based on this, in some implementation manners, the method may further include: in response to a user management request for a target user, performing a configuration operation on the attributes of the target user, where the attributes of the target user include at least one of the role of the target user, the permissions of the target user, and the user group where the target user is located, the role is used to represent the identity of the target user, the permissions are used to represent the operation scope of the target user, and any user group includes at least one user.

[0080] In some embodiments, taking the user management module including the permission configuration function as an example, the administrator can pre - grant user management permissions to some users (such as department managers, project managers, team leaders, etc.). When a user with user management permissions wants to manage other users in a project team or department, they can operate the user management module of the management application in the terminal device to edit the attributes of the target user and input a user management instruction through the user management interface. The client responds to the user management instruction and sends a user management request to the server according to the attributes of the target user. Correspondingly, the server responds to the user management request and configures at least one of the role of the target user, the permissions of the target user, and the user group where the target user is located according to the attributes of the target user included in the user management request. Among them, the role of the user is used to represent the identity (or level) of the target user. User roles can include ordinary users, advanced users, etc. Users with different roles can have different permissions. Permissions are used to restrict the scope of operations. For example, restricting whether a user can perform the operation of creating a software repository, restricting whether a user can perform the operation of updating a software repository, restricting the interfaces that a user can call, restricting the interfaces that a user can access, etc. A user group can be a group such as a project team or a department. Any user group includes at least one user. The user management request can be used to request to add a target user or to request to change the attributes of an already added target user.

[0081] Thus, by configuring the role, permissions, user group, etc. of the user, not only the effective management of users is realized, but also the guarantee for the orderly access to the software repository is provided.

[0082] Corresponding to the application scenario and method of the method provided in the foregoing embodiments of the present application, the embodiments of the present application also provide a software repository management method, which can be applied to Figure 1 the client shown in Figure 8 as shown in

[0083] Step S801: In response to a download instruction for a target software package, send a download request to the server. The download request is used to request to download the target software package.

[0084] Step S802: Receive the target software package sent by the server. Among them, the target software package is matched by the server from multiple software repositories in accordance with the priority order of multiple software repositories in the combined repository in response to the target software package being located in the combined repository. Multiple software repositories have an association relationship, and any software repository includes at least one software package.

[0085] Among them, the specific implementation manners of Step S801 and Step S802 can refer to the relevant descriptions above, and the repeated parts will not be elaborated here.

[0086] In the software repository management method provided by the embodiments of the present application, by setting up a combined repository, only the combined repository needs to be maintained, without the need to maintain each software repository in the combined repository one by one. Therefore, the complexity of repository maintenance is reduced. By setting the priorities of multiple software repositories in the combined repository, the target software package required to be downloaded by the client can be matched from the multiple software repositories according to the priorities, ensuring the orderliness of the matching process and avoiding problems such as version conflicts in the combined repository.

[0087] Corresponding to the application scenario and method of the method provided by the embodiments of the present application, the embodiments of the present application also provide a software repository management device, which can be applied to Figure 1 the server shown in Figure 9 As shown, the device includes: A receiving module 901, configured to receive a download request sent by a client, where the download request is used to request to download a target software package.

[0088] A matching module 902, configured to, in response to the target software package being located in a combined repository, match the target software package from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository, where the multiple software repositories have an association relationship, and any software repository includes at least one software package.

[0089] A sending module 903, configured to send the target software package to the client.

[0090] In some embodiments, the download request includes the package identifier of the target software package, and the matching module 902 is specifically configured to: for any software repository corresponding to any priority in the priority order, match the package identifier of the target software package with the package identifiers of at least one software package included in the software repository; in the case where the software repository includes a successfully matched package identifier, determine the software package corresponding to the successfully matched package identifier as the target software package.

[0091] In some embodiments, the package identifier includes a package name and a package version. The matching module 902 is further specifically configured to: for any one of the at least one software package, when the package name of the software package is the same as the package name of the target software package and the package version of the software package is the same as the package version of the target software package, determine that the software repository contains a successfully matched package identifier; or, when the package name of the software package is the same as the package name of the target software package and the package version of the software package is different from the package version of the target software package, send a request failure message to the client; or, when the package name of the at least one software package is different from the package name of the target software package and the package version of the at least one software package is different from the package version of the target software package, determine that the software repository does not contain a successfully matched package identifier.

[0092] In some embodiments, the matching module 902 is further configured to: when the software repository does not contain a successfully matched package identifier and there is a next priority in the priority order, match the target software package from the software repository corresponding to the next priority; or, when the software repository does not contain a successfully matched package identifier and the current priority is the last priority in the priority order, send a request failure message for the download request to the client.

[0093] In some embodiments, the multiple software repositories include a private-type software repository and an agent-type software repository. The priority of the private-type software repository is higher than that of the agent-type software repository. The private-type software repository is used to store customized software packages, and the agent-type software repository is used to store software packages downloaded from an associated website.

[0094] In some embodiments, the download request includes a client identifier of the client. The matching module 902 is specifically configured to: query the permission information of the client according to the client identifier; when the permission information indicates that the client has the software download permission for the combined repository, obtain the target software package from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository.

[0095] In some embodiments, the download request includes a repository address corresponding to the target software package. The apparatus further includes a determination module, configured to obtain a target repository identifier associated with the repository address corresponding to the target software package from the association relationship between the repository address and the repository identifier; when there are multiple target repository identifiers, determine that the target software package is located in the combined repository.

[0096] In some embodiments, the device further includes a warehouse management module, which is configured to create the target software warehouse in response to a warehouse creation request for the target software warehouse, configure the attributes of the target software warehouse, and, in the case that the target software warehouse belongs to a combined warehouse, add the target software warehouse to the corresponding combined warehouse and configure the priority of the target software warehouse; and / or, in response to a warehouse update request for the target software warehouse, store the software packages to be stored in the target software warehouse, or delete the software packages to be deleted from the target software warehouse, or, in the case that the type of the target software warehouse is a private type, migrate the software packages to be migrated in the target software warehouse to a new software warehouse, or, in the case that the type of the target software warehouse is an agent type and the software packages in the target software warehouse have changed, update the software inventory of the target software warehouse.

[0097] In some embodiments, the device further includes a user management module, which is configured to perform a configuration operation on the attributes of the target user in response to a user management request for the target user, where the attributes of the target user include at least one of the role of the target user, the permissions of the target user, and the user group to which the target user belongs, the role is used to characterize the identity of the target user, the permissions are used to characterize the operation scope of the target user, and any user group includes at least one user.

[0098] In some embodiments, the device further includes a detection module, which is configured to detect the health status of any software warehouse according to the detection period corresponding to the software warehouse; in the case that the health status indicates that the software warehouse is unhealthy, add a preset mark to the software warehouse, where the preset mark is used to indicate that the software warehouse is inaccessible.

[0099] For the functions of the modules in each device of the embodiments of the present application, reference may be made to the corresponding descriptions in the above methods, and they have the corresponding beneficial effects, which will not be elaborated here.

[0100] Corresponding to the application scenario and method of the method provided by the embodiments of the present application, the embodiments of the present application further provide a software warehouse management device, which can be applied to Figure 1 the client shown in Figure 10 as shown, and the device includes: A sending module 1001, which is configured to send a download request to the server in response to a download instruction for a target software package, where the download request is used to request to download the target software package.

[0101] A receiving module 1002, configured to receive the target software package sent by the server, where the target software package is matched by the server from multiple software repositories in the combined repository in accordance with the priority order of the multiple software repositories in the combined repository, the multiple software repositories have an association relationship, and any software repository includes at least one software package.

[0102] For the functions of the modules in each device of the embodiments of the present application, reference may be made to the corresponding descriptions in the above methods, and the corresponding beneficial effects are achieved, which will not be elaborated herein. In addition, the device embodiments described above are merely illustrative. The modules described as separate components may or may not be physically separated, and the components shown as modules may or may not be physical modules, that is, they may be located in one place or distributed to multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the present application.

[0103] Figure 11 It is a block diagram of an electronic device for implementing the embodiments of the present application. As Figure 11 shown, the electronic device includes: a memory 1101 and a processor 1102. The memory 1101 stores a computer program that can run on the processor 1102. When the processor 1102 executes the computer program, the method in the above embodiments is implemented. The number of the memory 1101 and the processor 1102 may be one or more. In a specific implementation, the electronic device may further include a communication interface 1103 for communicating with external devices and performing data interaction and transmission.

[0104] In a specific implementation, if the memory 1101, the processor 1102, and the communication interface 1103 are independently implemented, the memory 1101, the processor 1102, and the communication interface 1103 may be connected to each other through a bus and communicate with each other. The bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc. For the sake of simplicity of representation, Figure 11 only a thick line is shown in the figure, but it does not mean that there is only one bus or one type of bus.

[0105] Optionally, in a specific implementation, if the memory 1101, the processor 1102, and the communication interface 1103 are integrated on a single chip, the memory 1101, the processor 1102, and the communication interface 1103 can communicate with each other through an internal interface.

[0106] An embodiment of the present application provides a computer-readable storage medium storing a computer program, which when executed by a processor implements the method provided in the embodiment of the present application.

[0107] An embodiment of the present application provides a computer program product including a computer program, which when executed by a processor implements the method provided in the embodiment of the present application.

[0108] An embodiment of the present application further provides a chip including a processor for calling and running instructions stored in a memory from the memory, so that a communication device installed with the chip executes the method provided in the embodiment of the present application.

[0109] An embodiment of the present application further provides a chip including: an input interface, an output interface, a processor, and a memory. The input interface, the output interface, the processor, and the memory are connected through an internal connection path. The processor is configured to execute code in the memory, and when the code is executed, the processor is configured to execute the method provided in the embodiment of the application.

[0110] It should be understood that the above-mentioned processor may be a central processing unit (CPU), or may also be other general-purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting the advanced reduced instruction set machine (ARM) architecture.

[0111] Further, optionally, the above-mentioned memory may include a read-only memory and a random access memory. The memory may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may include a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may include a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus random access memory (DR RAM).

[0112] In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions in accordance with the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.

[0113] In the description of this specification, the descriptions referring to terms such as "one embodiment", "some embodiments", "example", "specific example", or "some examples" etc. mean that the specific features, structures, materials, or characteristics described in connection with the embodiment or example are included in at least one embodiment or example of this application. Moreover, the specific features, structures, materials, or characteristics described may be combined in a suitable manner in any one or more embodiments or examples. In addition, without contradiction, those skilled in the art can combine and combine the different embodiments or examples described in this specification and the features of different embodiments or examples.

[0114] In addition, the terms "first" and "second" are only used for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. Thus, the features defined with "first" and "second" may explicitly or implicitly include at least one of such features. In the description of this application, "a plurality of" means two or more unless otherwise specifically defined.

[0115] Any process or method described in the flowchart or otherwise described herein can be understood to represent a module, segment, or portion of code including one or more executable instructions for implementing a specific logical function or process. And the scope of the preferred embodiments of this application includes additional implementations, where the functions may be executed in a substantially simultaneous manner or in a reverse order according to the involved functions, rather than in the order shown or discussed.

[0116] The logic and / or steps described in the flowchart or otherwise described herein, for example, can be considered as a definite sequence list of executable instructions for implementing a logical function, and can be specifically implemented in any computer-readable medium for use by an instruction execution system, apparatus, or device (such as a computer-based system, a system including a processor, or other systems that can fetch and execute instructions from the instruction execution system, apparatus, or device), or in combination with these instruction execution systems, apparatus, or devices.

[0117] It should be understood that each part of this application can be implemented by hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. All or part of the steps of the method in the above embodiments can be completed by a program instructing relevant hardware, and this program can be stored in a computer-readable storage medium. When this program is executed, it includes one or a combination of the steps of the method embodiment.

[0118] In addition, each functional unit in various embodiments of the present application may be integrated into one processing module, or each unit may exist physically alone, or two or more units may be integrated into one module. The above-mentioned integrated module may be implemented in the form of hardware or in the form of a software functional module. If the above-mentioned integrated module is implemented in the form of a software functional module and sold or used as an independent product, it may also be stored in a computer-readable storage medium. This storage medium may be a read-only memory, a magnetic disk or an optical disc, etc.

[0119] As mentioned above, the above is only an exemplary embodiment of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art within the technical scope recorded in the present application can easily think of various changes or substitutions thereof, and these should all be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A software repository management method, the method comprising: Receiving a download request sent by a client, wherein the download request is used to request to download a target software package; In response to the target software package being located in a combined repository, matching the target software package from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository, wherein the multiple software repositories have an association relationship, and any software repository includes at least one software package; Sending the target software package to the client.

2. The method according to claim 1, wherein The download request includes the package identifier of the target software package. The matching the target software package from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository includes: For any software repository corresponding to any priority in the priority order, matching the package identifier of the target software package with the package identifiers of at least one software package included in the software repository; In the case where the software repository includes a successfully matched package identifier, determining the software package corresponding to the successfully matched package identifier as the target software package.

3. The method according to claim 2, wherein The package identifier includes a package name and a package version. The matching the package identifier with the package identifiers of at least one software package included in the software repository includes: For any software package among the at least one software package, determining that the software repository includes a successfully matched package identifier when the package name of the software package is the same as the package name of the target software package and the package version of the software package is the same as the package version of the target software package; or, When the package name of the software package is the same as the package name of the target software package and the package version of the software package is different from the package version of the target software package, sending a request failure message to the client; or, When the package name of the at least one software package is different from the package name of the target software package and the package version of the at least one software package is different from the package version of the target software package, determining that the software repository does not include a successfully matched package identifier.

4. The method according to claim 2 or 3, wherein The matching the target software package from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository further includes: In the case where the software repository does not include a successfully matched package identifier and there is a next priority in the priority order, matching the target software package from the software repository corresponding to the next priority; or, In the case where the software repository does not include a successfully matched package identifier and the current priority is the last priority in the priority order, sending a request failure message for the download request to the client.

5. The method according to claim 1, wherein The multiple software repositories include a private type of software repository and a proxy type of software repository. The priority of the private type of software repository is higher than the priority of the proxy type of software repository. The private type of software repository is used to store customized software packages, and the proxy type of software repository is used to store downloaded software packages.

6. The method according to claim 1, wherein The download request includes the client identifier of the client. Obtaining the target software package from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository includes: Querying the permission information of the client according to the client identifier; When the permission information indicates that the client has the software download permission for the combined repository, obtaining the target software package from the multiple software repositories according to the priority order of the multiple software repositories in the combined repository.

7. The method according to claim 1, wherein The download request includes the repository address corresponding to the target software package. The method further includes: Obtaining the target repository identifier associated with the repository address corresponding to the target software package from the association relationship between the repository address and the repository identifier; When there are multiple target repository identifiers, determining that the target software package is located in the combined repository.

8. The method according to any one of claims 1-3, 5-6, wherein The method further includes: Responding to a repository creation request for a target software repository, creating the target software repository, configuring the attributes of the target software repository, and when the target software repository belongs to the combined repository, adding the target software repository to the corresponding combined repository and configuring the priority of the target software repository; and / or Responding to a repository update request for a target software repository, storing the software package to be stored in the target software repository, or deleting the software package to be deleted from the target software repository, or when the type of the target software repository is a private type, migrating the software package to be migrated in the target software repository to a new software repository, or when the type of the target software repository is an agent type and the software package in the target software repository has changed, updating the software list of the target software repository.

9. The method according to any one of claims 1-3, 5-6, wherein The method further includes: Responding to a user management request for a target user, performing a configuration operation on the attributes of the target user, where the attributes of the target user include at least one of the role of the target user, the permission of the target user, and the user group where the target user is located, the role is used to represent the identity of the target user, the permission is used to represent the operation scope of the target user, and any user group includes at least one user.

10. The method according to any one of claims 1-3, 5-6, wherein, The method further includes: For any software repository, detecting the health status of the software repository according to the detection period corresponding to the software repository; When the health status indicates that the software repository is unhealthy, adding a preset mark to the software repository, where the preset mark is used to indicate that the software repository is inaccessible.

11. A software repository management method, the method includes: Responding to a download instruction for a target software package, sending a download request to the server, where the download request is used to request to download the target software package; Receive the target software package sent by the server, where the target software package is matched by the server from multiple software repositories in the combined repository in accordance with the priority order of the multiple software repositories in the combined repository, the multiple software repositories have an association relationship, and any software repository includes at least one software package.

12. A software repository management system, the system comprising: A client, configured to send a download request to the server in response to a download instruction for a target software, and receive the target software sent by the server; The server is configured to, when determining that the target software package to be downloaded is located in the combined repository according to the download request, obtain the target software package from the multiple software repositories in accordance with the priority order of the multiple software repositories in the combined repository; and send the target software package to the client.

13. An electronic device, comprising a memory, a processor, and a computer program stored on the memory, where the processor implements the method according to any one of claims 1 to 11 when executing the computer program.

14. A computer-readable storage medium, in which a computer program is stored, and the computer program implements the method according to any one of claims 1 to 11 when being executed by a processor.

15. A computer program product, comprising a computer program, where the computer program implements the method according to any one of claims 1 to 11 when being executed by a processor.

Citation Information

Patent Citations

  • Application software management method and device, mobile terminal and readable storage medium

    CN108520177A

  • Installation package detection method and device, equipment, and medium

    CN113722704A

  • Software package updating method and device and computing equipment

    CN115167888A

  • Software package installation method and device, computing equipment and readable storage medium

    CN115576570A

  • Software package processing method and device, electronic equipment and storage medium

    CN115640583A