Skip to content

Instantly share code, notes, and snippets.

View MarcBittner's full-sized avatar

Marc Bittner MarcBittner

View GitHub Profile
{"deploy":true,"timestamp":"2025-11-05T12:02:16Z","commit":"92ffbb3266753b2949ccd9a5f289ba7dff4c18d0","branch":"main","author":"MarcBittner","repository":"MarcBittner/papertrail","backend_image":"ghcr.io/MarcBittner/papertrail-backend:latest","run_id":"19101279789","run_number":"63"}

Google Workspace + Okta + GitHub Integration Compatibility Chart

Integration Architecture Overview

┌─────────────────┐    SAML/SCIM    ┌─────────────────┐    SAML SSO     ┌─────────────────┐
│  Google         │ ─────────────▶  │      Okta       │ ─────────────▶  │     GitHub      │
│  Workspace      │                 │   Identity      │                 │   Enterprise    │
│ (Directory)     │                 │   Provider      │                 │     Cloud       │
└─────────────────┘ └─────────────────┘ └─────────────────┘

Setting Up Okta as IdP for Google Workspace and GitHub Integration

Overview of Architecture

  • Google Workspace: Primary directory service and user store
  • Okta: Identity Provider (IdP) for SSO and user management
  • GitHub: Service Provider (SP) receiving authentication via Okta
  • User Flow: Google → Okta → GitHub

Part 1: Set Up Google Workspace Integration with Okta

@MarcBittner
MarcBittner / PrivacyPolicy.md
Last active August 2, 2024 02:41
[Sec.Technology] Privacy Policy

Privacy Policy

Last updated: [08/1/2024]

1. Introduction

[Sec.Technology] ("we", "us", or "our") operates [Sec.Technology] (the "Application"). This privacy policy describes how we collect, use, and share personal information when you use our Application, including information obtained through the LinkedIn API.

2. Information We Collect

#!/usr/bin/env bash
requireProgram() {
local functionName debugOutput
unset ${functionName} ${debugOutput}
functionName="${FUNCNAME[0]}"
debugOutput=1
command -v ${1} >/dev/null 2>&1 &&
// using SendGrid's Go Library
// https://github.com/sendgrid/sendgrid-go
package main
import (
"fmt"
"log"
"os"
"github.com/sendgrid/sendgrid-go"
package main
import (
"encoding/json"
"net/http"
"os"
"github.com/sendgrid/sendgrid-go"
"github.com/sendgrid/sendgrid-go/helpers/mail"
"github.com/twilio/twilio-go"
@MarcBittner
MarcBittner / gpg-import-and-export-instructions.md
Created June 10, 2018 00:37 — forked from chrisroos/gpg-import-and-export-instructions.md
Instructions for exporting/importing (backup/restore) GPG keys

Every so often I have to restore my gpg keys and I'm never sure how best to do it. So, I've spent some time playing around with the various ways to export/import (backup/restore) keys.

Method 1

Backup the public and secret keyrings and trust database

cp ~/.gnupg/pubring.gpg /path/to/backups/
cp ~/.gnupg/secring.gpg /path/to/backups/
cp ~/.gnupg/trustdb.gpg /path/to/backups/

or, instead of backing up trustdb...

@MarcBittner
MarcBittner / gpg-import-and-export-instructions.md
Created June 10, 2018 00:36 — forked from chrisroos/gpg-import-and-export-instructions.md
Instructions for exporting/importing (backup/restore) GPG keys

Every so often I have to restore my gpg keys and I'm never sure how best to do it. So, I've spent some time playing around with the various ways to export/import (backup/restore) keys.

Method 1

Backup the public and secret keyrings and trust database

cp ~/.gnupg/pubring.gpg /path/to/backups/
cp ~/.gnupg/secring.gpg /path/to/backups/
cp ~/.gnupg/trustdb.gpg /path/to/backups/

or, instead of backing up trustdb...

Keybase proof

I hereby claim:

  • I am MarcBittner on github.
  • I am flashburn (https://keybase.io/flashburn) on keybase.
  • I have a public key whose fingerprint is 4C94 2A9F A7FA 83AE 04D6 473E 1E37 0407 7688 31A8

To claim this, I am signing this object: