Skip to main content

Get Thoth recommendations in a pre-commit hook.

Project description

Thoth pre-commit hook

Get Thoth advise on your dependencies with the Thoth pre-commit hook.

Usage

Example usage in .pre-commit-config.yaml:

---
repos:
  - repo: https://github.com/thoth-station/test-thoth-pre-commit-hook
    rev: v0.1.0
    hooks:
      - id: thoth-advise
        args: ["--recommendation-type", "security"]

The list of arguments that can be specified can be found by running Thamos, the command line interface to communicate with Thoth's backend:

 Usage: thamos advise [OPTIONS]

 Ask Thoth for recommendations on the application stack.
 Ask the remote Thoth service for advise on the application stack used. The command collects information stated in the .thoth.yaml file for the given runtime
 environment, static source code analysis and requirements for the application and sends them to the remote service. Optionally, install packages resolved by Thoth.
 Examples:
 thamos advise --runtime-environment testing --labels 'foo=bar,qux=baz'
 thamos advise --dev
 thamos advise --install
 thamos advise --no-static-analysis --no-user-stack

╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│  --debug                                                        Run analysis in debug mode on Thoth.                                                               │
│  --no-write                        -W                           Do not write results to files, just print them.                                                    │
│  --recommendation-type             -t  RECOMMENDATION_TYPE      Use selected recommendation type, do not load it from Thoth's config file.                         │
│  --no-wait                                                      Do not wait for analysis to finish, just submit it.                                                │
│  --no-user-stack                                                Do not submit lock file with the request, this lock file is normally used as a base for            │
│                                                                 comparision to recommend a better stack than the one used.                                         │
│  --no-static-analysis                                           Do not perform static analysis of source code files.                                               │
│  --json                            -j                           Print output in JSON format.                                                                       │
│  --force                                                        Force analysis run bypassing server-side cache.                                                    │
│  --runtime-environment             -r  NAME                     Specify explicitly runtime environment to get recommendations for; defaults to the first entry in  │
│                                                                 the configuration file.                                                                            │
│  --dev                                                          Consider or do not consider development dependencies during the resolution. [default: no-dev]      │
│  --install                                                      Install dependencies once the advise is done. [default: False]                                     │
│  --write-advised-manifest-changes      FILE                     Write advised manifest changes to a file.                                                          │
│  --labels                          -l  KEY1=VALUE1,KEY2=VALUE2  Labels used to label the request.                                                                  │
│  --help                                                         Show this message and exit.                                                                        │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

 Check Thamos documentation: https://thoth-station.ninja/docs/developers/thamos
  • recommendation-type: Thoth recommendation type for the dependency resolution. Recommendation types available are:

    security stable latest performance testing

See the documentation on recommendation types for more details.

  • runtime-environment: Runtime environment used for dependency analysis. Thoth can analyze your dependencies against different runtime environments:

    ubi-8-py-3.8 rhel-8-py-3.8 fedora-35-py-3.10 fedora-34-py-3.9

To be able to run this pre-commit hook, the repository must be configured with a .thoth.yaml file as specified in the Thamos CLI documentation. The Thoth pre-commit hook generates a .thoth_last_analysis_id file in the dependency requirements file directory after the resolution. To avoid committing it, add it to your repository .gitignore file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

thoth_pre_commit_hook-0.1.1.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

thoth_pre_commit_hook-0.1.1-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file thoth_pre_commit_hook-0.1.1.tar.gz.

File metadata

  • Download URL: thoth_pre_commit_hook-0.1.1.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

File hashes

Hashes for thoth_pre_commit_hook-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f296a639a057c16fc0cbbacc9fb8171638f87e6ccf8a3d70fc0d065eb120aea9
MD5 20d1ec5427b31e09495232d695adb276
BLAKE2b-256 9471350276e9c5a385bd6e9ec0e61a64e8d93b9e203f3d9869f1f0c47722b41c

See more details on using hashes here.

File details

Details for the file thoth_pre_commit_hook-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: thoth_pre_commit_hook-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

File hashes

Hashes for thoth_pre_commit_hook-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9c38a694d0f88072e9416d71315fbbfa1266509f815daeec9d4bfc1ec3776a80
MD5 7d92b38f8b96a9609772abae31bf406d
BLAKE2b-256 fab86cf260bc8de38691eda8c3702cfe4feb040cc28c5058996e4e61958aa89d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page