createPackage method
Future<Package>
createPackage({
- required String projectId,
- required String name,
- String? displayName,
- String? description,
- ReleaseChannel defaultChannel = ReleaseChannel.release,
- List<
String> platforms = const [], - Map<
String, String> metadata = const {},
override
Creates a package named name under projectId.
Implementation
@override
Future<Package> createPackage({
required String projectId,
required String name,
String? displayName,
String? description,
ReleaseChannel defaultChannel = ReleaseChannel.release,
List<String> platforms = const [],
Map<String, String> metadata = const {},
}) async {
Names.require(name, 'package name');
final project = await _requireProject(projectId);
if (await repositories.packages.byName(projectId, name) != null) {
throw ConflictException(
"A package named '$name' already exists in this project",
reference: name,
);
}
final now = clock.now();
final package = Package(
id: idGenerator.next('pkg'),
projectId: projectId,
organizationId: project.organizationId,
name: name,
displayName: displayName,
description: description,
defaultChannel: defaultChannel,
platforms: platforms,
createdAt: now,
updatedAt: now,
metadata: metadata,
);
await repositories.packages.save(package);
logger.info('Package created', context: {'name': name});
return package;
}