1. 14 Apr, 2022 2 commits
    • David Runge's avatar
      Update poetry lock file · dd287997
      David Runge authored
      poetry.lock:
      Update poetry lock file
      dd287997
    • David Runge's avatar
      Update functionally blocking dependencies · 43d6c0e7
      David Runge authored
      pyproject.toml:
      Update the python requirement to 3.10.
      Update the prometheus-client requirement to 0.14.1.
      Update the pytest dev requirement to 7.1.
      Update the black dev requirement to 22.3.
      Update the mypy dev requirement to 0.942.
      Update the flake8 dev requirement to 4.0.1.
      Update the coverage dev requirement to 6.1.
      Change the build-system to also pull in setuptools as some dependencies
      do not build properly.
      Change the mypy configuration to show specific error codes.
      43d6c0e7
  2. 13 Apr, 2022 1 commit
  3. 08 Sep, 2021 4 commits
    • David Runge's avatar
      Merge branch 'issues/16' · d851bfba
      David Runge authored
      * issues/16:
        Set project version to 0.2.1
        Add documentation for systemd and sysusers.d integration
        Add example for systemd integration
        Add example for sysusers.d integration
        Set default sync dir to /var/lib/arch-release-sync
      d851bfba
    • David Runge's avatar
      Set project version to 0.2.1 · 64f59ed2
      David Runge authored
      pyproject.toml:
      Raise project version to 0.2.1.
      64f59ed2
    • David Runge's avatar
      Add documentation for systemd and sysusers.d integration · 768a687e
      David Runge authored
      README.rst:
      Add documentation on where to find the systemd and sysusers.d
      integration and how they relate to one another.
      768a687e
    • David Runge's avatar
      Add example for systemd integration · 9bd8ee5b
      David Runge authored
      examples/systemd/arch-release-sync.service:
      Add an example systemd system service with applied hardening, that
      allows synchronization to the default sync location.
      
      examples/systemd/arch-release-sync.timer:
      Add and example systemd system timer that triggers running
      arch-release-sync.service hourly.
      9bd8ee5b
  4. 06 Sep, 2021 2 commits
  5. 05 Sep, 2021 14 commits
    • David Runge's avatar
      Merge branch 'issues/12' · 270fda4e
      David Runge authored
      * issues/12:
        pyproject.toml: Update project version to 0.2.0
        README: Extend with information on arch-release-sync
        example.toml: Add synchronization related documentation
        Add script entrypoint for arch-release-sync
        cli: Add entrypoint for arch-release-sync
        files: Add ProjectFiles class to handle synchronization
        gitlab: More explicit print when downloading build artifacts
        gitlab: Implement download of promotion artifact
        argparse: Add parser for arch-release-sync
        gitlab: Change signature of constructor
        gitlab: More generically retrieve types of releases
        config: Make PRIVATE_TOKEN optional
        config: Add integration to configure synchronization
      270fda4e
    • David Runge's avatar
      pyproject.toml: Update project version to 0.2.0 · aa865808
      David Runge authored
      pyproject.toml:
      Set project version to 0.2.0.
      Change project description and extend keywords to reflect the extended
      project scope.
      aa865808
    • David Runge's avatar
      README: Extend with information on arch-release-sync · 35cd8bd0
      David Runge authored
      README.rst:
      Extend with information on arch-release-sync, how to configure it and
      how its synchronization behaves.
      Add gnupg explicitly to non-language dependencies for the tooling.
      35cd8bd0
    • David Runge's avatar
      example.toml: Add synchronization related documentation · be85f200
      David Runge authored
      examples/example.toml:
      Add documentation on the global and per-project `sync_config` table and
      their options `backlog`, `directory`, `last_updated_file`,
      `temp_in_sync_dir`.
      be85f200
    • David Runge's avatar
      Add script entrypoint for arch-release-sync · aed5eb30
      David Runge authored
      pyproject.toml:
      Extend tool.poetry.scripts table to add an entrypoint for
      `arch-release-sync`.
      aed5eb30
    • David Runge's avatar
      cli: Add entrypoint for arch-release-sync · 3145c2d7
      David Runge authored
      arch_release_promotion/cli.py:
      Add `arch_release_sync()` as entrypoint for arch-release-sync, using
      `files.ProjectFiles.sync()` to synchronize any configured releases for a
      given project.
      3145c2d7
    • David Runge's avatar
      files: Add ProjectFiles class to handle synchronization · d4af71d2
      David Runge authored
      arch_release_promotion/files.py:
      Add `load_release_from_json_payload()` to read a JSON payload and return
      it as a Release instance.
      Add the `ProjectFiles` class to aid in the synchronization of promoted
      release types of a project by bundling all necessary functionality.
      The special factory method `ProjectFiles.sync()` allows the creation of
      a `ProjectFiles` instance and direct synchronization of the configured
      amount of release versions of the project.
      
      tests/test_files.py:
      Add tests for `load_release_from_json_payload()`.
      Add tests for `ProjectFiles` and all of its classmethods and instance
      methods.
      d4af71d2
    • David Runge's avatar
      gitlab: More explicit print when downloading build artifacts · 96d52827
      David Runge authored
      arch_release_promotion/gitlab.py:
      Change `Upstream.download_release()` to also print the name of the
      project.
      96d52827
    • David Runge's avatar
      gitlab: Implement download of promotion artifact · 3da45f80
      David Runge authored
      arch_release_promotion/gitlab.py:
      Add `download_promotion_artifact()` to allow download of a project
      release's promotion artifact to a directory.
      
      tests/test_gitlab.py:
      Add tests for `download_promotion_artifact()`.
      3da45f80
    • David Runge's avatar
      argparse: Add parser for arch-release-sync · 403d18ee
      David Runge authored
      arch_release_promotion/argparse.py:
      Add `ArgParseFactory.synchronize()` classmethod to add a simple
      entrypoint for `arch-release-sync`, that supports the `-p`/`--project`
      optional parameters and display of version information.
      
      tests/test_argparse.py:
      Add tests for `ArgParseFactory.synchronize()`.
      403d18ee
    • David Runge's avatar
      gitlab: Change signature of constructor · fb651a75
      David Runge authored
      arch_release_promotion/gitlab.py:
      Change the `Upstream` constructor to accept private_token to be an
      optional string.
      fb651a75
    • David Runge's avatar
      gitlab: More generically retrieve types of releases · 0a72736d
      David Runge authored
      arch_release_promotion/gitlab.py:
      Add `Upstream.get_releases()` to allow retrieval of promoted or
      unpromoted releases of an arbitrary upper limit.
      Change `Upstream.select_release()` to use `Upstream.get_releases()`.
      
      tests/test_gitlab.py:
      Add parametrized test for `Upstream.get_releases()`.
      0a72736d
    • David Runge's avatar
      config: Make PRIVATE_TOKEN optional · e05004bd
      David Runge authored
      arch_release_promotion/config.py:
      Change `Settings.PRIVATE_TOKEN` to become an optional attribute, as it
      is not required for readonly scenarios.
      Order all `Settings` attributes alphabetically and add documentation for
      them and their respective default values.
      Change `Settings.validate_private_token()` to reflect the change in type
      for `Settings.PRIVATE_TOKEN`.
      
      tests/test_config.py:
      Extend tests to also check for cases where `Settings.PRIVATE_TOKEN` is
      None.
      e05004bd
    • David Runge's avatar
      config: Add integration to configure synchronization · 598f81b5
      David Runge authored
      arch_release_promotion/config.py:
      Add a `SyncConfig` pydantic model to track a global or per project
      `backlog` (amount of versions synced), `directory` (with which to
      synchronize), `last_updated_file` (to which to write a timestamp upon
      changes in the synchronization directory) and `temp_in_sync_dir` (a bool
      to set whether temporary data is downloaded to the synchronization
      directory).
      Add an optional instance of SyncConfig to both `ProjectConfig` and
      `Projects`.
      Add a root_validator to `Projects` to allow overriding the `SyncConfig`
      of each project with implicit or global defaults if no `SyncConfig` is
      provided.
      Add validator for `Projects.projects` to ensure, that all
      `ReleaseConfig` names of each `ProjectConfig` instances are unique.
      
      tests/test_config.py:
      Extend tests for `Projects` in accordance with changes to models.
      598f81b5
  6. 14 Aug, 2021 1 commit
  7. 13 Aug, 2021 1 commit
    • nl6720's avatar
      signature.py: enforce sane gpg options · e5fd59df
      nl6720 authored
      * Add --batch since gpg is not run manually.
      * Add --no-armor to ensure that a .sig file is created instead of .asc in case gpg.conf sets the armor option.
      * Add --no-include-key-block to skip including the public key in the signature and force the user who verifies the signature to acquire the public key from elsewhere.
      
      Fixes #15.
      e5fd59df
  8. 09 Aug, 2021 15 commits