Skip to content

Instantly share code, notes, and snippets.

View JGJP's full-sized avatar

J Garcia JGJP

View GitHub Profile
@JGJP
JGJP / gh-resign-commits.fish
Created August 3, 2026 13:11
gh-resign-commits
function gh-resign-commits --description 'Rebase PR commits not signed by the current key so they get re-signed'
set -l SIGNING_KEY (git config --get user.signingkey)
if not test "$SIGNING_KEY"
echo "No signing key configured"
return 1
end
set -l KEY_FINGERPRINT (ssh-keygen -lf $SIGNING_KEY | string split -f 2 ' ')
set -l BRANCH (git rev-parse --abbrev-ref HEAD)
set -l BASE_BRANCH (gh pr view $BRANCH --json baseRefName -q '.baseRefName' 2>/dev/null)
@JGJP
JGJP / gh-key.fish
Created August 3, 2026 13:11
gh-key
function gh-key --description 'Choose git signing key'
set -l CHOICE (gum choose --header 'Signing key:' --selected sk_2 sk_2 id_rsa 'no signing') || return 1
set -l NOTIFIER ~/.config/git/ssh-keygen-touch-notify.sh
switch $CHOICE
case sk_2
git config --global commit.gpgsign true
git config --global user.signingkey ~/.ssh/id_ed25519_sk_2.pub
test -f $NOTIFIER
and git config --global gpg.ssh.program $NOTIFIER
case id_rsa
@JGJP
JGJP / gh-notifications-utils.js
Created July 23, 2026 13:16
ViolentMonkey Github notifications utils
// ==UserScript==
// @name GitHub: mark merged/closed/read PR notifications as done
// @namespace local
// @match https://github.com/notifications*
// @grant none
// @run-at document-idle
// ==/UserScript==
(() => {
const markMatching = (predicate, label) => {
const rows = document.querySelectorAll('.notifications-list-item, li.notification-thread');
@JGJP
JGJP / gh-pr-favicon.js
Created July 13, 2026 10:59
ViolentMonkey Github favicon setter
// ==UserScript==
// @name GitHub PR State Favicon
// @namespace https://github.com/pr-state-favicon
// @version 6.2.0
// @description Sets the tab favicon to the matching Octicon per pull request state. Re-applies after load with a fresh URL so Firefox actually repaints (Firefox ignores favicon changes made during load).
// @match https://github.com/*/*/pull/*
// @run-at document-idle
// @grant none
// ==/UserScript==

Keybase proof

I hereby claim:

  • I am jgjp on github.
  • I am setterr (https://keybase.io/setterr) on keybase.
  • I have a public key ASB3GrvVk2iamFsYADrR5M8qAI9F6ISvsLYSjpKSYI2b5Qo

To claim this, I am signing this object: