Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
488 commits
Select commit Hold shift + click to select a range
bbca0a8
Missing freeze struct and fix logging error when cancelling missing a…
l0r1s May 9, 2026
ce1a507
Added missing tests for OnMembersChanged
l0r1s May 10, 2026
b31c77a
Add tests for integrity check and OnTallyUpdated
l0r1s May 10, 2026
f6bd78f
Fix storage version for referenda
l0r1s May 10, 2026
6029f69
Comment and doc update, added readme
l0r1s May 10, 2026
f99e2b2
Rework delay calculation and add max_delay and AdjustmentCurve
l0r1s May 10, 2026
10ccf5e
Reorganize tests
l0r1s May 10, 2026
bf519a4
Fix referenda mock
l0r1s May 10, 2026
224c54a
Reorganize governance wiring
l0r1s May 10, 2026
44ee9c9
Comments and invariant fixes
l0r1s May 11, 2026
8663c97
Merge branch 'devnet-ready' into governance
l0r1s May 11, 2026
4bd5a0d
Restore MaxScheduledPerBlock
l0r1s May 11, 2026
8a5c475
Added try_join to multi collective with specific policy and eviction …
l0r1s May 11, 2026
33fc7a7
Tests for try_join
l0r1s May 11, 2026
3f1e378
Added benchmark for try_join
l0r1s May 11, 2026
f75032c
Clean up tests
l0r1s May 11, 2026
9eddf66
do not require ownership of coldkey and hotkey when buying or selling…
girazoki May 12, 2026
9605ab3
Clean up tests
l0r1s May 11, 2026
d4d136e
limit price should come as amm price
girazoki May 12, 2026
8d03699
Remove try_join and expose add_member/remove_member
l0r1s May 12, 2026
aa0a88a
Sync the root registration with the collective
l0r1s May 12, 2026
94bf6ee
Init root registered hotkey count
l0r1s May 12, 2026
916d4ea
Added try_state checks to runtime
l0r1s May 12, 2026
de713d8
New economic_eligible collective added to runtime
l0r1s May 12, 2026
7fb4f42
Merge remote-tracking branch 'origin/governance' into governance
l0r1s May 12, 2026
4408e26
Add getNetworkRegisteredBlock view to SubnetPrecompile
fine135 May 11, 2026
fd12227
- Added missing types
May 13, 2026
0fcc91d
make pallet limit orders be disabled on-rt-upgrade
girazoki May 13, 2026
5c4b5a7
change also validation in swap
girazoki May 13, 2026
2648932
Merge branch 'devnet-ready' into eco-tests-indexers
May 14, 2026
fc44282
Added logic to compute EMA for root registered keys
l0r1s May 14, 2026
bf80e4c
Some renaming
l0r1s May 14, 2026
c29af32
Testing for EMA + root register ref counting
l0r1s May 14, 2026
5c8952c
RootRegisteredStakeEma -> RootRegisteredEma, more flexible
l0r1s May 14, 2026
a64d8cd
Use RAII guards for test setup
l0r1s May 14, 2026
829ab4c
Added new invariant for root register tracked coldkey and ema
l0r1s May 14, 2026
6516415
Extracted MemberSet to its own file + added tests
l0r1s May 14, 2026
1aa65f6
Added benchmarks for do_add_member and do_remove_member
l0r1s May 14, 2026
0031463
Correct weight accounting on root registration
l0r1s May 14, 2026
49ca28e
Extracted TermManagement from collectives config
l0r1s May 14, 2026
c0998f0
Merge branch 'devnet-ready' into feat/balancer_swap
gztensor May 15, 2026
e28d2c9
Merge in progress
gztensor May 15, 2026
8cfc635
add sim_swap to avoid slippage-caused errors
girazoki May 18, 2026
3a7a78c
Remove EmaSamplingInterval
l0r1s May 18, 2026
991c6a5
Partitioned EMA computation with flexible value provider
l0r1s May 19, 2026
933c2ec
Move try_state to root_registered module
l0r1s May 20, 2026
86dc20d
EMA sampler storage items on subtensor pallet
l0r1s May 20, 2026
7b04eaf
EMA sampling tick tests
l0r1s May 20, 2026
79d4851
Merge remote-tracking branch 'origin/devnet-ready' into girazoki-pall…
girazoki May 20, 2026
2784086
allow a set of relayers to be whitelisted
girazoki May 20, 2026
3123f9d
mevshield tests
girazoki May 20, 2026
91886d7
fixes for checking dev node mevshield
girazoki May 20, 2026
48c8a28
mevshield dev node and tests limit orders
girazoki May 20, 2026
47e6de7
Cleanup merge
gztensor May 20, 2026
3dca355
Added StakeValueProvider to sample the EMA over total stake.
l0r1s May 20, 2026
9e37d87
Fix benchmarks non-rotatable collective
l0r1s May 20, 2026
6a0c9ad
Merge devnet-ready
gztensor May 20, 2026
22cf575
Update benchmark script for governance
l0r1s May 20, 2026
5feff66
Updated some comments
l0r1s May 20, 2026
43d1ac6
Make both collectives fixed in size
l0r1s May 20, 2026
d16042f
Wire benchmark in runtime + update subtensor config for governance
l0r1s May 20, 2026
0a8d052
Refactor term management logic
l0r1s May 20, 2026
7cdbdf8
Tests for top_validators/top_subnet_owners
l0r1s May 20, 2026
849442e
Exract do_set_members and use it for apply_rotation
l0r1s May 20, 2026
1fef1f0
FIx governance benchmarks
l0r1s May 20, 2026
207d538
Merge branch 'devnet-ready' into governance
l0r1s May 20, 2026
1257cb1
rust fmt
l0r1s May 20, 2026
189cf38
merge devnet-ready
gztensor May 21, 2026
513c08a
fmt
gztensor May 21, 2026
6ab2a5c
EaseOut for adjustment curve
l0r1s May 21, 2026
ed6c885
Update documentation
l0r1s May 21, 2026
8136574
Merge branch 'devnet-ready' into governance
l0r1s May 21, 2026
dd52a81
Added checks
l0r1s May 21, 2026
a445dc5
E2E tests update for governance
l0r1s May 21, 2026
3bda8a1
Fix build script stack overflow
l0r1s May 21, 2026
8e763c1
Fix rust
l0r1s May 21, 2026
12695de
Rename getNetworkRegisteredBlock to getNetworkRegistrationBlock after…
fine135 May 22, 2026
6053240
Merge remote-tracking branch 'origin/devnet-ready' into girazoki-pall…
girazoki May 25, 2026
374d897
formatting
girazoki May 25, 2026
c4f5bd6
change imports
girazoki May 25, 2026
55f1f2e
clippy fixes
girazoki May 25, 2026
e82cfd6
change the pallet to default false, but enable it on genesis so that …
girazoki May 25, 2026
fbaedab
add migration fail so that this does not run twice
girazoki May 25, 2026
2c5e4b5
Fix governance benchmarks
l0r1s May 25, 2026
b4abf46
changes related to conviction
girazoki May 25, 2026
791fa1c
Fix rust
l0r1s May 25, 2026
0dc7744
Merge branch 'devnet-ready' into governance
l0r1s May 25, 2026
a1831d5
Bump spec version to 408
l0r1s May 25, 2026
9825099
auto-update benchmark weights
github-actions[bot] May 25, 2026
15844b9
Merge branch 'devnet-ready' into feat/balancer_swap
gztensor May 25, 2026
b89c796
Fix try_state for collectives not yet initialized
l0r1s May 25, 2026
bbfef42
Merge remote-tracking branch 'origin/governance' into governance
l0r1s May 25, 2026
f160705
Fix maths
l0r1s May 25, 2026
80cccc5
cargo fmt
l0r1s May 25, 2026
358d718
reorg tests and clippy
girazoki May 26, 2026
ebb2952
fmt and benchmark test
girazoki May 26, 2026
0febfba
Remove CreatedSignedTransaction deadcode + convert CreateInherent to …
l0r1s May 25, 2026
8e2b1d9
make transfer_staked_alpha transactional and push the validations up
girazoki May 26, 2026
92cee5d
Merge branch 'devnet-ready' into remove-create-signed-tx-deadcode
l0r1s May 26, 2026
06d4a4d
Bump spec version to 410
l0r1s May 26, 2026
6f3af2d
Merge branch 'devnet-ready' into eco-tests-indexers
May 27, 2026
4e50e0c
chore: auditor auto-fix
May 27, 2026
fab0ece
auto-update benchmark weights
github-actions[bot] May 27, 2026
c582759
Merge branch 'devnet-ready' into remove-create-signed-tx-deadcode
l0r1s May 27, 2026
7e031c5
Bump spec version to 412
l0r1s May 27, 2026
c8c03a5
Merge remote-tracking branch 'origin/remove-create-signed-tx-deadcode…
l0r1s May 27, 2026
4dc60d4
Merge branch 'devnet-ready' into feat/balancer_swap
gztensor May 27, 2026
522cb66
spec bump
gztensor May 27, 2026
1f0bf8c
auto-update benchmark weights
github-actions[bot] May 28, 2026
610317e
Optimize locks to avoid full iteration of lock map
gztensor May 28, 2026
aae2748
Address ai reviewer comment - remove unbounded vector
gztensor May 29, 2026
903ff73
forward fee
girazoki May 29, 2026
41681d5
Refactor lock aggregate updates, fix dust collection for aggregates
gztensor May 29, 2026
9c0510d
Add focused test for rolling locks at stake removal
gztensor May 29, 2026
9684496
Merge branch 'devnet-ready' into feat/balancer_swap
gztensor May 29, 2026
b1e9356
Address ai reviewer comment about incomplete balancer initialization …
gztensor May 29, 2026
718e11e
add proper benchmark weights
girazoki Jun 1, 2026
abefa87
Merge branch 'devnet-ready' into eco-tests-indexers
Jun 1, 2026
c7d02ef
Merge remote-tracking branch 'origin/eco-tests-indexers' into eco-tes…
Jun 1, 2026
f04a13d
Merge branch 'devnet-ready' into remove-create-signed-tx-deadcode
l0r1s Jun 1, 2026
c3c3828
Merge remote-tracking branch 'upstream/devnet-ready' into feat/subnet…
fine135 Jun 1, 2026
060ad39
bump spec version
fine135 Jun 1, 2026
9630202
Merge branch 'devnet-ready' into feat/balancer_swap
gztensor Jun 1, 2026
e0e799b
Bump spec version to 414
l0r1s Jun 1, 2026
501b72b
pin zstd and safe-bigmath to revisions
gztensor Jun 1, 2026
0d23bfe
Isolate pallet-multi-collective changes
l0r1s Jun 1, 2026
613c322
make execute_orders be either fallible or not
girazoki Jun 2, 2026
1837b8a
Remove from benchmark because not wired
l0r1s Jun 2, 2026
eef2f0d
Merge remote-tracking branch 'origin/devnet-ready' into girazoki-pall…
girazoki Jun 2, 2026
f2e64cf
fmt
girazoki Jun 2, 2026
128a16c
Fast fail for set_members over max members
l0r1s Jun 2, 2026
9643f7f
Bypass rate limit for the same netuid stake transfer
Jun 3, 2026
0476b63
minor fix
Jun 3, 2026
66ad30a
- Fixed PR comment + rust test + ts test
Jun 3, 2026
ecdd4d7
Merge remote-tracking branch 'upstream/devnet-ready' into feat/subnet…
fine135 Jun 3, 2026
b1ca9a5
bump spec version
fine135 Jun 3, 2026
3ad2f8c
- Fixed PR comment
Jun 3, 2026
58e6056
- version bump
Jun 3, 2026
4828fb5
- fixed import
Jun 3, 2026
20276fa
Merge pull request #2674 from bittensor-church/feat/subnet-precompile…
open-junius Jun 3, 2026
7b44e87
- reverted weights
Jun 3, 2026
511149e
Merge branch 'devnet-ready' into remove-create-signed-tx-deadcode
l0r1s Jun 3, 2026
1b71f44
Merge branch 'devnet-ready' into governance
l0r1s Jun 3, 2026
f522bf7
- Remove staking rate limiter + benchmarks + tests + fmt
Jun 4, 2026
cf93d82
Update pallet-subtensor weights (reference hardware)
Jun 4, 2026
6f8e4f7
Merge pull request #2712 from opentensor/transfer-stake-within-same-n…
sam0x17 Jun 4, 2026
75a85ba
Merge pull request #2554 from girazoki/girazoki-palle-advanced-orders
sam0x17 Jun 4, 2026
f31bb73
cleanup merge
gztensor Jun 4, 2026
5c102db
Merge devnet-ready in
gztensor Jun 4, 2026
0399367
Adapt rate limits after disabling in-block staking rate limit
Jun 5, 2026
e517e66
Fix for arithmetic side effect
Jun 5, 2026
1bad8be
Fix PR comment - throw error instead of saturating the value
Jun 5, 2026
3c0a134
Merge pull request #2720 from opentensor/chore/adapt-rate-limits
open-junius Jun 5, 2026
ea26ee4
Merge branch 'devnet-ready' into fix/arith-side-effect
Jun 5, 2026
8176368
Added test for overflow error
Jun 5, 2026
3818fef
commit Cargo.lock
gztensor Jun 5, 2026
77a30e5
commit Cargo.lock
gztensor Jun 5, 2026
b4f6c39
commit Cargo.lock
gztensor Jun 5, 2026
ff5be72
commit Cargo.lock
gztensor Jun 5, 2026
c5c4b1f
commit Cargo.lock
gztensor Jun 5, 2026
0ddc527
commit Cargo.lock
gztensor Jun 5, 2026
a607b93
Merge pull request #2722 from opentensor/fix/arith-side-effect
open-junius Jun 5, 2026
ee9fa50
cargo fmt
gztensor Jun 5, 2026
4dbdce0
Add more tests for panic safety
gztensor Jun 5, 2026
2babae3
Merge devnet-ready
gztensor Jun 5, 2026
5caa5da
Merge devnet-ready
gztensor Jun 5, 2026
d529c39
Merge pull request #2505 from opentensor/feat/balancer_swap
sam0x17 Jun 5, 2026
af4b3eb
fix failed eco test
open-junius Jun 8, 2026
563f37c
bump version
open-junius Jun 8, 2026
b8fbd29
Merge pull request #2725 from opentensor/fix-failed-eco-test
open-junius Jun 8, 2026
2cac44f
Merge branch 'devnet-ready' into remove-create-signed-tx-deadcode
l0r1s Jun 8, 2026
42ceb94
fixes closing repeated orders and orders whose feetransfer succeeds b…
girazoki Jun 9, 2026
08920f1
mindful on comments
girazoki Jun 9, 2026
172d856
Merge pull request #2198 from opentensor/governance
l0r1s Jun 9, 2026
f4d7075
add stake availability runtime api for batch coldkey queries
basfroman Jun 9, 2026
0b6f25a
add stake availability runtime api tests
basfroman Jun 9, 2026
86deb6a
Merge branch 'devnet-ready' into remove-create-signed-tx-deadcode
l0r1s Jun 9, 2026
0c94c1a
fix AI review
basfroman Jun 9, 2026
c15a281
cargo fmt
basfroman Jun 9, 2026
f2f5ccf
Fix imports
l0r1s Jun 9, 2026
8b51784
Merge branch 'devnet-ready' into feat/reverse-lock-map
gztensor Jun 10, 2026
ec2400e
Merge pull request #2479 from opentensor/remove-create-signed-tx-dead…
l0r1s Jun 10, 2026
e3ac79f
merge devnet-ready
gztensor Jun 10, 2026
b485813
Merge pull request #2701 from opentensor/feat/reverse-lock-map
sam0x17 Jun 10, 2026
2c114bd
Merge branch 'main' into feat/basfroman/add-StakeInfoRuntimeApi.get_s…
basfroman Jun 10, 2026
59ed143
Merge branch 'devnet-ready' into feat/basfroman/add-StakeInfoRuntimeA…
basfroman Jun 10, 2026
b84bb88
Remove full Lock iteration from destroy_alpha_in_out_stakes, fix aggr…
gztensor Jun 10, 2026
402dc46
Move DecayingLock map when swapping coldkey
gztensor Jun 10, 2026
2ca3dce
Merge pull request #2744 from opentensor/feat/cleanup-conviction
sam0x17 Jun 10, 2026
1debb83
Merge pull request #2732 from girazoki/girazoki-fixes-pallet-limit-or…
open-junius Jun 11, 2026
f9a2079
Delete pallet-registry from runtime, unused
l0r1s Jun 11, 2026
a7e10f2
benchmark associate evm key
JohnReedV Jun 11, 2026
1777465
fmt
JohnReedV Jun 11, 2026
309e692
fix benchmark
JohnReedV Jun 11, 2026
7108a55
chore: auditor auto-fix
Jun 11, 2026
11d0c3a
fix compile
JohnReedV Jun 11, 2026
1d0642c
add to weightinfo
JohnReedV Jun 11, 2026
79ac37b
Merge pull request #2742 from opentensor/feat/basfroman/add-StakeInfo…
JohnReedV Jun 11, 2026
7e61a91
Improves efficiency of revealing TLed Commitments
JohnReedV Jun 11, 2026
04254b1
fix limit orders benchmark log spam
JohnReedV Jun 11, 2026
18cf6ba
discover_pallets.sh only looks at benchmarks
JohnReedV Jun 11, 2026
6fb46ec
auto-update benchmark weights
github-actions[bot] Jun 11, 2026
c5ed140
Merge pull request #2749 from opentensor/benchmark-associate-evm-key
sam0x17 Jun 11, 2026
618ee49
Merge pull request #2751 from opentensor/improve-timelocked-commitmen…
sam0x17 Jun 11, 2026
9d280a5
fix pallet_subtensor_swap weight info
JohnReedV Jun 11, 2026
da677bf
Merge pull request #2752 from opentensor/fix-pallet-subtensor-swap-we…
sam0x17 Jun 11, 2026
8bfb5e7
fix timeout in ts e2e dev test
open-junius Jun 15, 2026
a00c53c
record db cost for precompile view functions
open-junius Jun 15, 2026
b36e1be
fix ai comment
open-junius Jun 15, 2026
c4caf92
add missed import
open-junius Jun 15, 2026
dc2aaa1
cargo clippy
open-junius Jun 15, 2026
b158bdc
cargo fmt
open-junius Jun 15, 2026
8c5f395
add db cost for sim swap
open-junius Jun 15, 2026
b42d8d2
update reads
open-junius Jun 15, 2026
d7b8ffc
auto-update benchmark weights
github-actions[bot] Jun 15, 2026
cb0f223
apply db reads to all views
open-junius Jun 15, 2026
95ea327
cargo fmt
open-junius Jun 15, 2026
b8d34b2
Added migration to release holds
l0r1s Jun 15, 2026
4e08a53
Merge branch 'devnet-ready' into remove-registry-pallet
l0r1s Jun 15, 2026
a524872
Fixed migration weights
l0r1s Jun 15, 2026
b18b8f6
Idempotency for migration
l0r1s Jun 15, 2026
e4280f0
chore: auditor auto-fix
Jun 15, 2026
ba7c245
remove the loop
open-junius Jun 15, 2026
f92d091
cargo clippy
open-junius Jun 15, 2026
08a4c93
Added pre/post upgrade checks
l0r1s Jun 15, 2026
2ff78bc
Renaming
l0r1s Jun 15, 2026
66f63b7
Merge remote-tracking branch 'origin/remove-registry-pallet' into rem…
l0r1s Jun 15, 2026
cb3b873
cargo clippy
l0r1s Jun 15, 2026
88eba62
All registry storage cleanup
l0r1s Jun 15, 2026
bbacbf5
Fix compilation error
l0r1s Jun 15, 2026
5ad30e7
Fix rust
l0r1s Jun 15, 2026
df4e33b
Fix clippy
l0r1s Jun 15, 2026
35185da
bump version
open-junius Jun 16, 2026
50482dd
Merge pull request #2624 from opentensor/eco-tests-indexers
sam0x17 Jun 16, 2026
d718195
Merge pull request #2756 from opentensor/fix-timeout-ts-e2e-dev-test
open-junius Jun 16, 2026
57dc402
Merge pull request #2747 from opentensor/remove-registry-pallet
sam0x17 Jun 16, 2026
9f15ea3
Merge remote-tracking branch 'origin/main' into devnet-ready
sam0x17 Jun 17, 2026
9f70e38
Merge pull request #2757 from opentensor/record-db-cost-precompile
open-junius Jun 17, 2026
7266efc
feat: add per-account flags to block receiving TAO, Alpha, and locked…
ppolewicz Jun 11, 2026
59b0b2c
Fix block_receiving tests to use correct dispatch entry points
ppolewicz Jun 11, 2026
21d0d2c
Fix block-receiving guards: hoist before mutations, cover same-subnet…
ppolewicz Jun 12, 2026
ce9c84c
Make alpha-receiving opt-in, add query getters & precompile views, fi…
ppolewicz Jun 17, 2026
ed882df
cargo fmt after rebase
ppolewicz Jun 17, 2026
052f6d4
Bump spec_version to 420 for ReceivingAlphaEnabled storage rename
ppolewicz Jun 17, 2026
4b9a360
Fix tests that do cross-coldkey transfers without enabling ReceivingA…
ppolewicz Jun 17, 2026
7ecb294
fix(chain-extensions): enable ReceivingAlphaEnabled for dest coldkey …
ppolewicz Jun 17, 2026
a109d3e
fix(precompiles): enable ReceivingAlphaEnabled for spender in transfe…
ppolewicz Jun 17, 2026
c43da20
fix(transaction-fee): enable ReceivingAlphaEnabled for dest in transf…
ppolewicz Jun 17, 2026
fe39cdb
fix(ts-tests): enable ReceivingAlphaEnabled before cross-coldkey tran…
ppolewicz Jun 17, 2026
5ceba3c
fix(ts-tests): fix biome formatting of setReceivingAlphaEnabled call
ppolewicz Jun 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 140 additions & 0 deletions .github/workflows/eco-tests-indexer-notify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
name: on eco-tests change notification

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- 'eco-tests/**'

