- 08 Sep, 2021 1 commit
-
-
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.
-
- 06 Sep, 2021 2 commits
-
-
David Runge authored
examples/sysusers.d/arch-release-promotion.conf: Add an example sysusers.d configuration file to create the arch-release-sync user on a target system.
-
David Runge authored
arch_release_promotion/config.py: Change PROJECTS_SYNC_DIR to /var/lib/arch-release-sync (as arch-release-promotion does not reflect the used executable).
-
- 05 Sep, 2021 14 commits
-
-
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
-
David Runge authored
pyproject.toml: Set project version to 0.2.0. Change project description and extend keywords to reflect the extended project scope.
-
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.
-
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`.
-
David Runge authored
pyproject.toml: Extend tool.poetry.scripts table to add an entrypoint for `arch-release-sync`.
-
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.
-
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.
-
David Runge authored
arch_release_promotion/gitlab.py: Change `Upstream.download_release()` to also print the name of the project.
-
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()`.
-
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()`.
-
David Runge authored
arch_release_promotion/gitlab.py: Change the `Upstream` constructor to accept private_token to be an optional string.
-
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()`.
-
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.
-
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.
-
- 14 Aug, 2021 1 commit
-
-
David Runge authored
* nl6720/gpg-options: signature.py: enforce sane gpg options
-
- 13 Aug, 2021 1 commit
-
-
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.
-
- 09 Aug, 2021 18 commits
-
-
David Runge authored
* origin/issues/14: Increase project version to 0.1.1 pyproject.toml: Add examples to sdist tarball
-
David Runge authored
pyproject.toml: Set project version to 0.1.1
-
David Runge authored
pyproject.toml: Add example files to sdist tarball.
-
David Runge authored
* origin/issues/13: Update poetry lock file pyproject.toml: Update dependency versions pyproject.toml: Add metadata .gitignore: Add dist directory
-
David Runge authored
poetry.lock: Update the poetry lock file by updating all dependencies to their respective latest versions.
-
David Runge authored
pyproject.toml: Update python-dotenv, python-gitlab and orjson to their respective current version.
-
David Runge authored
pyproject.toml: Add project metadata via `readme`, `homepage`, `repository`, `documentation`, `keywords`, `classifiers` and additional links in a `[tool.poetry.urls]` section.
-
David Runge authored
.gitignore: Add the dist directory to the ignore file.
-
David Runge authored
* origin/issues/10: README: Point to example configuration Add an example file for projects configuration README: Change openmetrics section into configuration subsection README: Move "Use" section below "Requirements" section README: Update JSON payload section README: Fix typo in Configuration section README: Add section about promotion artifact Fix releng example configuration
-
David Runge authored
README.rst: Point to the example.toml for documentation purposes.
-
David Runge authored
examples/example.toml: Add a generic example file for project configuration that explains all options.
-
David Runge authored
README.rst: As the openmetrics section is about how to configure openmetrics and projects.toml to retrieve data from a build, it is best kept as a subsection of the configuration section.
-
David Runge authored
README.rst: Move the "Use" section below "Requirements" section, as it was located between sections that are dealing with configuration.
-
David Runge authored
README.rst: Update the JSON payload section to reflect the current settings around metrics and how they are reflected in a JSON payload and update all respective documentation around the payload's attributes. Change the JSON payload section to become a subsection of the "Promotion artifact" section.
-
David Runge authored
README.rst: Fix a typo in the Configuration section explaining that some of the configuration options can also be passed in as environment variables.
-
David Runge authored
README.rst: Add section that explains the common files in a promotion artifact.
-
David Runge authored
examples/projects.toml: Change the releng example configuration to use all relevant metrics, created by the releng releases and to create detached signatures for relevant files per release type.
-
David Runge authored
* origin/issues/4: gitlab-ci: Publish to pypi.org on tag
-
- 08 Aug, 2021 2 commits
-
-
David Runge authored
.gitlab-ci.yml: Add a publish stage, that uses `poetry publish` on a secure runner to push a release to pypi.org upon tagging. For this we make use of an access token configured for the project via the environment variable `POETRY_PYPI_TOKEN_PYPI`.
-
David Runge authored
* origin/issues/5: cli: Change default program behavior to iterate over all projects argparse: Extend to show version and making project optional gitlab: Be explicit during release selection Remove hardcoded version string config: Raise when there are no project configurations
-
- 07 Aug, 2021 1 commit
-
-
David Runge authored
arch_release_promotion/cli.py: Add `promote_project_release()` to promote releases of projects generically. If no `release_version` is provided, user input is requested to select a release that is not yet promoted. Change `main()` to rely on `promote_project_release()` by either promoting a specific release of a project (if the project or the project and the release version are provided) or iterating over all available projects in the configuration to allow the user to promote releases for them.
-