Buildbot: Move checksum to JSON #7

Merged
Bart van der Braak merged 2 commits from move-checksum-to-json into develop 2024-07-16 10:09:54 +02:00
3 changed files with 4 additions and 5 deletions
Showing only changes of commit 0ac2ca0896 - Show all commits

View File

@ -22,7 +22,7 @@ class Build {
public $file_size; public $file_size;
public $file_extension; public $file_extension;
public $release_cycle; public $release_cycle;
public $sha256_checksum; // New property public $sha256_checksum;
bartvdbraak marked this conversation as resolved Outdated

Don't refer to a time-line type of a thing. The property is new from the perspective of this PR, but once it lands the property is not new, is kist there. Simplty public $sha256_checksum;.

Don't refer to a time-line type of a thing. The property is new from the perspective of this PR, but once it lands the property is not new, is kist there. Simplty `public $sha256_checksum;`.
public $directory_lister; public $directory_lister;
public function __construct(string $file_path) { public function __construct(string $file_path) {
@ -89,8 +89,7 @@ class Build {
if (file_exists($sha256_file)) { if (file_exists($sha256_file)) {
$this->sha256_checksum = trim(str_replace(["\r", "\n", "\t"], '', file_get_contents($sha256_file))); $this->sha256_checksum = trim(str_replace(["\r", "\n", "\t"], '', file_get_contents($sha256_file)));
} else { } else {
// Compute SHA256 checksum. $this->sha256_checksum = null;
$this->sha256_checksum = strtoupper(hash_file('sha256', $file_path));
} }
bartvdbraak marked this conversation as resolved Outdated

Computing hash of files is not cheap, is not something we should be doing for an end-point which is considered fast.
If the checksum file is missing, it is an indication of some bigger problem, so might as well keep the field empty.

Computing hash of files is not cheap, is not something we should be doing for an end-point which is considered fast. If the checksum file is missing, it is an indication of some bigger problem, so might as well keep the field empty.
// Release cycle. // Release cycle.

View File

@ -32,7 +32,7 @@ class BuildsRenderer {
if ($version == 2) { if ($version == 2) {
// If version 2 is requested, skip any .sha256 files and add a checksum key-value entry // If version 2 is requested, skip any .sha256 files and add a checksum key-value entry
if (substr($build->file_name, -7) === '.sha256') { if (endsWith($build->file_name, '.sha256')) {
bartvdbraak marked this conversation as resolved Outdated

We have function endsWith(string $haystack, string $needle) utility function, so can simply do if (endsWith($build->file_name, '.sha256')).

We have `function endsWith(string $haystack, string $needle)` utility function, so can simply do `if (endsWith($build->file_name, '.sha256'))`.
continue; continue;
} }
$build_data['checksum'] = $build->sha256_checksum; $build_data['checksum'] = $build->sha256_checksum;

View File

@ -15,7 +15,7 @@ function handleNotFoundRequest() {
function renderDownloadResponseAsJSON($lister) { function renderDownloadResponseAsJSON($lister) {
header('Content-Type: application/json; charset=utf-8'); header('Content-Type: application/json; charset=utf-8');
// Require v=1 to be specified // Require v=1 or v=2 to be specified
if (!isset($_GET['v']) || ($_GET['v'] != '1' && $_GET['v'] != '2')) { if (!isset($_GET['v']) || ($_GET['v'] != '1' && $_GET['v'] != '2')) {
$data = ['error' => 'Invalid version specified. Please provide a supported version using v=1 or v=2.']; $data = ['error' => 'Invalid version specified. Please provide a supported version using v=1 or v=2.'];
echo json_encode( $data ); echo json_encode( $data );