Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
49f8132
chore: initial ruff linting
manishdait Apr 5, 2026
a9c569c
fix: issues with timezone in 3.10
manishdait Apr 5, 2026
1d731d8
chore:added ruff lint to the test/unit
manishdait Apr 5, 2026
2718122
chore: added ruff formating to e2e test
manishdait Apr 5, 2026
f34939b
chore: added ruff formating to tck
manishdait Apr 5, 2026
927b5f0
chore: added ruff formating to test/tck
manishdait Apr 5, 2026
3759cb1
chore: added ruff formating to examples
manishdait Apr 5, 2026
31408c6
chore: fix formating in src
manishdait Apr 5, 2026
2e88dd7
chore: added ruff formating to root files
manishdait Apr 5, 2026
53ffed5
chore: added missing lint
manishdait Apr 5, 2026
2f983d6
chore: added ruff to precommit.yml
manishdait Apr 5, 2026
141bfd5
chore: added precommit hook
manishdait Apr 5, 2026
1f291da
chore: fix rebase
manishdait Apr 7, 2026
b09af7a
chore: fix ruff linting
manishdait Apr 7, 2026
14d19bb
chore: added precommit styles
manishdait Apr 7, 2026
1504328
chore: added the precommit workflow
manishdait Apr 7, 2026
624e80d
chore: added the isort rules
manishdait Apr 7, 2026
35d938b
chore: added docs for precommit setup
manishdait Apr 7, 2026
fcadb4e
chore: update token for github
manishdait Apr 9, 2026
0475a57
chore: update token for github test
manishdait Apr 9, 2026
118c4cd
chore: update token for github test 4
manishdait Apr 9, 2026
e0644f7
chore: update token for github test 5
manishdait Apr 9, 2026
0b71368
chore: update token for github test 6
manishdait Apr 9, 2026
2ecf664
chore: update token for github test 7
manishdait Apr 9, 2026
bcd2c2f
chore: update token for github test 8
manishdait Apr 9, 2026
702f4a2
chore: update token for github test 9
manishdait Apr 9, 2026
8ee7697
chore: update token for github test 10"
manishdait Apr 9, 2026
da0b0c6
chore: update token for github test 1q
manishdait Apr 9, 2026
378fbb2
chore: update token for github test 12
manishdait Apr 9, 2026
a1868a3
chore: test new
manishdait Apr 9, 2026
7157e5e
chore: test new
manishdait Apr 9, 2026
1e6763c
chore: test new 2
manishdait Apr 9, 2026
90e6fc3
chore: test new 3
manishdait Apr 9, 2026
2607332
chore: test new 4
manishdait Apr 9, 2026
6307ff9
chore: use gihtub token
manishdait Apr 9, 2026
5e8fa88
chore: use the ref now
manishdait Apr 9, 2026
241e0d5
chore: use the ref now
manishdait Apr 9, 2026
7f745d8
chore: update the action
manishdait Apr 9, 2026
b9d79d1
chore: improve script
manishdait Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
108 changes: 54 additions & 54 deletions .coderabbit.yaml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ NETWORK=<NETWORK> #eg testnet/local/previewnet/mainnet, default to testnet or lo
# TOKEN_ID=<TOKEN_ID> #optional
# TOKEN_NAME=<TOKEN_NAME> #optional
# TOKEN_SYMBOL=<TOKEN_SYMBOL> #optional
# TOPIC_ID=<TOPIC_ID> #optional
# TOPIC_ID=<TOPIC_ID> #optional
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

# Documentation & legal
/README.md @hiero-ledger/hiero-sdk-python-maintainers
/LICENSE @hiero-ledger/hiero-sdk-python-maintainers @hiero-ledger/github-maintainers @hiero-ledger/tsc
/LICENSE @hiero-ledger/hiero-sdk-python-maintainers @hiero-ledger/github-maintainers @hiero-ledger/tsc

