Night Market Skill — ported from claude-night-market/leyline. For the full experience with agents, hooks, and commands, install the Claude Code plugin.
Common authentication patterns for integrating with external services. Provides consistent approaches to credential management, verification, and error handling.
MethodBest ForEnvironment VariableAPI KeySimple integrations{SERVICE}_API_KEYOAuthUser-authenticatedBrowser-based flowTokenSession-based{SERVICE}_TOKENNonePublic APIsN/A
python
from leyline.auth import verify_auth, AuthMethod
# API Key verification
status = verify_auth(
service="gemini",
method=AuthMethod.API_KEY,
env_var="GEMINI_API_KEY"
)
if not status.authenticated:
print(f"Auth failed: {status.message}")
print(f"Action: {status.suggested_action}")
Verification: Run the command with --help flag to verify availability.
python
def verify_with_smoke_test(service: str) -> bool:
"""Verify auth with simple request."""
result = execute_simple_request(service, "ping")
return result.success
Verification: Run pytest -v to verify tests pass.
python
def check_credentials(service: str, env_var: str) -> bool:
value = os.getenv(env_var)
if not value:
print(f"Missing {env_var}")
return False
return True
Verification: Run the command with --help flag to verify availability.
python
def verify_with_service(service: str) -> AuthStatus:
result = subprocess.run(
[service, "auth", "status"],
capture_output=True
)
return AuthStatus(
authenticated=(result.returncode == 0),
message=result.stdout.decode()
)
Verification: Run the command with --help flag to verify availability.
python
def handle_auth_failure(service: str, method: AuthMethod) -> str:
actions = {
AuthMethod.API_KEY: f"Set {service.upper()}_API_KEY environment variable",
AuthMethod.OAUTH: f"Run '{service} auth login' for browser auth",
AuthMethod.TOKEN: f"Refresh token with '{service} token refresh'"
}
return actions[method]
Verification: Run the command with --help flag to verify availability.
yaml
# In your skill's frontmatter
dependencies: [leyline:authentication-patterns]
Verification: Run the command with --help flag to verify availability.
For workflows requiring interactive authentication with token caching and session management:
bash
# Source the interactive auth script
source plugins/leyline/scripts/interactive_auth.sh
# Ensure authentication before proceeding
ensure_auth github || exit 1
ensure_auth gitlab || exit 1
ensure_auth aws || exit 1
# Continue with authenticated operations
gh pr view 123
glab issue list
aws s3 ls
Features:
See modules/interactive-auth.md for complete documentation.
modules/auth-methods.md for method detailsmodules/verification-patterns.md for testing patternsmodules/interactive-auth.md for shell-based auth flows