Commit Graph
2811 Commits
Author SHA1 Message Date
André Roth bf06c688ed Merge pull request #1611 from tbe/api-pull-fix
api: fix snasphot-pull
2026-10-31 23:35:07 +01:00
André Roth 2f102086b7 Merge pull request #1640 from aptly-dev/dependabot/go_modules/go.opentelemetry.io/otel/sdk-1.45.0
build(deps): bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0
2026-10-31 22:54:51 +01:00
dependabot[bot] 3812982982 build(deps): bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.44.0 to 1.45.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.45.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-31 21:21:17 +00:00
André Roth 17d0899e72 Merge pull request #1628 from aptly-dev/dependabot/go_modules/google.golang.org/grpc-1.83.1
build(deps): bump google.golang.org/grpc from 1.79.3 to 1.83.2
2026-10-31 21:41:38 +01:00
André Roth 103e4c2810 Merge pull request #1621 from KereMath/fix/skel-appstream-publish
publish: fix duplicated skel/AppStream files and missing by-hash entries
2026-10-31 21:17:31 +01:00
dependabot[bot] 76bd237954 build(deps): bump google.golang.org/grpc from 1.79.3 to 1.83.2
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.79.3 to 1.83.2.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.79.3...v1.83.2)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.83.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-31 20:17:16 +00:00
André Roth a10f3bcc0e Merge pull request #1618 from aptly-dev/dependabot/go_modules/github.com/go-git/go-git/v5-5.19.2
build(deps): bump github.com/go-git/go-git/v5 from 5.19.1 to 5.19.2
2026-10-31 21:14:00 +01:00
André Roth c54e3f31a2 Merge pull request #1625 from barnumbirr/fix-readlink-metadata-case
s3: match the SymLink metadata key case-insensitively in ReadLink
2026-10-31 20:45:29 +01:00
dependabot[bot] 24adc1790c build(deps): bump github.com/go-git/go-git/v5 from 5.19.1 to 5.19.2
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.19.1 to 5.19.2.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Changelog](https://github.com/go-git/go-git/blob/main/HISTORY.md)
- [Commits](https://github.com/go-git/go-git/compare/v5.19.1...v5.19.2)

---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
  dependency-version: 5.19.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-31 19:45:23 +00:00
André Roth 0eee5c02d8 Merge pull request #1605 from aptly-dev/dependabot/go_modules/golang.org/x/crypto-0.52.0
build(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0
2026-10-31 20:43:00 +01:00
dependabot[bot] 585db213ec build(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.51.0 to 0.52.0.
- [Commits](https://github.com/golang/crypto/compare/v0.51.0...v0.52.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.52.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-31 19:09:19 +00:00
André Roth 57529f53ef Merge pull request #1600 from aptly-dev/dependabot/go_modules/golang.org/x/net-0.55.0
build(deps): bump golang.org/x/net from 0.53.0 to 0.55.0
2026-10-31 20:07:37 +01:00
André Roth bc0fe9c0b7 Merge pull request #1648 from AdamMagued/fix/issue-1619-snapshots-async-lock
fix(api): handle concurrent snapshot deletion during list endpoint
2026-10-31 20:06:28 +01:00
dependabot[bot] d6066de308 build(deps): bump golang.org/x/net from 0.53.0 to 0.55.0
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.53.0 to 0.55.0.
- [Commits](https://github.com/golang/net/compare/v0.53.0...v0.55.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.55.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-31 17:02:45 +00:00
adam magued f525d653a5 test(api): add regression test for concurrent snapshot deletion 2026-10-14 15:55:55 +03:00
adam magued 74c13f73f2 fix(api): handle concurrent snapshot deletion during list endpoint 2026-10-14 15:55:53 +03:00
André Roth 516fcc6bfd Merge pull request #1636 from mmayabi/add-aptlypilot-integration
Add AptlyPilot to integrations
2026-10-12 16:12:56 +02:00
André Roth 1c5db5f5b3 Merge pull request #1639 from voegelas/update-workflows
Update GitHub workflows
2026-10-12 16:09:33 +02:00
Andreas Vögele f51224958b Remove Debian 11 from ci-debian-build
Debian 11 reached its end-of-life on 31 August 2026.
2026-09-15 13:40:57 +02:00
Andreas Vögele fef55f81e5 Update the versions of the GitHub actions 2026-09-15 12:29:24 +02:00
mmayabi 16691aad83 add Integrations aptlyPilot 2026-09-10 19:41:13 +03:30
mmayabi e4c3399ae5 add Integrations AptlyPilot 2026-09-10 19:40:20 +03:30
Martin Simon ed180e8e16 Cover ReadLink's non-link and error paths
codecov/patch flagged the change at 75% of diff hit. The uncovered lines
were the two the existing test could not reach: the fallthrough when no
metadata key matches, and the HeadObject error return.

Both are worth pinning regardless of the coverage gate.
packageIndexByHash calls ReadLink on a path it has only just confirmed
exists and treats an error as "leave it alone", so "this is not a link"
and "I could not find out" have to stay distinguishable: the first is an
empty string with a nil error, the second is an error.

ReadLink goes to 100%.
2026-08-31 13:21:22 +02:00
Martin Simon 563e4eab2e s3: match the SymLink metadata key case-insensitively in ReadLink
S3 lowercases user metadata keys. SymLink writes "SymLink" and ReadLink
looks up output.Metadata["SymLink"], but the value comes back under
"symlink", so the lookup misses and ReadLink returns an empty string with
a nil error. To the caller that reads as "this object is not a link"
rather than as a failure.

deb.packageIndexByHash uses ReadLink to find the physical file its .old
pointer refers to, and removes it before rotating:

    linkTarget, err = publishedStorage.ReadLink(oldIndexPath)
    if err == nil {
        _ = publishedStorage.Remove(linkTarget)
    }

With "" returned the Remove is a no-op and its error is discarded, so the
superseded by-hash index file is never deleted. The pointers rotate
correctly and the physical files accumulate: one per index file per hash
algorithm per publish, indefinitely. Filesystem backends are unaffected
because they have real symlinks.

Measured on a live R2-backed archive publishing three suites a few times
a day: dists/ held 711 objects, of which 672 were by-hash and only 39
were current indexes, growing by about 48 objects per publish since
Acquire-By-Hash was enabled.

The existing TestSymLink cannot catch this, because it ends in
c.Skip("copy not available in s3test") and never runs. The regression
test added here writes the metadata with PutObject instead, so it needs
no CopyObject support, and fails before this change with
obtained string = "".
2026-08-31 11:17:35 +02:00
KereMath 54a519b062 tests: cover skel files with multiple components at unit level
Regression test for the duplicated skel payload: publishing two
components used to append each skeleton file once per component. Fails
against the previous code with doubled file contents, mirroring the
PublishRepo40Test system test at unit level.
2026-08-20 11:07:06 +03:00
KereMath c54d44e070 tests: cover skel and AppStream publish error paths
Publish moved the skel and AppStream emission out of the per-component
loop, and codecov flags the relocated error branches as uncovered. Cover
them with deterministic failures:

- a regular file in the middle of the skel path makes the walk fail
  with ENOTDIR, which is not swallowed as a not-exist error
- nested skel/AppStream names each within NAME_MAX flatten into a
  temporary index file name that exceeds it, failing index creation
- an unreadable skel file (mode 0) fails the open (non-root only)
- a ~1MB filesystem as TMPDIR runs out of space mid-write, reusing the
  /smallfs convention from DiskFullSuite

Also add a unit-level happy path test publishing nested skel files and
checking they land in the published tree and the Release checksums.
2026-08-20 11:04:01 +03:00
KereMath bef02fe62b tests: cover skel files with multiple components
Publishing two components appended each skeleton payload twice; the
existing skel test only publishes a single component so it did not
catch it.
2026-08-20 03:26:30 +03:00
KereMath c4ad756b47 publish: add by-hash entries for skel and AppStream files
SkelIndex was the only index constructor not propagating acquireByHash,
so with -acquire-by-hash the Release file advertises Acquire-By-Hash: yes
while no by-hash/ entries exist for these files and apt gets a 404.
2026-08-20 03:09:25 +03:00
KereMath 23c5a31922 publish: write skel and AppStream files once per publish
The skeleton and AppStream loops were nested inside the per-component
loop while iterating over all components themselves, so every file was
written once per component. Publishing main + contrib appended each
payload twice. Release checksums are computed after the fact, so the
duplicated content is signed and apt accepts it silently.
2026-08-20 03:09:09 +03:00
Thomas Berger f95153a7c9 api: fix snasphot-pull
in the API, snapshotPull never finished reading the target repository
within the async block. So the target was treated as an empty
snapshot, and a pull would only carry over the content from the sources
2026-07-25 01:48:55 +02:00
André Roth f59b0d2b06 go: 1.26 2026-07-01 10:40:38 +02:00
André Roth aa42fc1025 Merge pull request #1598 from C0deSentin3l/master
Dont lock the go version to the .0 release
2026-06-29 16:58:46 +02:00
C0deSentin3l 080da87b4e Dont lock the go version to the .0 release
the .0 release of go 1.25 is not the latest version of that release so missing out on security fixes etc
2026-06-29 12:06:48 +01:00
André Roth 87e6a36d9b docs: update release task list 2026-06-25 16:33:40 +02:00
André Roth 908f7348d9 Merge pull request #1596 from aptly-dev/release/1.6.3
Release 1.6.3
v1.6.3
2026-06-24 23:35:03 +02:00
André Roth 65b34cfec5 debian: update changelog 2026-06-24 20:37:39 +02:00
André Roth 48907fc915 Merge pull request #1594 from aptly-dev/fix/s3-race
s3: fix race conditions
2026-06-19 13:31:12 +02:00
André Roth 6f92c51134 Merge pull request #1593 from aptly-dev/fix/repo-edit-name-optional
Fix/repo edit name optional
2026-06-19 13:01:14 +02:00
André Roth c63324756b s3: fix pathCache race condition
Make sure pathCache is properly locked for concurrent access.

Add RWMutex to the PublishedStorage struct:
- Cache initialization
  Read-lock to test for nil, then write-lock with a second nil check before populating
- Cache reads
  RLock/RUnlock, allowing concurrent readers
- Cache writes / deletes
  Lock/Unlock
2026-06-19 12:53:44 +02:00
André Roth cfa79a0a32 api: make updating name optional in repo edit
and path escape the new name param
2026-06-19 11:47:07 +02:00
André Roth 1b177bbf68 tests: remove temporary folders 2026-06-19 11:47:07 +02:00
André Roth c0c4bc3e35 Merge pull request #1584 from aptly-dev/dependabot/go_modules/go.opentelemetry.io/otel/sdk-1.43.0
build(deps): bump go.opentelemetry.io/otel/sdk from 1.39.0 to 1.43.0
2026-06-19 10:07:31 +02:00
dependabot[bot] 64e298e737 build(deps): bump go.opentelemetry.io/otel/sdk from 1.39.0 to 1.43.0
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.39.0 to 1.43.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.39.0...v1.43.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.43.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-19 00:14:12 +00:00
André Roth 423fb6e813 Merge pull request #1590 from aptly-dev/dependabot/go_modules/github.com/go-git/go-git/v5-5.19.1
build(deps): bump github.com/go-git/go-git/v5 from 5.14.0 to 5.19.1
2026-06-19 02:12:40 +02:00
dependabot[bot] 6c4d7a75f9 build(deps): bump github.com/go-git/go-git/v5 from 5.14.0 to 5.19.1
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.14.0 to 5.19.1.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Changelog](https://github.com/go-git/go-git/blob/main/HISTORY.md)
- [Commits](https://github.com/go-git/go-git/compare/v5.14.0...v5.19.1)

---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
  dependency-version: 5.19.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-18 23:26:52 +00:00
André Roth a743f03242 go: use version 1.25.0 2026-06-19 01:23:28 +02:00
André Roth d9bedfa478 Merge pull request #1585 from aptly-dev/dependabot/go_modules/github.com/go-jose/go-jose/v4-4.1.4
build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4
2026-06-19 00:12:38 +02:00
dependabot[bot] e8e3f944ea build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4
Bumps [github.com/go-jose/go-jose/v4](https://github.com/go-jose/go-jose) from 4.1.3 to 4.1.4.
- [Release notes](https://github.com/go-jose/go-jose/releases)
- [Commits](https://github.com/go-jose/go-jose/compare/v4.1.3...v4.1.4)

---
updated-dependencies:
- dependency-name: github.com/go-jose/go-jose/v4
  dependency-version: 4.1.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-18 21:10:07 +00:00
André Roth 3c98aa237a Merge pull request #1588 from aptly-dev/fix/source-package-list
fix empty line in Source PackageList
2026-06-18 23:07:37 +02:00
André Roth be68b15b74 Source files: fix empty line in Package-List 2026-06-18 22:28:43 +02:00