# Git ignore definitions
**/.gitignore @hiero-ledger/hiero-sdk-python-maintainers @hiero-ledger/github-maintainers
Expand Down
14 changes: 7 additions & 7 deletions .github/ISSUE_TEMPLATE/01_good_first_issue_candidate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ body:
> This issue is not yet a confirmed Good First Issue.
> It is being evaluated for suitability and may require
> clarification or refinement before it is ready to be picked up.
>
>
> **Please wait for maintainer confirmation before asking to be assigned.**
>
>
> Maintainers and reviewers can read more about [Good First Issues](https://github.com/hiero-ledger/hiero-sdk-python/blob/main/docs/maintainers/good_first_issues_guidelines.md) and [Good First Issue Candidates](https://github.com/hiero-ledger/hiero-sdk-python/blob/main/docs/maintainers/good_first_issue_candidate_guidelines.md)

validations:
Expand All @@ -49,13 +49,13 @@ body:
> [!IMPORTANT]
> **This issue does not require prior domain knowledge.**
>
> - No Hiero or Hedera experience needed
> - No distributed ledger background required
> - No Hiero or Hedera experience needed
> - No distributed ledger background required
> - **Basic Python and Git are sufficient**

> [!NOTE]
> ⏱️ **Typical time to complete:** 30–90 minutes (once setup is done)
> 🧩 **Difficulty:** Small, well-contained change
> ⏱️ **Typical time to complete:** 30–90 minutes (once setup is done)
> 🧩 **Difficulty:** Small, well-contained change
> 🎓 **Best for:** New contributors

**🏁 Completion**
Expand Down Expand Up @@ -114,7 +114,7 @@ body:

def run_demo():
"""Monolithic token association demo."""
print(f"🚀 Connecting to Hedera {network_name} network!")
print(f"🚀 Connecting to Hedera {network_name} network!")
client = Client(Network(network_name))
operator_id = AccountId.from_string(os.getenv("OPERATOR_ID", ""))
operator_key = PrivateKey.from_string(os.getenv("OPERATOR_KEY", ""))
Expand Down
10 changes: 5 additions & 5 deletions .github/ISSUE_TEMPLATE/02_good_first_issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ body:
> [!IMPORTANT]
> **This issue does not require prior domain knowledge.**
>
> - No Hiero or Hedera experience needed
> - No distributed ledger background required
> - No Hiero or Hedera experience needed
> - No distributed ledger background required
> - **Basic Python and Git are sufficient**

> [!NOTE]
> ⏱️ **Typical time to complete:** 30–90 minutes (once setup is done)
> 🧩 **Difficulty:** Small, well-contained change
> ⏱️ **Typical time to complete:** 30–90 minutes (once setup is done)
> 🧩 **Difficulty:** Small, well-contained change
> 🎓 **Best for:** New contributors

**🏁 Completion**
Expand Down Expand Up @@ -98,7 +98,7 @@ body:

def run_demo():
"""Monolithic token association demo."""
print(f"🚀 Connecting to Hedera {network_name} network!")
print(f"🚀 Connecting to Hedera {network_name} network!")
client = Client(Network(network_name))
operator_id = AccountId.from_string(os.getenv("OPERATOR_ID", ""))
operator_key = PrivateKey.from_string(os.getenv("OPERATOR_KEY", ""))
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/05_advanced_issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,4 @@ body:
- [Office Hours](https://zoom-lfx.platform.linuxfoundation.org/meeting/99912667426?password=5b584a0e-1ed7-49d3-b2fc-dc5ddc888338) (Wednesdays, 2pm UTC)
- [Discord #hiero-python-sdk](https://github.com/hiero-ledger/hiero-sdk-python/blob/main/docs/discord.md)
validations:
required: false
required: false
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ body:
- Linux
- macOS
- Windows
- Other
- Other
2 changes: 1 addition & 1 deletion .github/coderabbit/release-pr-prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@ Identify any modifications to the public-facing interface.
---

### 🏁 Summary Verdict
Provide a 1-sentence summary of the "Safety" of this release candidate.
Provide a 1-sentence summary of the "Safety" of this release candidate.
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ updates:
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 10
open-pull-requests-limit: 10
6 changes: 3 additions & 3 deletions .github/scripts/archive/gfi_notify_team.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ ${TEAM_ALIAS}

${message}

Repository: ${owner}/${repo}
Repository: ${owner}/${repo}
Issue: #${issue.number} - ${issue.title || '(no title)'}

Best Regards,
Best Regards,
Python SDK team`;

try {
Expand Down Expand Up @@ -103,4 +103,4 @@ module.exports = async ({ github, context }) => {
} catch (err) {
console.log('❌ Error:', err.message);
}
};
};
22 changes: 11 additions & 11 deletions .github/scripts/bot-assignment-check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ get_permission() {

is_spam_user() {
local spam_file=".github/spam-list.txt"

# Check static spam list
if [[ -f "$spam_file" ]]; then
if grep -vE '^\s*#|^\s*$' "$spam_file" | grep -qxF "$ASSIGNEE"; then
Expand All @@ -40,14 +40,14 @@ issue_has_gfi() {
# This allows mentors to be assigned to mentorship issues without consuming their assignment limit
assignments_count() {
local permission="${1:-none}"

if [[ "$permission" == "triage" ]]; then
echo "Triage user detected — excluding mentor-duty issues from count." >&2
# For triage users, exclude issues with 'mentor-duty' label
gh api "repos/${REPO}/issues?per_page=100&page=1" \
-f assignee="${ASSIGNEE}" \
-f state=open \
--jq '.[]
--jq '.[]
| select(.pull_request == null)
| select(any(.labels[]; .name == "mentor-duty") | not)
| .number' | grep -c . || echo 0
Expand All @@ -67,11 +67,11 @@ post_comment() {

msg_spam_non_gfi() {
cat <<EOF
Hi @$ASSIGNEE, this is the Assignment Bot.
Hi @$ASSIGNEE, this is the Assignment Bot.

:warning: **Assignment Restricted**

Your account currently has limited assignment privileges. You may only be assigned to issues labeled **Good First Issue**.
Your account currently has limited assignment privileges. You may only be assigned to issues labeled **Good First Issue**.

**Current Restrictions:**
- :white_check_mark: Can be assigned to 'Good First Issue' labeled issues (maximum 1 at a time)
Expand Down Expand Up @@ -148,30 +148,30 @@ if [[ "$SPAM" == "true" ]]; then
post_comment "$(msg_spam_non_gfi)"
exit 1
fi

echo "Issue has 'Good First Issue' label."

# Spam users have a limit of 1 open assignment
echo "Spam-listed user has $COUNT open assignments."

if (( COUNT > 1 )); then
echo "Spam user limit exceeded (Max 1 allowed). Revoking assignment."
remove_assignee
post_comment "$(msg_spam_limit_exceeded "$COUNT")"
exit 1
fi

echo "Spam-listed user assignment valid. User has $COUNT assignment(s)."
else
# Normal users have a limit of 2 open assignments
echo "Current open assignments count: $COUNT"

if (( COUNT > 2 )); then
echo "Limit exceeded (Max 2 allowed). Revoking assignment."
remove_assignee
post_comment "$(msg_normal_limit_exceeded)"
exit 1
fi

echo "Assignment valid. User has $COUNT assignments."
fi
2 changes: 1 addition & 1 deletion .github/scripts/bot-beginner-assign-on-comment.js
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ Please try a GFI first, then come back — we’ll be happy to assign this! 😊
}
return;
}

// --- ASSIGNMENT LOGIC ---
if (issue.assignees && issue.assignees.length > 0) {
try{
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/bot-community-calls.sh
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ echo "$ISSUE_DATA" |
echo "Skipping issue #$ISSUE_NUM created by bot account @$AUTHOR"
continue
fi

for EXCLUDED in "${EXCLUDED_AUTHORS[@]}"; do
if [ "$AUTHOR" = "$EXCLUDED" ]; then
echo "Skipping issue #$ISSUE_NUM by excluded author @$AUTHOR"
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/bot-conventional-pr-title.js
Original file line number Diff line number Diff line change
Expand Up @@ -317,4 +317,4 @@ module.exports = {
run,
suggestConventionalType,
formatMessage
};
};
6 changes: 3 additions & 3 deletions .github/scripts/bot-gfi-assign-on-comment.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ function commentAlreadyAssigned(requesterUsername, issue) {
return (
`Hi @${requesterUsername} — this issue is already assigned to ${getCurrentAssigneeMention(issue)}, so I can’t assign it again.

👉 **Choose a different Good First Issue to work on next:**
👉 **Choose a different Good First Issue to work on next:**
[Browse unassigned Good First Issues](${UNASSIGNED_GFI_SEARCH_URL})

Once you find one you like, comment \`/assign\` to get started.`
Expand Down Expand Up @@ -248,7 +248,7 @@ module.exports = async ({ github, context }) => {
username,
});

if (isTeamMember) {
if (isTeamMember) {
console.log('[gfi-assign] Skip reminder: commenter is collaborator');
return;
}
Expand Down Expand Up @@ -403,7 +403,7 @@ module.exports = async ({ github, context }) => {
if (mentorAssignmentSucceeded) {
try {
const { triggerCodeRabbitPlan, hasExistingCodeRabbitPlan } = require('./coderabbit_plan_trigger.js');

// Check if CodeRabbit plan already exists to avoid duplicate comments
const planExists = await hasExistingCodeRabbitPlan(github, owner, repo, issueNumber);
if (planExists) {
Expand Down
4 changes: 2 additions & 2 deletions .github/scripts/bot-inactivity-unassign.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ fi

# Get list of open issues with assignees (pagination via gh)
ISSUES=$(
gh api "repos/$REPO/issues" --paginate --jq '.[]
gh api "repos/$REPO/issues" --paginate --jq '.[]
| select(.state=="open" and (.assignees|length>0) and (.pull_request|not))
| .number' 2>/dev/null || true
)
Expand All @@ -108,7 +108,7 @@ for ISSUE in $ISSUES; do
echo " [INFO] Issue created at: ${ISSUE_CREATED_AT:-(unknown)}"
echo

# Fetch full timeline with pagination and flatten array
# Fetch full timeline with pagination and flatten array
TIMELINE=$(gh api --paginate -H "Accept: application/vnd.github.mockingbird-preview+json" "repos/$REPO/issues/$ISSUE/timeline" 2>/dev/null | jq -s 'add' || echo "[]")
TIMELINE=${TIMELINE:-'[]'}

Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/bot-issue-reminder-no-pr.sh
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ has_recent_working_command() {
return 1 # False
fi

# The 'since' parameter is an optimization, but the API may still return comments
# The 'since' parameter is an optimization, but the API may still return comments
# updated since the cutoff, not just created. We still need to check the create time.
for created_at in $working_comments; do
local comment_ts
Expand Down
4 changes: 2 additions & 2 deletions .github/scripts/bot-mentor-assignment.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ async function isNewContributor(github, owner, repo, login) {

try {
console.log(`Checking for merged PRs by ${login} in ${targetOwner}/${targetRepo}`);

const iterator = github.paginate.iterator(github.rest.pulls.list, {
owner: targetOwner,
repo: targetRepo,
Expand All @@ -94,7 +94,7 @@ async function isNewContributor(github, owner, repo, login) {
return false;
}
}

console.log(`No merged PRs found for ${login}. Considered a new starter.`);
return true;
} catch (error) {
Expand Down
6 changes: 3 additions & 3 deletions .github/scripts/bot-p0-issues-notify-team.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// Script to notify the team when a P0 issue is created.
// Script to notify the team when a P0 issue is created.

const marker = '<!-- P0 Issue Notification -->';

async function notifyTeam(github, owner, repo, issue, marker) {
const comment = `${marker} :rotating_light: Attention Team :rotating_light:
const comment = `${marker} :rotating_light: Attention Team :rotating_light:
@hiero-ledger/hiero-sdk-python-maintainers @hiero-ledger/hiero-sdk-python-committers @hiero-ledger/hiero-sdk-python-triage

A new P0 issue has been created: #${issue.number} - ${issue.title || '(no title)'}
Expand Down Expand Up @@ -54,4 +54,4 @@ module.exports = async ({ github, context }) => {
} catch (err) {
console.log('❌ Error:', err.message);
}
};
};
8 changes: 4 additions & 4 deletions .github/scripts/bot-pr-draft-explainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,12 @@ module.exports = async ({ github, context }) => {

const authorLogin = pr.user?.login;
const greetingTarget = authorLogin ? `@${authorLogin}` : "there";

if (!pr.draft) {
console.log(`PR #${prNumber} is not draft. Skipping.`);
return;
}
}

console.log(`PR #${prNumber} was converted to draft. Checking if explanation is needed.`);

// Prevent duplicate comments
Expand All @@ -141,7 +141,7 @@ module.exports = async ({ github, context }) => {
console.log("Skipping explanation to avoid potential duplicate.");
return;
}

if (alreadyCommented) {
console.log("Explanation already exists — skipping.");
return;
Expand Down
4 changes: 2 additions & 2 deletions .github/scripts/bot-pr-draft-ready-reminder.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ If these updates address the feedback, you can:
- click **“Ready for review”** (recommended), or
- use the \`/review\` command.

Thanks for keeping things moving! 🙌
Thanks for keeping things moving! 🙌
— Hiero SDK Automation Team
`.trim();
}
Expand Down Expand Up @@ -193,7 +193,7 @@ module.exports = async function ({ github, context }) {
console.log("Skipping reminder to avoid potential duplicate.");
return;
}

if (alreadyCommented) {
console.log("Reminder already exists — skipping.");
return;
Expand Down
Loading
Loading