Compare commits

..
Author SHA1 Message Date
Meo597 57c844fc35 dry run cleanup dangling 2026-10-30 06:59:58 +08:00
Meo597 1367f4c93e dry run cleanup sha- 2026-10-30 06:50:55 +08:00
3 changed files with 57 additions and 18 deletions
@@ -0,0 +1,26 @@
name: Cleanup dangling container images
on:
push:
branches:
- bulk-cleanup-ghcr
# Run the two cleanup workflows one at a time.
concurrency:
group: ghcr-images
cancel-in-progress: false
jobs:
cleanup:
runs-on: ubuntu-latest
timeout-minutes: 120
permissions:
packages: write
steps:
# Untagged architecture manifests can still belong to a tagged image.
- name: Delete untagged and unreferenced versions
uses: dataaxiom/ghcr-cleanup-action@v1.2.2
with:
package: xray-core
delete-untagged: true
dry-run: true
+30
View File
@@ -0,0 +1,30 @@
name: Cleanup sha- container images
on:
push:
branches:
- bulk-cleanup-ghcr
# Run the two cleanup workflows one at a time.
concurrency:
group: ghcr-images
cancel-in-progress: false
jobs:
cleanup:
runs-on: ubuntu-latest
timeout-minutes: 120
permissions:
packages: write
steps:
# The repository needs Admin access under the package's Manage Actions access.
- name: Delete versions with only sha- tags
uses: dataaxiom/ghcr-cleanup-action@v1.2.2
with:
package: xray-core
use-regex: true
delete-tags: '^sha-'
# Preserve every non-sha- tag. The colon check avoids matching digests.
exclude-tags: '^(?!sha-)[^:]+$'
delete-untagged: false
dry-run: true
+1 -18
View File
@@ -1,8 +1,6 @@
package geodata
import (
"bufio"
"compress/gzip"
"context"
"crypto/tls"
go_errors "errors"
@@ -199,22 +197,7 @@ func (d *downloader) fetch(rawURL string, writer io.Writer) error {
return errors.New("geodata download exceeds 256 MiB")
}
br := bufio.NewReader(resp.Body)
header, err := br.Peek(2)
if err != nil && err != io.EOF {
return err
}
var body io.Reader = br
if len(header) == 2 && header[0] == 0x1f && header[1] == 0x8b {
zr, err := gzip.NewReader(br)
if err != nil {
return err
}
defer zr.Close()
body = zr
}
n, err := io.Copy(writer, io.LimitReader(body, maxDownloadSize+1))
n, err := io.Copy(writer, io.LimitReader(resp.Body, maxDownloadSize+1))
if err != nil {
return err
}