Skip to content

Instantly share code, notes, and snippets.

View suhlig's full-sized avatar
😻
Happy

Steffen Uhlig suhlig

😻
Happy
View GitHub Profile

Example for a Concourse pipeline triggered my a webhook

Assmuming this pipeline was set as

$ fly --target example set-pipeline --pipeline manual-trigger --config manual-trigger.yml

then you can trigger a new build with

@suhlig
suhlig / b2-buckets-by-size.sh
Last active May 5, 2024 11:07
Table of b2 buckets sorted by total size
b2 list-buckets --json \
| jq '.[].bucketName' \
| xargs -n 1 b2 get-bucket --showSize \
| jq -r --slurp '["name","size"], (.[] | [.bucketName, .totalSize]) | @csv' \
| qsv sort --numeric --reverse --select size \
| qsv table
curl -L $(curl -L https://api.github.com/repos/derailed/k9s/releases/latest | jq --raw-output '.assets[] | select(.name == "k9s_Linux_amd64.tar.gz") | .browser_download_url') | tar xz k9s
@suhlig
suhlig / fetch_file_content_at.go
Created July 24, 2024 21:35
Fetch content of a file from GitHub at a given committish
package main
import (
"context"
"encoding/base64"
"fmt"
"log"
"os"
"github.com/google/go-github/v63/github"
@suhlig
suhlig / show-systems-json-messages.markdown
Created July 27, 2024 17:30
Systemd can print logs as JSON, making custom log formats simple. In addition, if the messages themselves are JSON, jq can unescape them.
$ journalctl -u concourse-web -f -o json | jq '.MESSAGE | fromjson'
{
  "timestamp": "2024-07-27T17:29:50.525878425Z",
  "level": "info",
  "source": "atc",
  "message": "atc.scanner.tick.start",
 "data": {
@suhlig
suhlig / delve.sh
Created July 15, 2025 13:52
Running delve for cli and ginkgo tests
# if there is a main.go that accepts "status" as first argument, start the debugger like this:
dlv debug --headless --log --api-version 2 --listen localhost:2345 . -- status
# if there is a Ginkgo test in the foo directory (package example.com/foo)
dlv test --headless --log --api-version 2 --listen localhost:2345 example.com/foo