3 Commits
1.4.2 ... 1.4.5

Author SHA1 Message Date
ed9ba80938 Bump module version to 1.4.5 and enhance Invoke-GiteaFileDownload to replace URL encoded characters in the file name
All checks were successful
Publish Powershell Module to Gitea Repository / test (push) Successful in 9s
Publish Powershell Module to Gitea Repository / deploy (push) Successful in 31s
2025-05-27 12:50:01 -04:00
edb1501f40 Bump module version to 1.4.4 and enhance Invoke-GiteaFileDownload to handle LFS file downloads with type inference and properly format file path based on API URL
All checks were successful
Publish Powershell Module to Gitea Repository / test (push) Successful in 10s
Publish Powershell Module to Gitea Repository / deploy (push) Successful in 31s
2025-05-27 12:38:58 -04:00
5854940f75 Bump module version to 1.4.3 and update download URL in Get-GiteaChildItem function to allow for getting LFS files from other branches
All checks were successful
Publish Powershell Module to Gitea Repository / test (push) Successful in 10s
Publish Powershell Module to Gitea Repository / deploy (push) Successful in 32s
2025-05-27 12:11:54 -04:00
2 changed files with 21 additions and 7 deletions

View File

@@ -12,7 +12,7 @@
RootModule = 'PS-GiteaUtilities.psm1'
# Version number of this module.
ModuleVersion = '1.4.2'
ModuleVersion = '1.4.5'
# Supported PSEditions
# CompatiblePSEditions = @()

View File

@@ -410,8 +410,12 @@ Function Invoke-GiteaFileDownload {
}
process {
# If type is not provided, check for any hints for cases such as LFS where a type can be inferred and special handling is needed
If($downloadURL -match "/api/v1/repos/[^/]+/[^/]+/media/") {
$type = "lfs"
}
Write-Verbose "Type: $type"
# Handle the type parameter
# Skip directories and provide a verbose message
@@ -447,10 +451,20 @@ Function Invoke-GiteaFileDownload {
# Separate the URL into its components: Gitea URL, Repo Owner, Repo Name, branch, file path, and file name
$uri = New-Object System.Uri($downloadURL)
$pathSegments = $uri.AbsolutePath.Trim('/').Split('/')
# Everything after the branch + 1 segment is considered the file path with the last segment being the file name
$branchIndex = [Array]::IndexOf($pathSegments, "branch") + 2
$DownloadFilePath = $pathSegments[$branchIndex..($pathSegments.Length - 2)] -join '/'
$DownloadFileName = $pathSegments[-1]
If($type -eq "lfs") {
# Everything after the media segment is considered the file path with the last segment being the file name
$branchIndex = [Array]::IndexOf($pathSegments, "media") + 1
$DownloadFilePath = $pathSegments[$branchIndex..($pathSegments.Length - 2)] -join '/'
$DownloadFileName = $pathSegments[-1]
}
Else {
# Everything after the branch + 1 segment is considered the file path with the last segment being the file name
$branchIndex = [Array]::IndexOf($pathSegments, "branch") + 2
$DownloadFilePath = $pathSegments[$branchIndex..($pathSegments.Length - 2)] -join '/'
# Replace any URL encoded characters in the file name
$DownloadFilePath = [System.Uri]::UnescapeDataString($DownloadFilePath)
$DownloadFileName = $pathSegments[-1]
}
if ($PreserveRelativePath -and $outputPath) {
# If PreserveRelativePath is used, set up the directory structure
@@ -732,7 +746,7 @@ Function Get-GiteaChildItem {
$item.size = [long]$matches[1]
}
# Set the download URL to the media endpoint for LFS files to download the actual file
$item.download_url = "$giteaURL/api/v1/repos/$repoOwner/$repoName/media/$($item.path)"
$item.download_url = "$giteaURL/api/v1/repos/$repoOwner/$repoName/media/$($item.path)?ref=$branch"
}
$itemObj = [PSCustomObject]@{