Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
dicklesworthstone avatar

Reporting Sensitive Encrypted Gh Issues

  • 1 installs
  • 257 repo stars
  • Updated July 24, 2026
  • dicklesworthstone/misc_coding_agent_tips_and_scripts

Encrypts, submits, scans, and decrypts age-encrypted (X25519) GitHub issues for reporting and receiving security vulnerabilities.

About

Uses the gh-issue-decrypt tool to encrypt a vulnerability report to a project's age public key, submit it as a GitHub issue, and scan or decrypt encrypted issues. A developer uses it to report or receive sensitive security reports privately.

  • One-command encrypt-and-submit using an age public key from the README
  • Scans repo issues and decrypts `[enc:age]` blocks with a local private key

Reporting Sensitive Encrypted Gh Issues by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #1,835 of 2,203 Security skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dicklesworthstone/misc_coding_agent_tips_and_scripts --skill reporting-sensitive-encrypted-gh-issues

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars257
Last updatedJuly 24, 2026
Repositorydicklesworthstone/misc_coding_agent_tips_and_scripts

What it does

Encrypts, submits, scans, and decrypts age-encrypted (X25519) GitHub issues for reporting and receiving security vulnerabilities.

Files

SKILL.mdMarkdownGitHub ↗

<!-- TOC: Dispatch | Encrypt & Submit | Scan & Decrypt | Format | Commands | Notes -->

Encrypted GitHub Issues — gh-issue-decrypt

If `gh-issue-decrypt` is not installed, run:

curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/misc_coding_agent_tips_and_scripts/main/gh-issue-decrypt?$(date +%s)" | bash -s -- --install

What Do You Need?

GoalCommand
Submit encrypted security report`echo "details" \
Scan repo for encrypted issuesgh-issue-decrypt OWNER/REPO
Decrypt a specific issuegh-issue-decrypt OWNER/REPO 42
Set up receiving (install + keygen)gh-issue-decrypt --install
Full interactive guidegh-issue-decrypt (no args)

Encrypt & Submit a Security Report

# 1. Find the project's age public key in their README:
#    grep -oE 'age1[a-z0-9]{58}' README.md

# 2. Encrypt + submit in one command:
echo "SQL injection in /api/users — WHERE clause interpolates user input. \
Affects v2.0-2.4. PoC: curl '/api/users?id=1 OR 1=1'" \
  | gh-issue-decrypt --encrypt age1PUBKEY_FROM_README \
    --submit OWNER/REPO --title "Security: SQLi in /api/users"

# Or encrypt only (outputs [enc:age] block for manual pasting):
echo "details" | gh-issue-decrypt --encrypt age1PUBKEY_FROM_README

The script auto-installs age if missing. Requires gh auth login for --submit.

Scan & Decrypt Issues

gh-issue-decrypt OWNER/REPO          # all open issues
gh-issue-decrypt OWNER/REPO 42       # specific issue + comments
gh-issue-decrypt --json OWNER/REPO   # machine-readable output

Output:

-> Scanning open issues in OWNER/REPO...
=== Issue #42 -- encrypted block(s) found ===
ok Block #1 decrypted:
SQL injection in /api/users — WHERE clause interpolates user input.

Private key: ~/.config/age/issuebot.key (set AGE_KEY env var to override).

Issue Format

Encrypted blocks in issue bodies look like:

[enc:age]
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA...
-----END AGE ENCRYPTED FILE-----
[/enc:age]

The [enc:age] markers are optional — bare BEGIN AGE ENCRYPTED FILE headers are detected too. Plaintext and encrypted blocks can be mixed in the same issue.

All Commands

CommandPurpose
gh-issue-decryptQuickstart guide (detects local keys)
gh-issue-decrypt OWNER/REPOScan open issues
gh-issue-decrypt OWNER/REPO 42Decrypt specific issue
gh-issue-decrypt --encrypt PUBKEYEncrypt stdin → armored block
gh-issue-decrypt --encrypt PUBKEY --submit O/R --title "T"Encrypt + create issue
gh-issue-decrypt --json OWNER/REPOJSON output
gh-issue-decrypt --installInstall age + gh + keygen
gh-issue-decrypt --keygenGenerate age keypair
gh-issue-decrypt --key FILEAlternate private key

Notes

  • No authentication: age encrypts but doesn't prove sender identity. Pair with SSH signatures or minisign if sender verification matters.
  • Back up the private key (~/.config/age/issuebot.key) — loss means encrypted messages are unrecoverable.
  • Public keys are 62 chars: age1 + 58 lowercase alphanumeric (Bech32). Safe to publish in READMEs.

Related skills

Securitysecrets

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.