Age | Commit message (Collapse) | Author |
|
... instead of relying on those dependencies being pulled in
indirectly.
|
|
|
|
...since we use recursion for trees a lot, but skip this check manually.
|
|
|
|
|
|
|
|
|
|
Despite the fact that HashFunction is a small type, it still makes sense to store it by reference to reflect the ownership. StorageConfig becomes the main holder.
Reference holders store HashFunction by const ref and aren't allowed to change it. However, they are free to return HashFunction by value since this doesn't benefit readability anyhow.
|
|
As populating the containers from remote response only takes place
once, no assumptions should be made that this cannot fail (for
example if wrong or invalid entries were produced). Instead, return
error messages on failure to callers that can log accordingly.
|
|
...instead of calling ProtocolTraits::IsCompatible
|
|
...and move it to the common stage.
|
|
|
|
|
|
...to create ArtifactDigests.
In some tests ArtifactDigests were constructed using non-hexadecimal string identifiers. These tests were adjusted so that ArtifactDigest contained a valid hash.
|
|
...with ArtifactDigestFactory::HashDataAs
|
|
... while keeping our .clang-format file.
|
|
... so that linting information gets propagated properly.
|
|
|
|
! => not; && => and, || => or
|
|
... following the remote-execution standard that all output paths (but
none of the input paths) are relative to the working directory.
Therefore, the executor has to do the path translation. For our
implementation of the API interface
- the local API now handles cwd correctly,
- the remote API forwards cwd correctly, and
- the git API continues to report actions as not implemented.
|
|
|
|
Also update the classes documentation accordingly.
|
|
...instead of separate local and remote instances.
For tests, where different implementations of the IExecutionApi
interface are used, ApiBundle instances are created by explicitly
setting the struct fields instead of using ApiBundle::Create.
|
|
|
|
The context is passed by not_null const pointer to avoid binding to
temporaries. The LocalApi also stores the context as const ref for
further access and passing it to LocalAction.
|
|
|
|
|
|
|
|
...to track changes during refactoring easier.
|
|
...and replace it with instances created early via a builder
pattern.
|
|
|
|
|
|
...and replace it with passed instances created early via a builder
pattern.
Tests are also updated accordingly.
|
|
...and replace it with passed instances created early via a builder
pattern.
|
|
|
|
As the classes describe the config type, their static creators can
have generic names, which reduces unnecessary verbosity.
|
|
...and move the related tests to artifact_description.test
|
|
...since it is used in tests only. It also duplicated serialization-deserialization of ArtifactDescription.
|
|
...instead of unobvious ctors relying on overload resolution.
|
|
|
|
|
|
...and create StorageConfig and Storage in place if needed.
|
|
|
|
|
|
Use a builder pattern for creation and validation, in a manner that
allows also other authentication methods to be added in the future
besides the current TLS/SSL.
The main Auth instances are built early and then passed by not_null
const pointers, to avoid passing temporaries, replacing the previous
Auth::TLS instances passed by simple nullable const pointers. Where
needed, these passed Auth instances are also stored, by const ref.
Tests also build Auth instances as needed, either with the default
'no certification' or from the test environment arguments.
|
|
|
|
...instead of std::optional<gsl::not_null<IExecutionApi const*>>
|
|
...and replace verbose constructions.
|
|
...instead of not_null const ptr.
|
|
|