Skip to content

Promote the Carried Secret Readers to Main - #562

Merged
ptr727 merged 4 commits into
mainfrom
develop
Oct 28, 2026
Merged

ptr727 merged 4 commits into
mainfrom
develop

Conversation

@ptr727

@ptr727 ptr727 commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

Summary

Promotes the carried secret readers to main.

  • #561 carries the hub's lib/sh to lib/fleet/sh. deploy/make-release.sh checks its env file with require_secret and reads DEPLOY_ROOT, DEPLOY_SSH_HOST, and SITE_BASE_URL with read_env_value, replacing the set -a sourcing. The docs describe the new reading, and each copy step says to make the file mode 600.
  • #563 and #564 fix the wording that Copilot's rounds on this pull request flagged. .secrets/example.env and OPERATIONS.md now name the values the script reads from its file, rather than crediting the shell's sourcing.
  • #560 is develop's copy of the hub workflow bump that #559 already landed on main.

Verification

  • A local staging release of develop at 6671b6c built and installed through the new reader against the real staging env file, and checks/check-live-urls.sh with EXPECT_RELEASE passed every URL.
  • Read the Release Env File Through the Carried Secret Readers #561's own checks, its four recorded local strict review passes, and its Copilot round are on that pull request.

Issues

Closes #553

🤖 Generated with Claude Code

dependabot Bot and others added 2 commits October 28, 2026 12:39
Bumps the actions-deps group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [ptr727/ProjectTemplate/.github/workflows/validate-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1166` | `2.0.1192` |
| [ptr727/ProjectTemplate/.github/workflows/deploy-site-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1166` | `2.0.1192` |
| [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1166` | `2.0.1192` |
| [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1166` | `2.0.1192` |
| [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1166` | `2.0.1192` |


Updates `ptr727/ProjectTemplate/.github/workflows/validate-task.yml` from 2.0.1166 to 2.0.1192
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@63cf1c9...d7041d8)

Updates `ptr727/ProjectTemplate/.github/workflows/deploy-site-task.yml` from 2.0.1166 to 2.0.1192
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@63cf1c9...d7041d8)

Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1166 to 2.0.1192
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@63cf1c9...d7041d8)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1166 to 2.0.1192
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@63cf1c9...d7041d8)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1166 to 2.0.1192
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@63cf1c9...d7041d8)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/validate-task.yml
  dependency-version: 2.0.1192
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/deploy-site-task.yml
  dependency-version: 2.0.1192
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1192
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1192
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1192
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Read the Release Env File Through the Carried Secret Readers

Carry the hub's lib/sh to lib/fleet/sh now that Blog declares the
host-secrets type. make-release.sh checks its env file with
require_secret and reads DEPLOY_ROOT, DEPLOY_SSH_HOST and SITE_BASE_URL
with read_env_value, replacing the existence check and set -a sourcing.
A group-readable or CRLF file is refused, and the file's other
credentials no longer enter the script's environment.

The carried copy keeps the hub's four-space indent, so .editorconfig
scopes the tab rule away from lib/fleet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Describe the Carried Readers Wherever the Env File Is Documented

The docs still said make-release.sh sources its env file with set -a.
They now say it reads three values and overwrites the caller's, set or
not. Each copy step says to make the file mode 600, since the script
refuses a group-readable one. The shell lint tasks list the carried
library, matching CI's file set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Split the Env-File Sentences That Ran Past 25 Words

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add the Missing Relative Pronoun to the Mode Requirement

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 28, 2026 21:18
@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 0c08e5b6-157b-438d-85b1-eefec097a25f
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ptr727 ptr727 added the comments Permits the comment lines the pull request adds or edits, which the prose gate otherwise refuses label Oct 28, 2026
@codecov

codecov Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 53.98%. Comparing base (b885743) to head (b09f9e4).
⚠️ Report is 162 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #562   +/-   ##
=======================================
  Coverage   53.98%   53.98%           
=======================================
  Files          12       12           
  Lines        3412     3412           
=======================================
  Hits         1842     1842           
  Misses       1570     1570           
Flag Coverage Δ
python-3.13 53.98% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Two documentation inconsistencies remain: the example environment claim overstates which values the script reads, and the operations runbook incorrectly describes DEPLOY_ROOT as sourced rather than read.

2 open issues
What changed in this PR

This pull request promotes the carried secret-reader integration and reusable workflow updates to main. The release script now validates and selectively reads environment files instead of sourcing them directly.

Changes:

  • Adds the carried secret validation and environment-value reader library.
  • Updates release, deployment, environment, and secret-file documentation.
  • Updates deploy/make-release.sh to read only required values.
  • Pins reusable workflows to ProjectTemplate 2.0.1192.
  • Includes the carried shell library in local lint and formatting tasks.
  • Records three documentation nits: two in OPERATIONS.md and one in .secrets/example.env.
File Description
README.md Documents required permissions for local environment files.
OPERATIONS.md Updates release procedures and environment-reading guidance. Findings: two [P2] nits (3 votes and 1 vote) clarify file-reading and sourcing terminology.
lib/​fleet/​sh/​secrets.sh Adds the carried secret validation and environment-value readers.
ENVIRONMENT.md Describes validation, precedence, and selective environment-file reading.
deploy/​README.md Documents environment-file setup, permissions, and selection.
deploy/​make-release.sh Validates the environment file and reads selected values through the carried readers.
.vscode/​tasks.json Includes the carried shell library in shell lint and format tasks.
.secrets/​README.md Documents required private permissions for environment files.
.secrets/​example.env Updates environment-file usage and permission notes. Finding: one [P2] nit (2 votes) limits the override claim to the values read by the release script.
.github/​workflows/​test-pull-request.yml Pins the reusable validation workflow to 2.0.1192.
.github/​workflows/​publish-release.yml Pins release planning, validation, and build workflows to 2.0.1192.
.github/​workflows/​merge-bot-pull-request.yml Pins the merge-bot workflow to 2.0.1192.
.github/​workflows/​deploy-site.yml Pins validation and deployment workflows to 2.0.1192.
.editorconfig Preserves four-space indentation for the carried shell tree.

Review effort: Lite

Comment thread .secrets/example.env Outdated
Comment thread OPERATIONS.md Outdated
* Name the Values make-release.sh Reads From Its Env File

The example template and two OPERATIONS.md sentences still credited the
shell's sourced DEPLOY_ROOT, or every value in the file, to the script.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Name What Sourcing Supplies and What the Root Argument Overrides

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

OPERATIONS.md still inaccurately describes ENV_FILE as sourced, conflicting with the script’s current read-based behavior and leaving the runbook inconsistent.

No open issues 🎉

2 resolved since last review

Review effort: Lite

…564)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727

ptr727 commented Oct 28, 2026

Copy link
Copy Markdown
Owner Author

Headline on the 7063a41 round (OPERATIONS.md still describing ENV_FILE as sourced): Fixed in b09f9e4 (#564). OPERATIONS.md:70 said "ENV_FILE is set as well as sourced", meaning that the shell sources the file and the command also names it in ENV_FILE. It now says "The file is both sourced in the shell and named in ENV_FILE". A sweep of OPERATIONS.md, ENVIRONMENT.md, deploy/README.md, README.md, and .secrets/README.md found no other sentence saying ENV_FILE or the script sources the file.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are identified for the documented secret-reader, release-script, and workflow updates.

No open issues 🎉

Review effort: Lite

@ptr727
ptr727 merged commit e15ba2e into main Oct 28, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comments Permits the comment lines the pull request adds or edits, which the prose gate otherwise refuses

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Read the Release Env File Through the Hub's Carried Readers

2 participants