fix(manager/conan): allow ref with user only (#26516)

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
This commit is contained in:
Daniel Körner 2024-01-15 09:43:48 +01:00 committed by GitHub
parent c6e52bf656
commit 5a511732c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 2 deletions

View file

@ -3,7 +3,7 @@ from conans import ConanFile
class Pkg(ConanFile):
python_requires = "pyreq/0.1@user/channel" # recipe to reuse code from
build_requires = "tool_a/0.2@user/testing", "tool_b/0.2@user/testing"
requires = "req_a/1.0", "req_l/2.1@otheruser/testing"
requires = "req_a/1.0", "req_l/2.1@otheruser/testing", "req_x/6.1@useronly"
requires = [("req_b/0.1@user/testing"),
("req_d/0.2@dummy/stable", "override"),

View file

@ -152,6 +152,13 @@ describe('modules/manager/conan/extract', () => {
packageName: 'req_l/2.1@otheruser/testing',
replaceString: 'req_l/2.1@otheruser/testing',
},
{
currentValue: '6.1',
depName: 'req_x',
depType: 'requires',
packageName: 'req_x/6.1@useronly/_',
replaceString: 'req_x/6.1@useronly',
},
{
currentValue: '0.1',
depName: 'req_b',

View file

@ -4,7 +4,7 @@ import type { PackageDependency, PackageFileContent } from '../types';
import { isComment } from './common';
const regex = regEx(
`(?<name>[-_a-z0-9]+)/(?<version>[^@\n{*"']+)(?<userChannel>@[-_a-zA-Z0-9]+/[^#\n.{*"' ]+)?#?(?<revision>[-_a-f0-9]+[^\n{*"'])?`,
`(?<name>[-_a-z0-9]+)/(?<version>[^@\n{*"']+)(?<userChannel>@[-_a-zA-Z0-9]+(?:/[^#\n.{*"' ]+|))?#?(?<revision>[-_a-f0-9]+[^\n{*"'])?`,
);
function setDepType(content: string, originalType: string): string {
@ -52,6 +52,9 @@ export function extractPackageFile(content: string): PackageFileContent | null {
if (matches.groups.userChannel) {
userAndChannel = matches.groups.userChannel;
replaceString = `${depName}/${currentValue}${userAndChannel}`;
if (!userAndChannel.includes('/')) {
userAndChannel = `${userAndChannel}/_`;
}
}
const packageName = `${depName}/${currentValue}${userAndChannel}`;