Skip to content

Commit b757de7

Browse files
Store dist/source reference of the created version
1 parent 142b866 commit b757de7

File tree

5 files changed

+17
-4
lines changed

5 files changed

+17
-4
lines changed

src/Audit/Display/AuditLogDisplayFactory.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ public function buildSingle(AuditRecord $record): AuditLogDisplayInterface
7676
$record->datetime,
7777
$record->attributes['name'],
7878
$record->attributes['version'],
79+
$record->attributes['source'] ?? null,
80+
$record->attributes['dist'] ?? null,
7981
$this->buildActor($record->attributes['actor']),
8082
),
8183
AuditRecordType::VersionDeleted => new VersionDeletedDisplay(

src/Audit/Display/VersionCreatedDisplay.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ public function __construct(
2020
\DateTimeImmutable $datetime,
2121
public string $packageName,
2222
public string $version,
23+
public ?string $sourceReference,
24+
public ?string $distReference,
2325
ActorDisplay $actor,
2426
) {
2527
parent::__construct($datetime, $actor);
@@ -34,4 +36,4 @@ public function getTemplateName(): string
3436
{
3537
return 'audit_log/display/version_created.html.twig';
3638
}
37-
}
39+
}

src/Entity/AuditRecord.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public static function versionCreated(Version $version, ?User $actor): self
8484
{
8585
$package = $version->getPackage();
8686

87-
return new self(AuditRecordType::VersionCreated, ['name' => $package->getName(), 'version' => $version->getVersion(), 'actor' => self::getUserData($actor, 'automation')], $actor?->getId(), $package->getVendor(), $package->getId());
87+
return new self(AuditRecordType::VersionCreated, ['name' => $package->getName(), 'version' => $version->getVersion(), 'actor' => self::getUserData($actor, 'automation'), 'source' => $version->getSource()['reference'] ?? null, 'dist' => $version->getDist()['reference'] ?? null], $actor?->getId(), $package->getVendor(), $package->getId());
8888
}
8989

9090
public static function versionDeleted(Version $version, ?User $actor): self

templates/audit_log/display/version_created.html.twig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,10 @@
55
{{ display.packageName }}
66
{%- endif -%}
77
</strong> {{ display.version }}<br>
8+
{% if display.sourceReference %}
9+
Source: {{ display.sourceReference }}<br>
10+
{% endif %}
11+
{% if display.distReference %}
12+
Dist: {{ display.distReference }}<br>
13+
{% endif %}
814
Created by: {{ display.actor.username }}

tests/Audit/VersionAuditRecordTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ public function testVersionCreationGetsRecorded(): void
5656
'name' => 'composer/composer',
5757
'actor' => 'automation',
5858
'version' => '1.0.0',
59+
'source' => 'source-ref',
60+
'dist' => 'dist-ref',
5961
], $log->attributes);
6062
}
6163

@@ -74,7 +76,7 @@ public function testVersionChangesGetRecorded(): void
7476
$logs = $container->get(Connection::class)->fetchAllAssociative('SELECT * FROM audit_log ORDER BY id DESC');
7577
self::assertCount(3, $logs); // package creation + version creation + version reference change
7678
self::assertSame(AuditRecordType::VersionReferenceChanged->value, $logs[0]['type']);
77-
self::assertSame('{"name": "composer/composer", "dist_to": "new-dist-ref", "version": "1.0.0", "dist_from": "old-dist-ref", "source_to": "new-source-ref", "source_from": null}', $logs[0]['attributes']);
79+
self::assertSame('{"name": "composer/composer", "dist_to": "new-dist-ref", "version": "1.0.0", "dist_from": "dist-ref", "source_to": "new-source-ref", "source_from": "source-ref"}', $logs[0]['attributes']);
7880

7981
// verify that unrelated changes do not create new audit logs
8082
$version->setLicense(['MIT']);
@@ -125,7 +127,8 @@ private function createPackageAndVersion(): Version
125127
$version->setDevelopment(false);
126128
$version->setLicense([]);
127129
$version->setAutoload([]);
128-
$version->setDist(['reference' => 'old-dist-ref', 'type' => 'zip', 'url' => 'https://example.org/dist.zip']);
130+
$version->setDist(['reference' => 'dist-ref', 'type' => 'zip', 'url' => 'https://example.org/dist.zip']);
131+
$version->setSource(['reference' => 'source-ref', 'type' => 'git', 'url' => 'https://example.org/dist.git']);
129132

130133
$em->persist($package);
131134
$em->persist($version);

0 commit comments

Comments
 (0)