permissions:
contents: read
pull-requests: write
issues: write

concurrency:
group: eco-tests-indexer-notify-${{ github.ref }}
cancel-in-progress: true

env:
ECO_TESTS_REVIEWERS: "evgeny-s"

jobs:
notify:
name: Notify indexer reviewer
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: List changed files under eco-tests/
id: changes
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
set -euo pipefail
changed=$(git diff --name-only "$BASE_SHA" "$HEAD_SHA" -- 'eco-tests/' || true)
{
echo "files<<EOF"
echo "$changed"
echo "EOF"
} >> "$GITHUB_OUTPUT"

- name: Post or update sticky review-request comment
if: steps.changes.outputs.files != ''
uses: actions/github-script@v7
env:
CHANGED_FILES: ${{ steps.changes.outputs.files }}
REVIEWERS: ${{ env.ECO_TESTS_REVIEWERS }}
with:
script: |
const marker = '<!-- eco-tests-indexer-notify -->';

const reviewers = (process.env.REVIEWERS || '')
.split(',')
.map(s => s.trim())
.filter(Boolean);
const ccLine = reviewers.length
? reviewers.map(u => `@${u}`).join(' ')
: '_(no reviewers configured — set ECO_TESTS_REVIEWERS in the workflow)_';

const changed = (process.env.CHANGED_FILES || '').trim();
const fileList = changed
.split('\n')
.filter(Boolean)
.map(f => `- \`${f}\``)
.join('\n');

