Skip to content

Commit 319b9ea

Browse files
committed
Merge branch 'fuzzle-sdk-br' of https://github.com/danielmarv/hiero-sdk-python into fuzzle-sdk-br
2 parents 5c5a2d3 + bd99418 commit 319b9ea

23 files changed

Lines changed: 705 additions & 140 deletions

.github/scripts/coderabbit_plan_trigger.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,9 @@
22

33
const CODERABBIT_MARKER = '<!-- CodeRabbit Plan Trigger -->';
44

5-
async function triggerCodeRabbitPlan(github, owner, repo, issue, marker = CODERABBIT_MARKER, isDryRun = false) {
5+
async function triggerCodeRabbitPlan(github, owner, repo, issue, marker = CODERABBIT_MARKER) {
66
const comment = `${marker} @coderabbitai plan`;
77

8-
if (isDryRun) {
9-
console.log(`[DRY RUN] Would trigger CodeRabbit plan for issue #${issue.number}`);
10-
return true;
11-
}
12-
138
try {
149
await github.rest.issues.createComment({
1510
owner,
@@ -105,11 +100,8 @@ async function main({ github, context }) {
105100
return console.log(`CodeRabbit plan already triggered for #${issue.number}`);
106101
}
107102

108-
// Check for dry run (default to true if not specified, for safety)
109-
const isDryRun = (process.env.DRY_RUN || 'true').toLowerCase() === 'true';
110-
111103
// Post CodeRabbit plan trigger
112-
await triggerCodeRabbitPlan(github, owner, repo, issue, CODERABBIT_MARKER, isDryRun);
104+
await triggerCodeRabbitPlan(github, owner, repo, issue, CODERABBIT_MARKER);
113105

114106
logSummary(owner, repo, issue);
115107
} catch (err) {

.github/scripts/cron-admin-update-spam-list.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
*/
99

1010
const fs = require('fs').promises;
11+
const { LABEL_AUTOMATED } = require('./labels.js');
1112

1213
const SPAM_LIST_PATH = '.github/spam-list.txt';
1314
const dryRun = (process.env.DRY_RUN || 'false').toString().toLowerCase() === 'true';
@@ -229,7 +230,7 @@ module.exports = async ({github, context, core}) => {
229230
repo,
230231
title,
231232
body,
232-
labels: [LABEL_SPAM_LIST_UPDATE, 'automated']
233+
labels: [LABEL_SPAM_LIST_UPDATE, LABEL_AUTOMATED]
233234
});
234235
console.log('Issue created successfully');
235236
}

.github/scripts/labels.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/**
2+
* Central location for label definitions to facilitate future changes.
3+
* This file serves as the single source of truth for all GitHub label names used by automated workflows.
4+
*/
5+
const LABEL_BROKEN_MARKDOWN_LINKS = 'notes: broken markdown links';
6+
const LABEL_AUTOMATED = 'notes: automated';
7+
8+
module.exports = {
9+
LABEL_BROKEN_MARKDOWN_LINKS,
10+
LABEL_AUTOMATED
11+
};

.github/spam-list.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ OnlyTerp
1010
shixian-HFUT
1111
Yuki9814
1212
ashrafzunaira18
13+
HrachShah

.github/workflows/bot-coderabbit-plan-trigger.yml

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,6 @@ name: CodeRabbit Plan Trigger
55
on:
66
issues:
77
types: [labeled]
8-
workflow_dispatch:
9-
inputs:
10-
dry_run:
11-
description: "Run without posting comments"
12-
required: false
13-
default: "true"
14-
type: choice
15-
options:
16-
- "true"
17-
- "false"
188

199
permissions:
2010
issues: write
@@ -28,10 +18,9 @@ jobs:
2818
cancel-in-progress: false
2919
# Only run when the newly added label is beginner, intermediate, or advanced (case-insensitive)
3020
if: >
31-
github.event_name == 'workflow_dispatch' ||
32-
(github.event.action == 'labeled' &&
21+
github.event.action == 'labeled' &&
3322
github.event.issue.state == 'open' &&
34-
contains(fromJson('["beginner","intermediate","advanced","Beginner","Intermediate","Advanced"]'), github.event.label.name))
23+
contains(fromJson('["beginner","intermediate","advanced","Beginner","Intermediate","Advanced"]'), github.event.label.name)
3524
3625
steps:
3726
- name: Harden the runner
@@ -45,7 +34,6 @@ jobs:
4534
- name: Trigger CodeRabbit Plan
4635
env:
4736
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48-
DRY_RUN: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run || 'false' }}
4937
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 #v9.0.0
5038
with:
5139
script: |

.github/workflows/cron-pr-check-broken-links.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
name: Cron – Check Broken Markdown Links
22

3+
concurrency:
4+
group: cron-check-broken-markdown-links
5+
cancel-in-progress: false
6+
37
on:
48
schedule:
59
- cron: "0 0 1 * *"
@@ -42,12 +46,14 @@ jobs:
4246
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
4347
with:
4448
script: |
49+
const { LABEL_BROKEN_MARKDOWN_LINKS, LABEL_AUTOMATED } = require('./.github/scripts/labels.js');
50+
4551
// Determine if this is a dry run
4652
const isManual = context.eventName === 'workflow_dispatch';
47-
const dryRun = isManual ? String(context.payload.inputs.dry_run).toLowerCase() === 'true' : false;
53+
const dryRun = isManual ? String(context.payload?.inputs?.dry_run).toLowerCase() === 'true' : false;
4854
4955
// Labels configuration
50-
const targetLabels = ['broken-markdown-links', 'automated'];
56+
const targetLabels = [LABEL_BROKEN_MARKDOWN_LINKS, LABEL_AUTOMATED];
5157
const issueTitle = "Scheduled Markdown Link Check Found Broken Links";
5258
const runUrl = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`;
5359

.github/workflows/request-triage-review.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,13 @@ jobs:
1818
runs-on: [self-hosted,hl-sdk-py-lin-md]
1919

2020
steps:
21+
- name: Harden the runner (Audit all outbound calls)
22+
uses: step-security/harden-runner@8d3c67de8e2fe68ef647c8db1e6a09f647780f40 # v2.19.0
23+
with:
24+
egress-policy: audit
25+
2126
- name: Request triage review
22-
uses: actions/github-script@v9.0.0 #v9.0.0
27+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
2328
with:
2429
script: |
2530
const tag = "<!-- triage -->";

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Thank you for your interest in contributing to the Hiero Python SDK!
3232
3. Follow [Setup Guide](docs/sdk_developers/training/setup)
3333
4. Follow [Workflow Guide](docs/sdk_developers/workflow.md)
3434
5. GPG and DCO sign commits [Quickstart Signing](docs/sdk_developers/training/workflow/07_signing_requirements.md)
35-
6. Submit a PR [Quickstart Submit PR](docs/sdk_developers/training/workflow/11_submit_pull_request.md)
35+
6. Submit a PR [Quickstart Submit PR](docs/sdk_developers/training/workflow/10_submit_pull_request.md)
3636

3737
**Detailed Docs:**
3838

docs/roadmap.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Hiero SDK Python — Roadmap
2+
3+
This is a high-level quarterly roadmap for the Hiero SDK Python project. It is a living document, updated during team discussions.
4+
5+
---
6+
7+
## 2026 Q1 (Underway)
8+
9+
- Implement [TCK](/tck) and [fuzzing tests](/tests/fuzz)
10+
- Implement [static workflow tests](/.github/workflows/)
11+
12+
## 2026 Q2
13+
14+
- Complete [TCK](/tck) tests
15+
- Implement 2 new HIPs
16+
17+
## 2026 Q3
18+
19+
- Improve core functionality robustness
20+
- Implement 2 new HIPs
21+
22+
## 2026 Q4
23+
24+
- Focus on remaining HIP implementations

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ requires-python = ">=3.10, <4"
1616
dependencies = [
1717
"protobuf>=4.21.12,<8",
1818
"grpcio>=1.76.0,<2",
19-
"cryptography>=44.0.1,<47",
19+
"cryptography>=44.0.1,<48",
2020
"requests>=2.31.0,<3",
2121
"pycryptodome>=3.18.0,<4",
2222
"eth-abi>=5.1.0,<6",

0 commit comments

Comments
 (0)