GitHub Action (signed release webhook) · TikTok

Announce GitHub releases on TikTok after review

A release with a visible change deserves a short demo, and TikTok is where a lot of people discover tools now. socialhandoff-announce-action sends each published release to SocialHandoff, which drafts a TikTok caption with a citation back to the release. TikTok needs a video or photos, and a release has neither, so the draft waits text-only until a person attaches the demo clip in the inbox or imports a release asset by URL, checks the consent text, and approves.

Prompt

Release rule: on release published, draft for TikTok, approval required. Reviewer attaches a 20 to 40 second demo recording and shortens the caption before approving.

How to do it

  1. Add a release rule In https://app.socialhandoff.com, connect TikTok, then open TikTok settings on the account and choose visibility, comment/duet/stitch, and commercial disclosure. Then add a GitHub trigger in Connections with a release rule that targets TikTok, and copy the trigger id and signing secret.
  2. Store the secret and add the action Add ANNOUNCE_WEBHOOK_SECRET as an Actions secret, copy the socialhandoff-announce-action folder from https://github.com/socialhandoff/socialhandoff into the repository, and reference it from a workflow on release published.
  3. Publish a release The action signs the payload and sends tag, name, notes, and URL. A TikTok draft appears in the inbox with a citation back to the release.
  4. Add media Release drafts arrive as text. Attach the video or up to 35 photos in the inbox, or import a public release asset URL with POST https://app.socialhandoff.com/v1/media/import using an agent key and attach it before you approve; a text-only draft cannot be approved for TikTok.
  5. Approve with the consent text The approval screen shows the visibility and interaction settings chosen in Connections and TikTok's consent text. Approve, and it publishes; a video is sent to TikTok in chunks.

Example draft

New in 5.1: undo now works across everything, including deletes.

We rebuilt history from the ground up so nothing you do is permanent by accident.

#appupdate #productivity #release

[Video to attach in the inbox: vertical demo recording of undo restoring a deleted page]

Gotchas

  • Visibility has no default. Posts are refused until the owner picks it in TikTok settings under Connections, along with comment, duet, and stitch.
  • The action sends the release, not a finished post. Which networks it targets lives on the release rule in Connections, not in the workflow file.
  • Photo posts are fetched by URL, so the domain serving your media must be verified in the TikTok developer portal. Videos upload as bytes and skip this.
TikTok
  • Media: Every post needs one video or up to 35 photos. Text-only posts are not possible.
  • Video upload: Videos upload in chunks of 5 to 64 MB; smaller files go in one piece. Maximum duration depends on the creator account.
  • Photo posts: Up to 35 JPEG or WebP images, a title up to 90 characters, and a description up to 4,000 characters.
  • Required choices: TikTok requires a visibility setting with no default, comment/duet/stitch toggles, and a commercial content disclosure.
TikTok scheduler with approval and TikTok's required choices

Frequently asked questions

Can I post photos instead of a video?
Yes. A TikTok photo post takes up to 35 images. The domain serving them must be verified in the TikTok developer portal.
Does the action need an agent key?
No. It uses the trigger id and a signing secret, verified with HMAC-SHA256. The draft cites the release in the audit log.
Why are my TikTok posts private?
TikTok limits unaudited developer apps to private posts. Submit your app for TikTok's audit to lift the restriction; until then, posts are visible only to the account.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial