{"id":41698203,"url":"https://github.com/grip-on-software/server-framework","last_synced_at":"2026-01-24T20:55:05.504Z","repository":{"id":171609895,"uuid":"648153300","full_name":"grip-on-software/server-framework","owner":"grip-on-software","description":"Web application framework for building authenticated services with templating support","archived":false,"fork":false,"pushed_at":"2024-07-19T12:23:55.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-30T02:22:25.412Z","etag":null,"topics":["authentication","server-framework","templates"],"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:23:38.000Z","updated_at":"2024-07-19T12:24:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"a1163270-bd5a-4a37-b5ee-792ed6e8524c","html_url":"https://github.com/grip-on-software/server-framework","commit_stats":null,"previous_names":["grip-on-software/server-framework"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/grip-on-software/server-framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fserver-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fserver-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fserver-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fserver-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grip-on-software","download_url":"https://codeload.github.com/grip-on-software/server-framework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grip-on-software%2Fserver-framework/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28736791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T19:23:36.361Z","status":"ssl_error","status_checked_at":"2026-01-24T19:23:28.966Z","response_time":89,"last_error":"SSL_read: 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":["authentication","server-framework","templates"],"created_at":"2026-01-24T20:55:04.818Z","updated_at":"2026-01-24T20:55:05.483Z","avatar_url":"https://github.com/grip-on-software.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GROS Python server framework\n\n[![PyPI](https://img.shields.io/pypi/v/gros-server.svg)](https://pypi.python.org/pypi/gros-server)\n[![Build \nstatus](https://github.com/grip-on-software/server-framework/actions/workflows/server-tests.yml/badge.svg)](https://github.com/grip-on-software/server-framework/actions/workflows/server-tests.yml)\n[![Coverage \nStatus](https://coveralls.io/repos/github/grip-on-software/server-framework/badge.svg?branch=master)](https://coveralls.io/github/grip-on-software/server-framework?branch=master)\n[![Quality Gate\nStatus](https://sonarcloud.io/api/project_badges/measure?project=grip-on-software_server-framework\u0026metric=alert_status)](https://sonarcloud.io/project/overview?id=grip-on-software_server-framework)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.11580150.svg)](https://doi.org/10.5281/zenodo.11580150)\n\nThis repository contains a framework for setting up a Web application based on \nPython modules, using [CherryPy](https://cherrypy.dev/) for routing.\n\nThis framework is used for a few servers within the Grip on Software pipeline, \nnamely the [deployer](https://github.com/grip-on-software/deployer) and \n[status-dashboard](https://github.com/grip-on-software/status-dashboard) \nrepositories.\n\n## Installation and building\n\nThe latest version of GROS server framework module and its dependencies can be \ninstalled using `pip install gros-server`. In order to use LDAP as the \nauthentication scheme, use `pip install gros-server[ldap]`.\n\nAnother option is to build the module from this repository, which allows using \nthe most recent development code. Some functionality of the server framework is \nbased on the [data gathering module](https://pypi.org/project/gros-gatherer/) \nand requires a proper installation of that package. It and other dependencies \nmay be installed using `make setup`. The server framework itself may then be \ninstalled with `make install`, which places the package in your current \nenvironment. We recommend using a virtual environment during development.\n\nUse `make build` in order to generate a wheel package for the framework. The \nfiles can then be found in the `dist` directory (and installed from there using \n`pip install \u003cpath\u003e`).\n\nThe `Jenkinsfile` in this repository contains steps to build the package and \nupload it to a PyPi-based repository so that it may be installed from there, \nwhen built on a Jenkins CI server.\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/server-framework/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_server-framework) \nand [Coveralls](https://coveralls.io/github/grip-on-software/server-framework) \nfor coverage 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-server/) 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/server-framework/releases) and \nfrom there are archived on \n[Zenodo](https://zenodo.org/doi/10.5281/zenodo.11580149). Noteworthy changes to \nthe module are added to the [changelog](CHANGELOG.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrip-on-software%2Fserver-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrip-on-software%2Fserver-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrip-on-software%2Fserver-framework/lists"}