Skip to content

Instantly share code, notes, and snippets.

View jspeed-meyers's full-sized avatar

John Speed Meyers jspeed-meyers

View GitHub Profile
@jspeed-meyers
jspeed-meyers / example-nurse-output.md
Created October 24, 2025 00:46
Example use of nurse to analyze kaniko

Overall Grade: B+ (Straightforward)


Score Breakdown

Category Score Weight Details
CI Complexity B 30% Moderate - 3 workflows, ~16 total steps, matrix strategies
Dependency Health A 40% Excellent - All dependencies very recent (2025)
Project Structure B- 20% Single language (Go) but complex build requirements
@jspeed-meyers
jspeed-meyers / CLAUDE.md
Created October 20, 2025 16:43
Nurse: a Claude-based tool for assessing the difficulty of forking archived open source projects.

Repository Fork Difficulty Grader

A Claude Code tool for assessing the difficulty of forking archived open source projects.

Overview

This tool analyzes a GitHub repository and assigns a grade (A through F) based on how difficult it would be to fork the project, get CI/GitHub Actions running and passing, and update dependencies with CVEs.

Usage

@jspeed-meyers
jspeed-meyers / are_any_wolfi_repos_archived.py
Created September 22, 2025 17:18
Analyze GitHub repositories referenced in Wolfi OS melange YAML files and check which ones are archived.
#!/usr/bin/env python3
# Run this script with: source venv/bin/activate && python3 analyze_github_repos.py
"""
Script to analyze GitHub repositories referenced in Wolfi OS melange YAML files
and check which ones are archived.
generated by claude code. Only lightly reviewed and used by John Speed Meyers.
"""
import os
@jspeed-meyers
jspeed-meyers / github_archived_search.py
Created September 19, 2025 16:00
This script searches for GitHub repositories that have more than 10,000 stars and are archived and exports the results to a CSV file.
#!/usr/bin/env python3
"""
GitHub Archived Repository Search & Export. Created via Claude Code.
This script searches for GitHub repositories that have:
- More than 10,000 stars
- Are archived
It exports the results to a CSV file with the repository URL and archive date
(using the last push date as a proxy for when it was archived).
@jspeed-meyers
jspeed-meyers / nvidia-pytorch-package-list
Created March 14, 2024 17:08
NIVIDIA PyTorch image (nvcr.io/nvidia/pytorch:24.02-py3) component list (using syft)
➜ ~ syft nvcr.io/nvidia/pytorch:24.02-py3
✔ Pulled image
✔ Loaded image nvcr.io/nvidia/pytorch:24.02-py3
✔ Parsed image sha256:43fcc1b74fd54c3598c3c3d569c7ec4f6e93dc78adad06e38783c95e1bfd5c94
✔ Cataloged contents 57fd547447043b585ed68a43a7f1dfd3d01ea25c821df0b032b9da79ab82a385
├── ✔ Packages [892 packages]
├── ✔ File digests [14,449 files]
├── ✔ File metadata [14,449 locations]
└── ✔ Executables [2,759 executables]
[0432] WARN cataloger failed cataloger=javascript-package-cataloger error=failed to parse package.json file: json: cannot unmarshal s
@jspeed-meyers
jspeed-meyers / gist:919cc9bd3181568d21d60af22a463384
Created March 14, 2024 16:56
Chainguard PyTorch image (cgr.dev./chainguard/pytorch-cuda12) component list (using syft)
syft --platform linux/amd64 cgr.dev/chainguard/pytorch-cuda12
✔ Pulled image
✔ Loaded image cgr.dev/chainguard/pytorch-cuda12:latest
✔ Parsed image sha256:fde1b4b832c4dd0008ba8a49ac886ada4b3bbf3248b438f893e42664d29c9e07
✔ Cataloged contents efb7865bb45355ec5582bd8e02f1b14792c03cfdade52b6b1214e8eaf88ac99c
├── ✔ Packages [69 packages]
├── ✔ File digests [19,193 files]
├── ✔ File metadata [19,193 locations]
└── ✔ Executables [432 executables]
NAME VERSION TYPE
@jspeed-meyers
jspeed-meyers / ironbank_json_creation.py
Last active January 9, 2024 19:12
Create JSON listing ironbank images
import json
import pandas as pd
import requests
YOUR_SHEET_ID = "1ifFaQyNfgC-V0AnubYm9P3btkNwN9rXJNAHiauflHV4"
CSV_URL = f"https://docs.google.com/spreadsheet/ccc?key={YOUR_SHEET_ID}&output=csv"
res = requests.get(url=CSV_URL)
with open("image-names.csv", "wb") as data:
@jspeed-meyers
jspeed-meyers / summarize_funder_finder_data.py
Created August 10, 2023 01:04
Summarize funder finder data collected for top python packages
import json
import pandas as pd
pd.options.display.float_format = '{:.4f}'.format
with open("funder_finder_results.jsonl") as f:
df = pd.DataFrame(json.loads(line) for line in f)
#print(df.info())
#print(df.type.value_counts())
#print(pd.crosstab(df.type, df.funding_type))
@jspeed-meyers
jspeed-meyers / import_funder_finder_jsonl_results.py
Created August 10, 2023 00:37
Create a pandas dataframe from the funder finder jsonl results
import json
import pandas as pd
with open("funder_finder_results.jsonl") as f:
df = pd.DataFrame(json.loads(line) for line in f)
@jspeed-meyers
jspeed-meyers / analyze_pyup_io_safety_db.py
Created May 28, 2023 23:26
# find number of top 1000 python packages that have one or more CVEs
# find number of top 1000 python packages that have one or more CVEs
import json
# find all packages with a CVE
# Open the JSON file
with open("pyup_io_safety_db_python_cve.json") as file:
# Load the JSON data
data = json.load(file)