Skip to content

vanHeemstraSystems/threagile-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

threagile-builder

Threagile Builder

CI/CD CI - Test CD - Build
Package PyPI - Version PyPI - Python Version
Meta Hatch project code style - black types - Mypy License - MIT GitHub Sponsors

A block-based no-code web application to create threagile YAML files

Executive Summary

Getting your code up and running on your own system.

Note: Make sure you fulfill the requirements.

  1. Installation process:

    $ cd threagile-builder
    $ hatch --version # optional, will print the version of our package to the terminal without modifying the source directory (e.g. `0.0.1`).
    # Without hatch: $ python src/threagile_builder/app.py
    $ hatch env create # optional, if the default env already exists you will be told
    $ hatch shell # spawn a shell within an environment
    (threagile-builder) $ pip show threagile-builder # optional, shows the project details, here 'threagile-builder', from `pyproject.toml`
    # Name: threagile-builder
    # Version: 0.0.1 # it takes this from src/threagile_builder/__about__.py
    # ...
    (threagile-builder) $ python -c "import sys;print(sys.executable)" # optional, see where your environment's python is located
    (threagile-builder) $ pip install --upgrade pip # optional, the `run` command allows you to execute commands in an environment as if you had already entered it.
    (threagile-builder) $ pip install -r requirements.txt # pipx won't do this
    (threagile-builder) $ python -m setuptools_scm # optional, display the version of our package and perform any side-effects like writing to a file. (here: `_version.py`)
    (threagile-builder) $ python src/threagile_builder/app.py # starts the app
    (threagile-builder) $ exit # optional, type `exit` to leave the environment
  2. Software dependencies

  3. Latest releases

  4. API references

  5. Build and Test:

    To build your code, use:

    $ cd threagile-builder
    $ hatch build

    To use AI for pull request reviews, use:

    https://app.coderabbit.ai/dashboard (uses phpstan.neon)

    To run the application, use:

    Linux:

    $ export SECRET_KEY="secret"

    Windows:

    $ setx SECRET_KEY secret

    Then:

    $ cd threagile-builder
    # Without hatch: $ python src/threagile_builder/app.py
    $ hatch run python src/threagile_builder/app.py

    Then, navigate to http://127.0.0.1:5000/ in your web browser.

    To run tests, use:

    $ cd threagile-builder
    $ pip install pytest # optional
    $ pytest tests/

API Documentation

Navigate to http://127.0.0.1:5000/docs in your web browser, or download the openapi.json from http://127.0.0.1:5000/openapi.json.

Metrics

Let a tool like Prometheus scrape http://127.0.0.1:9464/metrics.

___ NEW ___

Table of Contents

Installation

pip install threagile-builder

Version source

  • The hatch-vcs version source plugin determines the project version using Git tags

Environments

  • Defined neatly in a standalone hatch.toml
  • The test matrix uses the hatch-containers plugin to run each environment inside Docker containers; usage can be seen in the test GitHub workflow

Build

  • All build targets use the hatch-vcs build hook plugin to ship a _version.py file so the version can be used at runtime
  • Wheels use the hatch-mypyc build hook plugin to first compile all code with Mypyc
  • The build GitHub workflow shows how to:
    • use cibuildwheel to distribute binary wheels for every platform
    • use the app build target to build standalone distributions for every platform

License

threagile-builder is distributed under the terms of the MIT license.

100 - Introduction

See README.md

200 - Requirements

See README.md

300 - Building Our Application

See README.md

400 - Conclusion

See README.md