Skip to content

Composite Actions

Cryyer provides two reusable composite actions that wrap the draft-file and send-file CLI commands. Consumer repos reference these directly in their workflows.

atriumn/cryyer/.github/actions/draft-file@v0

Section titled “atriumn/cryyer/.github/actions/draft-file@v0”

Gathers GitHub activity and generates an LLM-drafted email as a YAML front matter markdown file.

InputRequiredDefaultDescription
productyesProduct ID (matches products/*.yaml)
versionyesRelease version (used in output path and LLM prompt)
llm-api-keyyesAPI key for the LLM provider
sincenoauto (previous tag)ISO date for activity window start
reponoOverride repo from product config
outputnodrafts/v{version}.mdOutput file path
llm-providernoanthropicLLM provider (anthropic, openai, gemini)
llm-modelnoOverride default LLM model
audiencenoAudience ID for multi-audience products
github-tokennogithub.tokenGitHub token for API access
cryyer-versionnolatestCryyer npm package version
OutputDescription
draft-pathPath to the generated draft file
- uses: atriumn/cryyer/.github/actions/draft-file@v0
with:
product: my-app
version: 1.2.0
llm-api-key: ${{ secrets.GEMINI_API_KEY }}
llm-provider: gemini

atriumn/cryyer/.github/actions/send-file@v0

Section titled “atriumn/cryyer/.github/actions/send-file@v0”

Reads a YAML front matter draft file, loads product config, fetches subscribers, and sends emails.

InputRequiredDefaultDescription
productyesProduct ID
draft-pathyesPath to the draft markdown file
from-emailyesSender email address
email-providernoresendEmail provider (resend, gmail)
email-api-keynoResend API key
gmail-refresh-tokennoGmail OAuth refresh token
from-namenoCryyer UpdatesSender display name
subscriber-storenojsonSubscriber store (json, gist, supabase, google-sheets)
supabase-urlnoSupabase project URL
supabase-service-keynoSupabase service role key
google-sheets-spreadsheet-idnoGoogle Sheets spreadsheet ID
google-service-account-emailnoGoogle service account email
google-private-keynoGoogle service account private key
github-gist-idnoGist ID for subscriber storage
github-tokennoGitHub PAT with gist scope (required for gist store)
audiencenoAudience ID for multi-audience products
dry-runnofalsePreview without sending
cryyer-versionnolatestCryyer npm package version
- uses: atriumn/cryyer/.github/actions/send-file@v0
with:
product: my-app
draft-path: drafts/v1.2.0.md
from-email: updates@yourdomain.com
email-api-key: ${{ secrets.RESEND_API_KEY }}
subscriber-store: json