See all services Shopify Plus Partner
Themes Developer

Identify Who Edited Your Theme From Shopify GitHub Commits

Shopify now writes the name of the last theme editor into the commit body it pushes to your connected GitHub branch. Useful attribution for multi store teams, with three caveats worth knowing before you build process around it.

Executive summary

What changed

Connect a theme to a branch through the Shopify GitHub app and every save in the admin produces an automatic commit. Until now the commit body identified the shop and nothing else. It now carries a line naming the last editor: Update from Shopify for theme Dawn, then Committed from shop: Snowdevil, then Theme last edited by: Bob Bobsen.

Three details matter. The name is plain text, not a mapped GitHub identity. The commit author remains the Shopify bot, so git blame, avatars, and any tooling keyed on author email are unchanged. And saves within roughly ten seconds of each other are batched into one commit, so the recorded name is whoever saved last rather than a per file record. Where no editor is recorded, the body falls back to the shop name alone.

Why it matters

On a single store with two developers this is a convenience. On a Plus estate with several storefronts, a rotating agency roster, and marketing staff holding theme access, it is the difference between an audit trail and a guess. A commit reading Committed from shop tells you a change happened. One that names the editor tells you who to ask, the step that actually consumes time in triage.

It also removes a familiar friction point in change management. Enterprise teams regularly ask for theme edit attribution during audit and security review, and the honest answer was that the repository could not supply it. It can now, at the granularity of the last save. Treat that as a signal rather than a control: the line is not tamper evident, and it does not replace access reviews on the Manage themes permission. If you want theme governance mapped across a multi store estate, that is a conversation worth having early.

Role-specific impact

Use-case example

Real-world scenario

A Plus merchant runs five regional storefronts from one theme repository, with an agency, one in house developer, and four marketers holding theme access. A product grid on the German storefront starts rendering two columns instead of four on mobile. The change came from the theme editor, so it lands in the repo as a bot commit touching a settings file. Previously the on call developer opened the diff, saw only the shop name, and spent twenty to thirty minutes asking around. That triage step is now a glance at git log. Across a team fielding six of these a month, it recovers two to three hours of engineering time and cuts time to resolution on regressions sitting live on revenue generating pages.

Implementation checklist

  1. Confirm which themes are connected to a branch through the Shopify GitHub app, store by store.
  2. Audit the accounts holding Manage themes and Themes permissions, and retire shared or stale logins.
  3. Update the incident runbook so theme regression triage starts with git log on the connected branch rather than a broadcast message.
  4. Check commit parsing automation and ChatOps integrations for assumptions about the commit body format.
  5. Brief marketing staff that theme editor saves are attributed by name in the repository, so the visibility is expected.
  6. If you need attribution stronger than a text line, plan an access review cadence rather than relying on commit metadata.

FAQ

Q: Does this change git blame or the commit author?

A: No. The author is still the Shopify bot, so blame output, avatars, and author based tooling are unaffected. The editor name appears only as plain text in the commit body.

Q: What happens when several people save at the same time?

A: Saves within about ten seconds are batched into one commit and the body names whoever saved last. Treat it as last writer attribution, not a complete per file record.

Resources

Shopify GitHub app documentation

Need guidance? Talk to Makro.