SOFTWARE BILL OF MATERIALS#

 1[metadata]
 2name = victorykit-aws-spitzel
 3author = T. Rodney (victory-k.it)
 4author_email = py-aws-spitzel@victoryk.it
 5description = Advanced CloudTrail Event History Lookup for AWS IAM Forensics
 6long_description = file: README.md
 7long_description_content_type = text/markdown
 8url = https://victorykit.bitbucket.io/py-aws-spitzel
 9project_urls = 
10	Bug Tracker = https://bitbucket.org/victorykit/py-aws-spitzel/issues
11classifiers = 
12	Development Status :: 4 - Beta
13	Environment :: Other Environment
14	Intended Audience :: Developers
15	Topic :: Utilities
16    Topic :: Security
17	Programming Language :: Python :: 3.7
18	Programming Language :: Python :: 3.8
19	Programming Language :: Python :: 3.9
20	Operating System :: OS Independent
21	License :: Other/Proprietary License
22
23[options]
24install_requires = 
25    boto3>=1.24.2,<2
26    jsonpath>=0.82,<1
27zip_safe = true
28package_dir = 
29	=src
30python_requires = >=3.7
31test_suite = test
32packages = find:
33
34[options.entry_points]
35console_scripts = 
36	aws-spitzel = aws_spitzel.__main__:main
37
38[options.packages.find]
39where = src
 1[[source]]
 2url = 'https://pypi.python.org/simple'
 3verify_ssl = true
 4name = 'pypi'
 5
 6[requires]
 7python_version = '3'
 8
 9[scripts]
10"build"      = "tox"
11"htmldocgen" = "tox -e htmldocgen"
12"mddocgen"   = "tox -e mddocgen"
13"pdfdocgen"  = "tox -e pdfdocgen"
14"publish"    = "tox -e publish -e publish-docs"
15
16[dev-packages]
17tox = '==3.23.0'
18
19[packages]
20aws-spitzel = {editable = true, path = "."}
  1[tox]
  2skipsdist = true
  3minversion = 3.7.0
  4isolated_build = True
  5envlist = lint, mddocgen, build, pdfdocgen, htmldocgen
  6
  7
  8[testenv:lint]
  9description = lint with pylint
 10setenv = PYTHONPATH = {toxinidir}/src
 11deps =
 12    {toxinidir}
 13    pylint >= 2.12.2, < 3
 14commands =
 15    python3 -m pylint {toxinidir}/src {posargs}
 16
 17
 18[testenv:format]
 19description = format code
 20basepython = python3
 21deps =
 22    autopep8 >= 1.6.0, < 2
 23commands =
 24    python3 -m autopep8 -v src/ {posargs}
 25
 26
 27[testenv:build]
 28description = build and package
 29basepython = python3
 30setenv = PYTHONPATH = {toxinidir}/src
 31deps = 
 32    build >= 0.5.1, < 1
 33commands =
 34    python3 -m build {posargs}
 35
 36
 37[testenv:htmldocgen]
 38description = build HTML documentation
 39basepython = python3
 40allowlist_externals =
 41    sphinx-build
 42deps = 
 43    sphinx >= 4.3.2, < 5
 44    furo
 45    sphinx-argparse
 46    setuptools-scm >= 7.1.0, < 8
 47    sphinx-autodoc-typehints >= 1.17.0, < 2
 48    {toxinidir}
 49setenv = 
 50    PLANTUML_LIMIT_SIZE=20000
 51commands =
 52    sphinx-build -d "{toxinidir}/build/docs/_tree/html" docs "build/docs/html" --color -W -bhtml {posargs}
 53
 54
 55[testenv:mddocgen]
 56description = build markdown repository documentation
 57basepython = python3
 58allowlist_externals =
 59    sphinx-build
 60deps = 
 61    sphinx >= 4.3.2, < 5
 62    sphinx-markdown-builder >= 0.5.4, < 1
 63    sphinx-argparse
 64    sphinx-autodoc-typehints >= 1.17.0, < 2
 65    setuptools-scm >= 7.1.0, < 8
 66    {toxinidir}
 67commands =
 68    sphinx-build -d "{toxinidir}/build/docs/_tree/_" docs {toxinidir} --color -W -bmarkdown -treadme {posargs}
 69
 70
 71[testenv:pdfdocgen]
 72description = build single PDF document documentation
 73basepython = python3
 74allowlist_externals =
 75    sphinx-build
 76deps = 
 77    sphinx >= 4.3.2, < 5
 78    furo
 79    sphinx-argparse
 80    rst2pdf >= 0.100, < 1
 81    sphinx-autodoc-typehints >= 1.17.0, < 2
 82    setuptools-scm >= 7.1.0, < 8
 83    {toxinidir}
 84commands =
 85    sphinx-build -d "{toxinidir}/build/docs/_tree/_" docs "build/docs/pdf" --color -W -bpdf -tpdf {posargs}
 86
 87
 88[testenv:publish]
 89description = publish to pypi repository
 90passenv =
 91    #https://twine.readthedocs.io/en/stable/#environment-variables
 92    TWINE_USERNAME
 93    TWINE_PASSWORD
 94    TWINE_REPOSITORY
 95    TWINE_REPOSITORY_URL
 96    TWINE_CERT
 97    TWINE_NON_INTERACTIVE
 98deps = 
 99    twine
100commands =
101    python3 -m twine upload "dist/*"
102
103
104[testenv:publish-docs]
105description = publish documentation
106setenv =
107    tmppath = {envdir}/git/vicytorykit.bitbucket.io
108passenv =
109    #https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/
110    BITBUCKET_REPO_SLUG
111allowlist_externals =
112    /bin/sh
113    /bin/rm
114    /bin/cp
115    /bin/mkdir
116    /usr/bin/git
117commands =
118    python3 -c "exec('import os\nif \'BITBUCKET_REPO_SLUG\' not in os.environ.keys(): exit(1)')"
119    rm -rf {env:tmppath}
120    git clone git@bitbucket.org:victorykit/victorykit.bitbucket.io.git {env:tmppath}
121    mkdir -p "{env:tmppath}/{env:BITBUCKET_REPO_SLUG}"
122    cp -r build/docs/html/. "{env:tmppath}/{env:BITBUCKET_REPO_SLUG}"
123    sh -c "cd {env:tmppath}; git add {env:BITBUCKET_REPO_SLUG}"
124    sh -c "cd {env:tmppath}; git -c 'user.name=victoryk.it Bot' -c 'user.email=commits-noreply@victoryk.it' commit -m 'updated {env:BITBUCKET_REPO_SLUG}'"
125    sh -c "cd {env:tmppath}; git push"