Skip to content

Commit 8312d42

Browse files
committed
Fixes bug (issue #14) where metadata was not added to directories.
1 parent d4c8710 commit 8312d42

1 file changed

Lines changed: 20 additions & 11 deletions

File tree

src/Api.php

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -591,33 +591,42 @@ private function normalizePathName($path)
591591
*/
592592
private function metadataForDirectory($path)
593593
{
594-
$project = sprintf('%s/%s', $this->settings->getVendor(), $this->settings->getPackage());
595594
$reference = $this->settings->getReference();
595+
$project = sprintf('%s/%s', $this->settings->getVendor(), $this->settings->getPackage());
596596

597597
$url = sprintf(
598598
'%s/repos/%s/contents/%s?ref=%s',
599599
self::GITHUB_API_URL,
600600
$project,
601-
trim($path, '/'),
601+
$path,
602602
$reference
603603
);
604604
$htmlUrl = sprintf(
605605
'%s/%s/blob/%s/%s',
606606
self::GITHUB_URL,
607607
$project,
608608
$reference,
609-
trim($path, '/')
609+
$path
610610
);
611611

612-
$metadata = [
613-
self::KEY_TYPE => self::KEY_DIRECTORY,
614-
'url' => $url,
615-
'html_url' => $htmlUrl,
616-
'_links' => [
617-
'self' => $url,
618-
'html' => $htmlUrl
612+
$directoryContents = $this->getDirectoryContents($path, self::RECURSIVE);
613+
614+
$directoryMetadata = array_filter($directoryContents, function ($entry) use ($path) {
615+
return $entry[self::KEY_PATH] === $path;
616+
});
617+
618+
$metadata = array_merge(
619+
$directoryMetadata[0],
620+
[
621+
self::KEY_TYPE => self::KEY_DIRECTORY,
622+
'url' => $url,
623+
'html_url' => $htmlUrl,
624+
'_links' => [
625+
'self' => $url,
626+
'html' => $htmlUrl
627+
]
619628
]
620-
];
629+
);
621630

622631
return $metadata;
623632
}

0 commit comments

Comments
 (0)