Skip to content

Instantly share code, notes, and snippets.

View PurpleBooth's full-sized avatar

Billie Thompson PurpleBooth

View GitHub Profile
PurpleBooth /
Created February 15, 2023 10:37
Copy labels between repos on github
#!/usr/bin/env bash
set -xeuo pipefail
# Set the source repository
# Set the target repository
PurpleBooth /
Last active March 25, 2024 02:20
I cba with writing my own commit messages anymore
#!/usr/bin/env python
import json
import logging
import subprocess
import sys
import textwrap
from typing import Literal, Sequence, TypedDict, Union
from urllib.error import HTTPError
from urllib.request import Request, urlopen
needs: [ validate ]
contents: write
pull-requests: write
runs-on: ubuntu-latest
if: ${{ == 'dependabot[bot]' && ( github.head_ref || github.ref_name ) != 'main' }}
- name: Enable auto-merge for Dependabot PRs
run: gh pr merge --auto --merge "$PR_URL"
PurpleBooth /
Last active October 4, 2021 17:50
How to use docker in without docker-desktop on mac using lima

First run ths script

Then add an environment variable so tools you use that use docker can find docker

## Add this to your bashrc if you want this to be permenant
export DOCKER_HOST=ssh://localhost:60006

This will need the lima vm for docker running, you can do that by running

PurpleBooth /
Last active September 17, 2021 15:07
Change your default branch on github without checkout anything out

Usage "$GITHUB_TOKEN" PurpleBooth/homebrew-repo

Does not delete the old default branch, or change where pull requests are based from, incase something breaks.

PurpleBooth /
Last active September 8, 2023 20:52
A github workflow pipeline for rust that does test, build and deploy windows, linux and mac, creates releases, and does SemVer Versioning, and releases to a homebrew tap


  • Automatically bump SemVer
  • Update a personal homebrew tap
  • Keep that pesky version in the Cargo.toml up to date
  • (From dependabot) Get new versions out as soon as possible


  • You don't want a changelog
PurpleBooth /
Created April 19, 2020 20:25
Reading git config from global and the containing repo in rust
#!/usr/bin/env run-cargo-script
//! This is a regular crate doc comment, but it also contains a partial
//! Cargo manifest. Note the use of a *fenced* code block, and the
//! `cargo` "language".
//! ```cargo
//! [dependencies]
//! git2 = "0.13"
//! ```
use futures::future::join_all;
use futures::StreamExt;
use reqwest::Client;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
struct ProjectsItem {
hash_id: String,
use std::collections::HashMap;
use futures::{stream, StreamExt};
use reqwest::Client;
use serde::{Deserialize, Serialize};
use std::error::Error;
#[derive(Serialize, Deserialize, Debug)]
struct ProjectsItem {
hash_id: String,
PurpleBooth / 1password
Last active January 28, 2024 09:36
Use sops to cache the one password vault session token because op is horrible to use
#!/usr/bin/env bash
set -euo pipefail
OP_LOCATION="$(command -v op)"
mkdir -p "$CACHE_DIR"