1. A method comprising: in response to a package content update associated with a lineage of direct repositories, resolving, by a computing device in communication with non-transitory memory, a new direct repository within the non-transitory memory, the new direct repository corresponding to a latest direct repository of the lineage of direct repositories for storing package content; applying, by the computing device, a tag to each direct repository, each tag comprising a key-value pair indicating a status of the corresponding direct repository; determining, by the computing device, whether the tag applied to the new direct repository matches an indirection tag associated with an unresolved indirect repository; when the tag applied to the new direct repository matches the indirection tag, resolving, by the computing device, the unresolved indirect repository, the unresolved indirect repository pointing to the new direct repository; for subsequently resolved new indirect repositories, updating, by the computing device, the new indirect repository to point to the latest new direct repository including the applied tag that matches the indirection tag; when resolving the new indirect repository to point to the latest new direct repository, incrementing, by the computing device, a flag associated with the indirect repositories, the flag indicating a version associated with each indirect repository; and storing, by the computing device, a dynamic list of previous indirect repositories within the non-transitory memory, each previous indirect repository identified by the associated flag and the indirection tag.