APTMirror: Partial mirroring

The APTMirror task should allow setting up a partial mirror of a remote repository, using various criteria to select which packages are mirrored. This has at least the following interesting use cases:

  • Doing non-trivial workflow testing is difficult without having a reasonably well-populated subset of Debian in the relevant Debusine instance, but this takes a lot of disk space. Filtering by components and architectures isn't typically enough, since most of the useful stuff is in main, and all of main even for a single architecture is very large. It would be useful to be able to tell an APTMirror task to fetch, say, everything build-essential plus a given set of source packages and their binaries.
  • Some third-party repositories allow everyone to fetch Packages and Sources, but limit access to individual package files. If we could tell APTMirror to download as much as it can but ignore 403 errors, then it would be possible to run tests against just the subset of packages you have access to.