v0.2.13 - #64
Conversation
WalkthroughThe converter no longer manages BloodHound clients or credentials, and destination URLs now use DLT configuration. Release automation now builds from published releases and invokes a reusable container build workflow. ChangesBloodHound configuration
Release automation
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant GitHubRelease
participant BuildWorkflow
participant ContainerWorkflow
GitHubRelease->>BuildWorkflow: published release tag and prerelease state
BuildWorkflow->>BuildWorkflow: checkout and verify package version
BuildWorkflow->>ContainerWorkflow: reusable workflow call with tag and prerelease
Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/build-and-publish.yml:
- Line 41: Stop interpolating release-controlled values directly into shell
commands. In .github/workflows/build-and-publish.yml at lines 41-41 and 54-54,
expose github.event.release.tag_name through the step environment and read it
via a shell variable; apply the same env-based handling to inputs.tag in
.github/workflows/build-and-sign-container.yml at line 50.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 5fbd5117-d680-4894-a6a6-77469e5a08d3
📒 Files selected for processing (4)
.github/workflows/build-and-publish.yml.github/workflows/build-and-sign-container.yml.github/workflows/release-on-merge.yml.github/workflows/validate-branch.yml
💤 Files with no reviewable changes (2)
- .github/workflows/validate-branch.yml
- .github/workflows/release-on-merge.yml
| REF="${{ inputs.tag || github.ref_name }}" | ||
| # RC tags are written without a dash (e.g. v0.2.13rc1) so the stripped | ||
| # tag is already the PEP 440 / PyPI version hatch-vcs produces. | ||
| REF="${{ github.event.release.tag_name }}" |
There was a problem hiding this comment.
🔒 Security & Privacy | 🔴 Critical | ⚡ Quick win
Avoid interpolating release-controlled values directly into shell.
.github/workflows/build-and-publish.yml#L41-L41and#L54-L54: passgithub.event.release.tag_namethroughenv, then read it from a shell variable..github/workflows/build-and-sign-container.yml#L50-L50: do the same forinputs.tag.
📍 Affects 2 files
.github/workflows/build-and-publish.yml#L41-L41(this comment).github/workflows/build-and-publish.yml#L54-L54.github/workflows/build-and-sign-container.yml#L50-L50
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/workflows/build-and-publish.yml at line 41, Stop interpolating
release-controlled values directly into shell commands. In
.github/workflows/build-and-publish.yml at lines 41-41 and 54-54, expose
github.event.release.tag_name through the step environment and read it via a
shell variable; apply the same env-based handling to inputs.tag in
.github/workflows/build-and-sign-container.yml at line 50.
Note
This branch will contain work done for multiple unrelated tickets. We're merging into this feature branch so we don't increment the OH version a bunch of times upon release.
1. BED-9063: Split BloodHound asset upload config between config.toml and secrets.toml
Context
BED-8838 moved the BHE URL out of
secrets.tomlintoconfig.tomlfor the scheduler/collection destination (destination.bloodhoundenterprise), but missed the CLI Asset Upload destination (destination.bloodhound), which still requiredurlas a secret.Changes
destinations/bloodhound/destination.py:urlparam onsaved_searchesandprivilege_zonesnow resolves viadlt.config.valueinstead ofdlt.secrets.value.tokenremainsdlt.secrets.value.core/convert.py: Removed dead code left over from an abandoned first implementation — theCredentialsdataclass,Converter._credentialsproperty, and the unusedself.client/self.upload_idattributes (and their now-unusedBloodHoundimport). These referenced a client that was never actually instantiated; the real ingest path usesBloodHoundEnterprisevia the@dlt.destinationfunction pattern.Important
Please open a related PR for an update to the offical BloodHound documentation!
UPDATE: here is the PR for the doc update
Testing
pytestsuite rundlt.config.valuestill resolvesurlif a user'ssecrets.tomlstill has it there.Summary by CodeRabbit
Summary by CodeRabbit
Bug Fixes
Chores