Repository navigation
ci(release): thread Slack release notices under the start notice - #347
Conversation
Result notices reply in the start notice thread via its ts. Failures are also broadcast to the channel. If the start post never happened, thread_ts is null and notices post to the channel as before.
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Expose the start-notice timestamp .github/workflows/publish-to-pypi.yml |
The build job identifies the start Slack notice and exports its timestamp. The notify job quotes a present timestamp or uses null when it is absent. |
Thread release outcome notices .github/workflows/publish-to-pypi.yml |
Failure and success notices include the thread timestamp. Failure notices set reply_broadcast to true when a timestamp is present. After a successful publish, the workflow attempts to add a white_check_mark reaction when a timestamp exists. The commented-out Linear configuration lists both jobs as dependencies and includes the timestamp in its failure notice. |
Priority:
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Feature
Possibly related PRs
- Codeplain-ai/codeplain#342: Adds the Slack Action,
notifyjob, and start-message timestamp output that this workflow change uses.
Suggested labels: github-actions
Suggested reviewers: zanjonke
Merge Risk: 
Minimal · up to 26bdc
-
The workflow change has no verified merge-blocking risk and is ready to merge.
Architecture risk: 
Low · up to 26bdc
-
The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.
Changed systems: None identified.
Architecture concerns
No architecture-level concerns identified.Review details
-
Before / after behavior
- observed — Modified behavior in .github/workflows/publish-to-pypi.yml: The build job now exports the start Slack notification’s timestamp as
slack-ts. - observed — Modified behavior in .github/workflows/publish-to-pypi.yml: The start Slack notification step now has the
slack-startID. - observed — Modified behavior in .github/workflows/publish-to-pypi.yml: The notify job now sets
THREAD_TSfrom the build output, quoting a present timestamp and usingnullwhen it is absent. - observed — Modified behavior in .github/workflows/publish-to-pypi.yml: The build-failure Slack notice now includes the thread timestamp and sets
reply_broadcastto true when the timestamp is notnull.
- observed — Modified behavior in .github/workflows/publish-to-pypi.yml: The build job now exports the start Slack notification’s timestamp as
-
Pre-merge checks: 
4
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
Success replies stay in the thread, so a reaction marks the top-level message too. It needs the reactions:write scope on the Slack app. The step is non-fatal until that scope is granted.
Each release now posts one Slack message. The result notices reply in its thread, using the
tsoutput of the start post.reply_broadcast). Success stays in the thread and adds a ✅ reaction to the start notice. This needs thereactions:writescope on the Slack app; the step is non-fatal until it is granted.thread_tsrenders as YAMLnull. The Slack client drops null fields, so notices post to the channel as before. An empty string would be sent as-is, which is whynullis used.thread_tsis quoted so YAML keeps the timestamp a string rather than a float.Summary by CodeRabbit