{ "info": { "author": "Eugene Davis", "author_email": "eugene.davis@tomtom.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# ebr-board\n\n[![Build Status](https://dev.azure.com/tomtomweb/GitHub-TomTom-International/_apis/build/status/tomtom-international.ebr-board?branchName=master)](https://dev.azure.com/tomtomweb/GitHub-TomTom-International/_build/latest?definitionId=39&branchName=master)\n\n\n[![PyPI - Version](https://img.shields.io/pypi/v/ebr-board.svg)](https://pypi.org/project/ebr-board/)\n[![PyPI - License](https://img.shields.io/pypi/l/ebr-board.svg)](https://pypi.org/project/ebr-board/)\n[![PyPI - Python Versions](https://img.shields.io/pypi/pyversions/ebr-board.svg)](https://pypi.org/project/ebr-board/)\n[![PyPI - Format](https://img.shields.io/pypi/format/ebr-board.svg)](https://pypi.org/project/ebr-board/)\n[![PyPI - Status](https://img.shields.io/pypi/status/ebr-board.svg)](https://pypi.org/project/ebr-board/)\n[![PyUp - Updates](https://pyup.io/repos/github/tomtom-international/ebr-board/shield.svg)](https://pyup.io/repos/github/tomtom-international/ebr-board/)\n\n\nRESTful interface for Elastic Build Results.\n\n## Usage\n\nTo view the API documentation, start the server and go to to `/api/docs`.\n\n## Configuration\n\nebr-board uses [Vault-Anyconfig](https://pypi.org/project/vault-anyconfig/) to read in its configuration, allowing it to access a Hashicorp Vault\ninstance for loading secrets. For more details refer to its documentation.\n\nIn order to deploy a simple ebr-board instance, you will need two files: `config.yaml` and `vault.yaml`. Leave `vault.yaml` empty, as we will not use\nsecret loading from Vault-Anyconfig in this instance.\n\n`config.yaml` should be formatted as follows:\n\n```yaml\nelastic:\n host: \n port: 9200\n timeout: 20\n use_ssl: true\n verify_certs: true\n ca_certs: /etc/ebr-board/elastic.crt\n index: testspipeline*\n user: \n pwd: \n\n```\n\nTo change the default url prefix (`/api`) add a new key-value at the top level:\n```yaml\nurl_prefix: \"/new_prefix\"\n```\n\nTo have *no* prefix, provide an empty string, i.e.\n```yaml\nurl_prefix: \"\"`\n```\n\n\n### Dev Mode\n\nTo start in dev mode, run ` python ebr_board/ebr_board.py`\n\n### Production Mode\n\nCan be invoked with `ebr_board:create_app(config_filename='/etc/ebr-board/config.yaml', vault_config_filename='/etc/ebr-board/vault.yaml', vault_creds_filename='/etc/ebr-board/vault.yaml', load_certs=True, reverse_proxy=True)`, for example from Gunicorn. You should configure it behind a reverse proxy - for more details see\nany guide on configuring Flask servers for deployment. A Dockerfile pre-configuring Gunicorn is available in the root of the repository.\n\n### AWS Lambda Support\n\nThe application can be run in AWS Lambda by using the `handler` function in the `aws_lambda` module. In this case it should be installed with the\n`aws_lambda` optional dependencies, i.e. `pip install ebr-board['aws_lambda']`.\nIt expects that the configuration (the main configuration, vault configuration and vault creds) will be stored entirely as strings in the parameter\nstore. The way it processes these parameters can be configured with environmental variables:\n* `config_name`: defaults to `ebr_board_config`\n* `vault_config_name`: defaults to `ebr_board_vault_config`\n* `vault_creds_name`: defaults to `ebr_board_vault_creds`\n* `config_format`: defaults to `yaml`\n\n## Features\n\n* Provides abstraction to fetch:\n * a list of builds from a given job\n * tests from a given job\n * aggregations of tests failures\n* AWS Lambda support\n\n### Todo:\n\n* Improve test coverage\n* Fill in coverage of resources\n* Expand aggregation/search functionality\n\n## Credits\n\nThis package was created with [Cookiecutter](https://github.com/audreyr/cookiecutter) and the [tomtom-international/cookiecutter-python](https://github.com/tomtom-international/cookiecutter-python) project template.\n\n\n# Changelog\n\n## 0.2.0 (2019-08-26)\n\n* Removed support for Python 3.5\n\n## 0.1.1 (2019-08-23)\n\n * Added extras_require for aws_lambda\n\n## 0.1.0 (2019-08-22)\n\n * Add aws lambda handler\n * Clean up code to contain state better (for lambda compatability)\n\n## 0.0.1-dev (2019-07-05)\n\n * First release on PyPI.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tomtom-international/ebr-board", "keywords": "ebr_board", "license": "Apache Software License 2.0", "maintainer": "", "maintainer_email": "", "name": "ebr-board", "package_url": "https://pypi.org/project/ebr-board/", "platform": "", "project_url": "https://pypi.org/project/ebr-board/", "project_urls": { "Homepage": "https://github.com/tomtom-international/ebr-board" }, "release_url": "https://pypi.org/project/ebr-board/0.2.1/", "requires_dist": null, "requires_python": "", "summary": "RESTful interface for Elastic Build Results.", "version": "0.2.1" }, "last_serial": 5760583, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b4f4f849532c39695fa23d83eb2e2fc0", "sha256": "7893c2965f731b8e6828917b32b2996ae7fdda6ac32680b8d88dadfe411a5888" }, "downloads": -1, "filename": "ebr_board-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b4f4f849532c39695fa23d83eb2e2fc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18185, "upload_time": "2019-07-17T14:29:44", "url": "https://files.pythonhosted.org/packages/8a/b9/d8d0878a5f4d27f75a624fc051910803e7d5f739ce6110c31e6370e506b2/ebr_board-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "9d950772d11c0195b5ebe51862a0eb3b", "sha256": "24f460454af1273e59321c3f3f8ebf6cdd7e6ee6fc7ac8279aa7c7086ebfbb22" }, "downloads": -1, "filename": "ebr_board-0.0.2.tar.gz", "has_sig": false, "md5_digest": "9d950772d11c0195b5ebe51862a0eb3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18171, "upload_time": "2019-07-31T14:08:02", "url": "https://files.pythonhosted.org/packages/c6/f6/791b01aee05d100771462e8fd9007ebc2f4d4c952ceff886ae97841bbfa2/ebr_board-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "ed12817fa8321444f71d77718abb55c1", "sha256": "944e290f057c0a6e8bd5a33b0510e28eaf17539e78563d5e55ae975d1613e09b" }, "downloads": -1, "filename": "ebr_board-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ed12817fa8321444f71d77718abb55c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18177, "upload_time": "2019-08-01T09:30:37", "url": "https://files.pythonhosted.org/packages/e7/c3/97452cd279b4f8920de29e1fa9d861c96e3a9a9ed810a0fd7a9426856846/ebr_board-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "7c30b98a08d8e9e851e22668e472f7fe", "sha256": "0ce5644e30a13eecfdfaf6de995a79e5fbee0bdcd577d1747a5b816d637d0104" }, "downloads": -1, "filename": "ebr_board-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7c30b98a08d8e9e851e22668e472f7fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18296, "upload_time": "2019-08-22T15:34:57", "url": "https://files.pythonhosted.org/packages/00/07/d32bebde1e041a9daf53ba6345b6a448c33ddd2d741b580237ae1c95e459/ebr_board-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5bf3c51df63bc6f83f3b333a38c222ea", "sha256": "d6c9fae66b8dd44890b3a6aaae4ab0899b41349f9c16f5366240f641d7fd206f" }, "downloads": -1, "filename": "ebr_board-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5bf3c51df63bc6f83f3b333a38c222ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18421, "upload_time": "2019-08-23T11:56:22", "url": "https://files.pythonhosted.org/packages/ee/2a/9ee037aaa59879e8969424b5c0e686f77b114bdfea72e9ad1427cd4e3c0e/ebr_board-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "398297e8e883c4d9341c1f7769c570d4", "sha256": "43911c7367bae266723edbaab5540da184a4e659a347ef3d90db56758b8cd1b7" }, "downloads": -1, "filename": "ebr_board-0.2.0.tar.gz", "has_sig": false, "md5_digest": "398297e8e883c4d9341c1f7769c570d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18971, "upload_time": "2019-08-26T12:11:32", "url": "https://files.pythonhosted.org/packages/0e/cd/d3baa5b518dab692695ca17a7dcddd67d1dedff87ea0dc646ad574b0e301/ebr_board-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "4f22ef339e438af6279a894a4d5cba0b", "sha256": "c5e84ddb6bd7c6d132a3a7b1d44dbf4d5b5a2901c47e24a9d0aac383f82c4359" }, "downloads": -1, "filename": "ebr_board-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4f22ef339e438af6279a894a4d5cba0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19411, "upload_time": "2019-08-30T14:31:37", "url": "https://files.pythonhosted.org/packages/60/b9/1d22962db4915bac1bb65eb04af1e6c1358eae8aeb2b21e2a27997cbc83e/ebr_board-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4f22ef339e438af6279a894a4d5cba0b", "sha256": "c5e84ddb6bd7c6d132a3a7b1d44dbf4d5b5a2901c47e24a9d0aac383f82c4359" }, "downloads": -1, "filename": "ebr_board-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4f22ef339e438af6279a894a4d5cba0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19411, "upload_time": "2019-08-30T14:31:37", "url": "https://files.pythonhosted.org/packages/60/b9/1d22962db4915bac1bb65eb04af1e6c1358eae8aeb2b21e2a27997cbc83e/ebr_board-0.2.1.tar.gz" } ] }