Integrations
Share a short-lived link instead of dumping logs into PRs or chat. All examples hit https://voidpaste.com — no localhost.
Chat safety
- Share
/p/{id}(web viewer), not/raw/{id}. For burn pastes, crawlers that fetch raw/API content can burn the paste on first hit. - Prefer short expiration over burn when posting to Slack or Discord (link previews / unfurls).
- VoidPaste already omits Open Graph body teasers for burn, private, password, and encrypted pastes. Still never paste API keys into chat.
GitHub Actions
Official action: fleames/voidpaste-action. Store a key from Dashboard → API Keys as VP_API_KEY.
# .github/workflows/share-log.yml
- name: Upload failure log
id: vp
uses: fleames/voidpaste-action@v1
with:
api-key: ${{ secrets.VP_API_KEY }}
path: ./build.log
title: CI ${{ github.run_id }}
language: log
visibility: unlisted
expiration: 1d
idempotency-key: ${{ github.run_id }}-${{ github.job }}
- run: echo "Log paste ${{ steps.vp.outputs.url }}"Outputs: url, raw_url, id. The step writes the share link to the job summary. Defaults favor unlisted + 1d expiry (not burn).
kubectl / docker → CLI
Install the CLI (docs), then pipe logs. --quiet prints only the URL:
# last 200 lines from a pod kubectl logs deploy/api --tail=200 | \ voidpaste create --stdin --expiration 1h --title "pod/api" --quiet # docker container logs docker logs my-container --tail 500 2>&1 | \ voidpaste create --stdin --lang log --expiration 1d -q
Huge logs hit the create limit (1 MB anonymous, 5 MB with an API key) — use --tail / tail deliberately. Prefer an API key in the environment (VP_API_KEY), not on the command line.
GitLab CI (curl)
# .gitlab-ci.yml (snippet)
share_log:
stage: .post
when: on_failure
script:
- |
jq -n --rawfile c build.log \
'{content:$c, visibility:"unlisted", expiration:"1d", title:"gitlab '"$CI_PIPELINE_ID"'"}' \
| curl -sS -X POST "https://voidpaste.com/api/v1/pastes" \
-H "Authorization: Bearer $VP_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $CI_PIPELINE_ID-$CI_JOB_ID" \
-d @- \
| jq -r '"https://voidpaste.com/p/" + .paste.id'Response envelope is { paste, warnings }. A 422 means secret detection blocked the body (nothing stored).
CLI one-liners
# URL only (scripts) echo 'hello' | voidpaste create --stdin --expiration 1h -q # Full envelope for machines voidpaste create ./notes.md --json --idempotency-key deploy-42 # Install (pin: replace latest with v0.3.0) go install github.com/fleames/voidpaste-cli/cmd/voidpaste@latest
Related
- REST API — auth, scopes, idempotency
- CLI — install and flags
- GitHub Action source
- Public CLI