Skip to main content

scitex-security

SciTeX

GitHub security-alert utilities — Dependabot, secret scanning, code scanning. Pure stdlib + `gh` subprocess, zero scitex.* runtime deps.

Full Documentation · uv pip install scitex-security[all]

PyPI Python Tests Coverage Docs License: AGPL v3


Installation

pip install scitex-security

Architecture

src/scitex_security/
├── __init__.py     # public re-exports
├── github.py       # GitHub alert collection (Dependabot / secret / code scanning)
├── cli.py          # `scitex-security check` / `show-latest`
├── __main__.py     # python -m scitex_security
└── _skills.py      # bundled agent skills

Runtime flow:
  scitex-security check <owner/repo>
        │
        ▼
  github.check_github_alerts()
        │ subprocess
        ▼
  gh api repos/<owner>/<repo>/{dependabot,secret-scanning,code-scanning}/alerts
        │
        ▼
  format_alerts_report() → save_alerts_to_file(.scitex/security/runtime/)

scitex-security shells out to gh (GitHub CLI) and never touches your tokens directly — GH_TOKEN / GITHUB_TOKEN are read by the gh subprocess from the environment, not from this package.

2 Interfaces

Python API (primary)
from scitex_security import (
    check_github_alerts,
    save_alerts_to_file,
    format_alerts_report,
    GitHubSecurityError,
)

alerts = check_github_alerts(repo="ywatanabe1989/myrepo")
print(format_alerts_report(alerts))
save_alerts_to_file(alerts, output_dir=".scitex/security/runtime")
CLI
scitex-security check ywatanabe1989/myrepo
scitex-security show-latest --security-dir ~/.scitex/security/runtime

Demo

flowchart LR
    user["scitex-security check\nywatanabe1989/myrepo"] --> api["check_github_alerts()"]
    env["GH_TOKEN /\nGITHUB_TOKEN"] -.-> gh["gh CLI subprocess"]
    api --> gh
    gh --> dep["Dependabot alerts"]
    gh --> sec["secret-scanning alerts"]
    gh --> code["code-scanning alerts"]
    dep --> report["format_alerts_report()"]
    sec --> report
    code --> report
    report --> stdout[("terminal report")]
    report --> save["save_alerts_to_file()"]
    save --> json[(".scitex/security/runtime/<ts>.txt")]

Quick Start

See the Python API block above for the minimal end-to-end example.

Environment Variables

Variable Purpose Default
SCITEX_SECURITY_CONFIG Path to a YAML config file (overrides ~/.scitex/security/config.yaml). unset
SCITEX_SECURITY_DIR Override the alerts output directory (overrides project/user scope). unset (uses <project>/.scitex/security/runtime/ or ~/.scitex/security/runtime/)
SCITEX_DIR Relocate the user-scope root (e.g. /mnt/fast-ssd/scitex). ~/.scitex
GH_TOKEN / GITHUB_TOKEN Auth token used by the underlying gh CLI subprocess. unset

Config precedence: explicit path → $SCITEX_SECURITY_CONFIG → ~/.scitex/security/config.yaml → built-in defaults. Alert output precedence: --output-dir / --security-dir → $SCITEX_SECURITY_DIR → project scope → user scope (respects $SCITEX_DIR).

Status

Standalone fork of scitex.security. Pure stdlib + gh CLI subprocess — zero scitex.* runtime deps. Umbrella scitex.security import path is preserved via a sys.modules-alias bridge.

Part of SciTeX

scitex-security is part of SciTeX. Install via the umbrella with pip install scitex[security] to use as scitex.security (Python) or scitex security ... (CLI).

Four Freedoms for Research

  1. The freedom to run your research anywhere — your machine, your terms.
  2. The freedom to study how every step works — from raw data to final manuscript.
  3. The freedom to redistribute your workflows, not just your papers.
  4. The freedom to modify any module and share improvements with the community.

AGPL-3.0 — because we believe research infrastructure deserves the same freedoms as the software it runs on.

License

AGPL-3.0-only (see LICENSE).


SciTeX

Metadata

Release files for scitex-security 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scitex-security 0.2.0
File Size Uploaded Provenance
scitex_security-0.2.0.tar.gz 37.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for scitex-security 0.2.0
File Interpreter ABI Platform
scitex_security-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 80.5 kB

Release files / scitex_security-0.2.0.tar.gz

Download URL scitex_security-0.2.0.tar.gz
Size 37.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5d39056c50028d0f79c4aa3a464d726561d21a16c416b40dae106f34a711ce40
BLAKE2b-256 checksum
How to use checksums
4dac940bf5af21cbefaf9db0c2f4c9d5f5967a7ff3897159d0c64c1e4063a236
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / scitex_security-0.2.0-py3-none-any.whl

Download URL scitex_security-0.2.0-py3-none-any.whl
Size 42.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eb2d72cf9608f6cbf77f7f0f94746dc0c70357acd07e44f370216366ca94ad7b
BLAKE2b-256 checksum
How to use checksums
72f2b1f5d5af5f1a2797af53b441a10139dd6a2ee52ee7f5bb384ec3fda69935
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Security for scitex-security 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for scitex_security-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page