# How to automate release posts in GitHub Actions with DunSocial > Schedule reviewed release copy from GitHub Actions using a scoped DunSocial token, stable JSON output, meaningful failures and a safety delay. - Published: 2026-08-06 - Last updated: 2026-08-06 - Author: DunSocial - Topics: cli, how-to --- A release workflow should transport approved copy, not generate marketing language from arbitrary commits. Add the public summary during release review, then let the job schedule it after the release exists. Keep the social step observable and independent so a network failure never rolls back the software deployment. Search phrases: GitHub Actions social media post, automate release announcement CI, DunSocial GitHub Actions, CLI social media automation, post changelog from CI. ## What you will do - Store workspace-bound credentials as GitHub secrets. - Schedule a release post with JSON output. - Prevent duplicate posts on workflow reruns. ## Before you start - Node.js 20 or newer and the DunSocial CLI installed with `npm install -g dunsocial`. - A selected workspace and the DunSocial account IDs returned by `dun accounts list`. - Browser login for a laptop, or a workspace-bound token stored in a secret manager for automation. ## Step by step ### 1. Create CI credentials Create a PAT under Settings → CLI with only the necessary scopes. Save token, workspace ID and account ID as repository or environment secrets. ### 2. Prepare reviewed copy Use a release input or reviewed public summary. Validate it is non-empty before calling the CLI. ### 3. Schedule after release Use a short delay and capture the JSON response. ``` - name: Schedule release post env: DUN_TOKEN: ${{ secrets.DUN_PAT }} DUN_WORKSPACE_ID: ${{ secrets.DUN_WORKSPACE_ID }} DUN_X_ACCOUNT_ID: ${{ secrets.DUN_X_ACCOUNT_ID }} run: | npx --yes dunsocial posts schedule \ --text "Released ${{ github.event.release.name }}. Read the reviewed notes for details." \ --accounts "$DUN_X_ACCOUNT_ID" \ --in 10m \ --json ``` ### 4. Handle reruns and failures Use workflow concurrency or a recorded post ID to prevent duplicates. Alert on CLI failure, but do not fail the already completed product release. ## Check before you finish - `dun workspace current` shows the intended workspace before a write command. - The command uses DunSocial account IDs rather than social @handles. - The new item appears in DunSocial with the expected CLI source, copy and time. ## Where to go next Add the returned post ID to the job summary and document the cancellation command for release rollbacks. --- ## About this document This is the Markdown representation of https://www.dunsocial.com/blog/automate-release-posts-in-github-actions-with-dunsocial. The HTML version of the same page is at the same URL. You can also request Markdown from any page by sending `Accept: text/markdown`. Machine-readable summary of the whole site: https://www.dunsocial.com/llms.txt ## Company - Product: DunSocial, https://www.dunsocial.com - Legal entity: THISUX PRIVATE LIMITED, Chennai, Tamil Nadu, India - Support: support@dunsocial.com - Open the app: https://app.dunsocial.com/login