{"id":37075839,"url":"https://github.com/grip-on-software/deployer","last_synced_at":"2026-01-14T08:55:28.319Z","repository":{"id":171609888,"uuid":"648153615","full_name":"grip-on-software/deployer","owner":"grip-on-software","description":"Deployment web application","archived":false,"fork":false,"pushed_at":"2024-07-18T17:48:59.000Z","size":127,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-23T11:59:04.783Z","etag":null,"topics":["deployment-application","quality-gate"],"latest_commit_sha":null,"homepage":"https://gros.liacs.nl","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grip-on-software.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-06-01T10:24:31.000Z","updated_at":"2024-07-18T17:49:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"cb18ca38-b9b7-4b47-aa30-2783eea0dacc","html_url":"https://github.com/grip-on-software/deployer","commit_stats":null,"previous_names":["grip-on-software/deployer"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/grip-on-software/deployer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fdeployer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fdeployer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fdeployer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fdeployer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grip-on-software","download_url":"https://codeload.github.com/grip-on-software/deployer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fdeployer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deployment-application","quality-gate"],"created_at":"2026-01-14T08:55:27.679Z","updated_at":"2026-01-14T08:55:28.305Z","avatar_url":"https://github.com/grip-on-software.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"GROS deployment interface\n=========================\n\n[![PyPI](https://img.shields.io/pypi/v/gros-deployer.svg)](https://pypi.python.org/pypi/gros-deployer)\n[![Build \nstatus](https://github.com/grip-on-software/deployer/actions/workflows/deployer-tests.yml/badge.svg)](https://github.com/grip-on-software/deployer/actions/workflows/deployer-tests.yml)\n[![Coverage \nStatus](https://coveralls.io/repos/github/grip-on-software/deployer/badge.svg?branch=master)](https://coveralls.io/github/grip-on-software/deployer?branch=master)\n[![Quality Gate\nStatus](https://sonarcloud.io/api/project_badges/measure?project=grip-on-software_deployer\u0026metric=alert_status)](https://sonarcloud.io/project/overview?id=grip-on-software_deployer)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.12571035.svg)](https://doi.org/10.5281/zenodo.12571035)\n\nThis repository contains a Web application that provides a management interface \nfor application deployments using a quality gate.\n\n## Installation\n\nThe latest version of the GROS deployment interface and its dependencies can be \ninstalled using `pip install gros-deployer`.\n\nAnother option is to build the module from this repository, which allows using \nthe most recent development code. Run `make setup` to install the dependencies. \nThe deployment interface itself may then be installed with `make install`, \nwhich places the package in your current environment. We recommend using \na virtual environment during development.\n\n## Running\n\nSimply start the application using `gros-deployer`. Use command-line arguments \n(displayed with `gros-deployer --help`) and/or a data-gathering `settings.cfg` \nfile (specifically the sections `ldap`, `deploy` and `jenkins` influence this \napplication's behavior - see the [gros-gatherer documentation on \nconfiguration](https://gros.liacs.nl/data-gathering/configuration.html) for \ndetails).\n\nYou can also configure the application as a `systemd` service such that it can \nrun headless under a separate user, using a `virtualenv` setup shared with the \n[controller](https://gros.liacs.nl/data-gathering/api.html#controller-api) of \nthe agent-based data gathering setup. See the `gros-deployer.service` file in \nthis repository for a possible setup (using a `deployer` user and group) and \n[installation](https://gros.liacs.nl/data-gathering/installation.html#controller) \nof the controller for some pointers in this advanced setup.\n\nFor the option to restart a `systemd` service when a deployment is updated, the \nuser running the application must have `sudo` rights to execute at least the \n`systemctl` binary.\n\n## Development and testing\n\nTo run tests, first install the test dependencies with `make setup_test` which \nalso installs all dependencies for the server framework. Then `make coverage` \nprovides test results in the output and in XML versions compatible with, e.g., \nJUnit and SonarQube available in the `test-reports/` directory. If you do not \nneed XML outputs, then run `make test` to just report on test successes and \nfailures or `make cover` to also have the terminal report on hits and misses in \nstatements and branches.\n\n[GitHub Actions](https://github.com/grip-on-software/deployer/actions) \nis used to run the unit tests and report on coverage on commits and pull \nrequests. This includes quality gate scans tracked by \n[SonarCloud](https://sonarcloud.io/project/overview?id=grip-on-software_deployer) \nand [Coveralls](https://coveralls.io/github/grip-on-software/deployer) for \ncoverage history.\n\nThe Python module conforms to code style and typing standards which can be \nchecked using Pylint with `make pylint` and mypy with `make mypy`, after \ninstalling the pylint and mypy dependencies using `make setup_analysis`; typing \nreports are XML formats compatible with JUnit and SonarQube placed in the \n`mypy-report/` directory. To also receive the HTML report, use `make mypy_html` \ninstead.\n\nWe publish releases to [PyPI](https://pypi.org/project/gros-deployer/) using \n`make setup_release` to install dependencies and `make release` which performs \nmultiple checks: unit tests, typing, lint and version number consistency. The \nrelease files are also published on \n[GitHub](https://github.com/grip-on-software/deployer/releases) and from there \nare archived on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.12571034). \nNoteworthy changes to the module are added to the [changelog](CHANGELOG.md).\n\n## License\n\nGROS deployment interface is licensed under the Apache 2.0 License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrip-on-software%2Fdeployer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrip-on-software%2Fdeployer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrip-on-software%2Fdeployer/lists"}