@mushi-mushi/plugin-crashlytics
v0.1.3
Published
Mushi Mushi plugin for Firebase Crashlytics — flags fixed reports via Remote Config and closes Crashlytics issues when Mushi applies a fix.
Maintainers
Readme
@mushi-mushi/plugin-crashlytics
Mushi Mushi plugin: when Mushi marks a report fixed, close the matching Crashlytics issue (and write a Remote Config marker so the mobile client can short-circuit duplicate reports).
Install
npm i @mushi-mushi/plugin-crashlyticsRun as a stand-alone server
MUSHI_PLUGIN_SECRET=... # set when the plugin is installed in Mushi admin
GOOGLE_OAUTH_BEARER=... # short-lived Google OAuth2 access token
FIREBASE_PROJECT_ID=... # Firebase project id
PORT=3000 # optional
npx mushi-plugin-crashlyticsIssue an OAuth2 bearer with the
https://www.googleapis.com/auth/firebase scope and refresh it via your
service-account workflow before each run.
Programmatic usage
import { createCrashlyticsPlugin } from '@mushi-mushi/plugin-crashlytics'
import express from 'express'
import { expressMiddleware } from '@mushi-mushi/plugin-sdk'
const handler = createCrashlyticsPlugin({
bearer: process.env.GOOGLE_OAUTH_BEARER!,
projectId: process.env.FIREBASE_PROJECT_ID!,
mushiSecret: process.env.MUSHI_PLUGIN_SECRET!,
})
express().post('/mushi/webhook', expressMiddleware(handler)).listen(3000)Subscribed events
fix.applied→- Remote Config: PATCH
mushi_resolved_{reportId} = trueso the mobile SDK can suppress duplicate reports for the same root cause. - Crashlytics v1alpha: PATCH the issue to
state: CLOSED.
- Remote Config: PATCH
Notes
- The plugin is outbound-only; for inbound Crashlytics → Mushi
ingestion use the Crashlytics adapter in
@mushi-mushi/adapters. - Bearer token refresh is the caller's responsibility — design assumes the process runs behind a service-account refresher (Google ADC, IAM Workload Identity).
License
MIT
