naomi c6eaa4ff9c
CI / dependency-pin-check-typescript (pull_request) Successful in 4s
CI / dependency-pin-check-python (pull_request) Successful in 4s
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 55s
CI / python (pull_request) Successful in 9m24s
CI / typescript (pull_request) Successful in 9m41s
feat: add mentorship onboarding
2026-02-03 10:46:12 -08:00
2026-01-08 18:36:53 -08:00
2025-08-27 12:20:04 -07:00
2025-12-22 19:17:17 +01:00
2026-02-02 11:22:08 -08:00
2025-08-27 12:20:04 -07:00
2025-08-27 12:20:04 -07:00
2025-08-27 12:20:04 -07:00
2025-08-27 12:20:04 -07:00
2026-02-03 10:46:12 -08:00
2025-08-27 12:20:04 -07:00
2025-08-27 12:20:04 -07:00

Ephemere

A collection of ephemeral scripts for various tasks, written in TypeScript and Python.

Project Structure

.
├── typescript/     # TypeScript project
│   ├── src/       # TypeScript source files
│   ├── package.json
│   ├── tsconfig.json
│   └── eslint.config.js
├── python/        # Python project
│   ├── *.py       # Python scripts
│   ├── pyproject.toml
│   └── requirements.txt
├── Makefile       # Build commands for both projects
└── README.md

Setup

Prerequisites

  • Node.js (v24+) with nvm
  • Python 3.10+
  • pnpm 10.15.0
  • uv (Python package manager)
  • 1Password CLI (for secrets management)

Installation

Install all dependencies (TypeScript and Python):

make install

Or install individually:

make install-ts  # TypeScript dependencies only
make install-py  # Python dependencies only

Development

TypeScript Scripts

TypeScript scripts are located in the typescript/src/ directory. To run a TypeScript script with environment variables:

# From the root directory
make run-ts src/s3/upload.ts

# Or manually from typescript directory
cd typescript
pnpm start path/to/script.ts

Python Scripts

Python scripts are located in the python/ directory. To run a Python script with environment variables:

# From the root directory
make run-py analyse_availability.py

# Or manually from python directory
cd python
uv run python script_name.py

Linting and Formatting

# Run all linters (TypeScript and Python)
make lint

# Run linters individually
make lint-ts     # TypeScript linter
make lint-py     # Python linter

# Build TypeScript (type check)
make build

# Format Python code
make format

# Check Python formatting without modifying
make format-check

# Run tests
make test

# Clean build artifacts and caches
make clean

# Show all available commands
make help

CI/CD

The GitHub Actions workflow runs the following checks:

  1. Dependency pin check - Ensures all dependencies are pinned to exact versions
  2. TypeScript checks:
    • ESLint
    • TypeScript build (type checking)
    • Tests
  3. Python checks:
    • Ruff linting
    • Ruff format checking

Secrets Management

This project uses 1Password CLI for secrets management. Environment variables are stored in prod.env as 1Password vault references.

The make run-ts and make run-py commands automatically inject secrets from 1Password:

# These commands include 1Password integration
make run-ts src/discord/bot.ts
make run-py evaluate_technical_proficiency.py

To manually run scripts with secrets:

op run --env-file=prod.env -- <command>

Feedback and Bugs

If you have feedback or a bug report, please log a ticket on our forum.

Contributing

If you would like to contribute to the project, you may create a Pull Request containing your proposed changes and we will review it as soon as we are able! Please review our contributing guidelines first.

Code of Conduct

Before interacting with our community, please read our Code of Conduct.

License

This software is licensed under our global software license.

Copyright held by Naomi Carrigan.

Contact

We may be contacted through our Chat Server or via email at contact@nhcarrigan.com.

S
Description
App for running one-off or occasionally recurring scripts across various platforms.
Readme 365 KiB
Languages
Python 47.9%
TypeScript 45.6%
Shell 5.4%
Makefile 1%