const body = [
marker,
'### eco-tests changed — indexer review required',
'',
'This PR modifies files under `eco-tests/`. and may affect downstream indexing.',
`**cc ${ccLine}** — please review manually`,
'',
'<details><summary>Changed files</summary>',
'',
fileList,
'',
'</details>',
].join('\n');

const { owner, repo } = context.repo;
const issue_number = context.issue.number;

const comments = await github.paginate(
github.rest.issues.listComments,
{ owner, repo, issue_number, per_page: 100 }
);
const existing = comments.find(c => c.body && c.body.includes(marker));

if (existing) {
if (existing.body !== body) {
await github.rest.issues.updateComment({
owner, repo, comment_id: existing.id, body,
});
}
} else {
await github.rest.issues.createComment({
owner, repo, issue_number, body,
});
}

- name: Request reviews from configured reviewers
if: steps.changes.outputs.files != ''
uses: actions/github-script@v7
env:
REVIEWERS: ${{ env.ECO_TESTS_REVIEWERS }}
with:
script: |
const reviewers = (process.env.REVIEWERS || '')
.split(',')
.map(s => s.trim())
.filter(Boolean);
if (reviewers.length === 0) {
core.info('ECO_TESTS_REVIEWERS is empty — skipping review request.');
return;
}

const { owner, repo } = context.repo;
const pull_number = context.issue.number;
const pr = await github.rest.pulls.get({ owner, repo, pull_number });

// GitHub rejects requesting a review from the PR author.
const author = pr.data.user && pr.data.user.login;
const filtered = reviewers.filter(u => u !== author);
if (filtered.length === 0) {
core.info(`All configured reviewers are the PR author (${author}) — skipping.`);
return;
}

try {
await github.rest.pulls.requestReviewers({
owner, repo, pull_number,
reviewers: filtered,
});
} catch (e) {
core.warning(`requestReviewers failed: ${e.message}`);
}
Loading
Loading