Welcome to fossology’s documentation!¶
A simple wrapper for the Fossology REST API.
See the OpenAPI specification used to implement this library.
Compatible from API version 1.0.16 up to 1.2.1
Documentation¶
Usage¶
Installation¶
This project is available as Python package on PyPi.org.
Install fossology and required dependencies:
pip install fossology requests
Using the API¶
Get a REST API token either from the Fossology server under “User->Edit user account” or generate a token using the method available in this library:
from fossology import fossology_token from fossology.obj import TokenScope FOSSOLOGY_SERVER = "https://fossology.example.com/" FOSSOLOGY_USER = "fossy" FOSSOLOGY_PASSWORD = "fossy" TOKEN_NAME = "fossy_token" token = fossology_token( FOSSOLOGY_SERVER, FOSSOLOGY_USER, FOSSOLOGY_PASSWORD, TOKEN_NAME, TokenScope.WRITE )
Start using the API:
from fossology import Fossology foss = Fossology( FOSSOLOGY_SERVER, token, FOSSOLOGY_USER )
Contribute¶
Develop¶
All contributions in form of bug reports, feature requests or merge requests!
Use proper docstrings to document functions and classes
Extend the testsuite poetry run pytest with the new functions/classes
The documentation website can automatically be generated by the Sphinx autodoc extension
Build¶
You can build the PyPi package using poetry:
poetry build
Build documentation (the generated static site must be pushed to the gh-pages branch):
git clone -b gh-pages git@github.com:fossology/fossology-python.git docs/ poetry run sphinx-build docs-source docs/ cd docs/ # Create a new branch to be merged into gh-pages and commit your changes
Cleanup builds:
rm -r dist/ docs/
Tag¶
Each new release gets a new tag with important information about the changes added to the new release:
git tag -a vx.x.x -m "New major/minor/patch release x.x.x"
git push origin vx.x.x
Add required information in the corresponding release in the Github project.
Test¶
The testsuite available in this project expects a running Fossology instance under the hostname fossology with the default admin user “fossy”.
Use the latest Fossology container from Docker hub:
docker pull fossology/fossology tar xJf tests/files/base-files_11.tar.xz -C /tmp docker run --mount src="/tmp",dst=/tmp,type=bind --name fossology -p 80:80 fossology/fossology
Start the complete test suite or a specific test case (and generate coverage report):
poetry run coverage run --source=fossology -m pytest poetry run coverage report -m poetry run coverage html