From a04d95fdedaa29e181a17869586f82f53e9ef6ab Mon Sep 17 00:00:00 2001 From: Emmanuel Odii Date: Thu, 5 Nov 2026 09:55:40 +0100 Subject: [PATCH 1/2] feat: exclude single repos from the hackathon dataset --- apps/api/src/hackproof/github/discovery.py | 2 ++ apps/api/src/hackproof/hackathon.py | 1 + apps/api/src/hackproof/linking/reconcile.py | 4 ++++ apps/api/tests/test_discovery.py | 7 +++++++ apps/api/tests/test_reconcile.py | 14 ++++++++++++++ 5 files changed, 28 insertions(+) diff --git a/apps/api/src/hackproof/github/discovery.py b/apps/api/src/hackproof/github/discovery.py index 4f9a1be..26cebb5 100644 --- a/apps/api/src/hackproof/github/discovery.py +++ b/apps/api/src/hackproof/github/discovery.py @@ -30,6 +30,8 @@ def is_pinned(candidate: Candidate) -> bool: def should_keep(candidate: Candidate, window: Window, discovery: Discovery) -> bool: + if candidate.full_name.lower() in {name.lower() for name in discovery.exclude_repos}: + return False if is_pinned(candidate): return True if candidate.fork or candidate.owner.lower() in {o.lower() for o in discovery.exclude_owners}: diff --git a/apps/api/src/hackproof/hackathon.py b/apps/api/src/hackproof/hackathon.py index a6ef8e3..5424aec 100644 --- a/apps/api/src/hackproof/hackathon.py +++ b/apps/api/src/hackproof/hackathon.py @@ -22,6 +22,7 @@ class Discovery(BaseModel): github_string_queries: list[str] dependency_fingerprints: dict[str, list[str]] exclude_owners: list[str] + exclude_repos: list[str] = [] known_infra_accounts: list[str] diff --git a/apps/api/src/hackproof/linking/reconcile.py b/apps/api/src/hackproof/linking/reconcile.py index 0182380..6b98c95 100644 --- a/apps/api/src/hackproof/linking/reconcile.py +++ b/apps/api/src/hackproof/linking/reconcile.py @@ -247,6 +247,10 @@ async def reconcile(connection: asyncpg.Connection) -> Report: official = (window.start, window.end) await connection.execute(REPO_PROJECTS, *official, MIN_WINDOW_COMMITS, MIN_LIKELY_COMMITS) await connection.execute(ACCOUNT_PROJECTS, *official, settings.friendbot_account) + await connection.execute( + "DELETE FROM projects WHERE lower(project_id) = ANY($1)", + [f"repo:{name.lower()}" for name in hackathon.discovery.exclude_repos], + ) methods = await connection.fetch("SELECT method, count(*) AS n FROM links GROUP BY method") footprints = await connection.fetch( diff --git a/apps/api/tests/test_discovery.py b/apps/api/tests/test_discovery.py index 1432161..2e58b2e 100644 --- a/apps/api/tests/test_discovery.py +++ b/apps/api/tests/test_discovery.py @@ -17,6 +17,7 @@ github_string_queries=[], dependency_fingerprints={}, exclude_owners=["stellar"], + exclude_repos=["team/tool"], known_infra_accounts=[], ) @@ -50,6 +51,12 @@ def test_repos_named_in_wasm_metadata_bypass_every_filter(): assert should_keep(stale, WINDOW, DISCOVERY) +def test_excluded_repos_stay_out_even_when_wasm_metadata_names_them(): + assert not should_keep( + candidate(full_name="Team/Tool", discovered_via={"wasm_meta"}), WINDOW, DISCOVERY + ) + + async def test_split_range_slices_until_every_range_fits_the_cap(): matches = [value for value in range(0, 10_000, 7)] diff --git a/apps/api/tests/test_reconcile.py b/apps/api/tests/test_reconcile.py index 6623167..065165b 100644 --- a/apps/api/tests/test_reconcile.py +++ b/apps/api/tests/test_reconcile.py @@ -173,3 +173,17 @@ async def test_a_chain_item_matched_by_two_repos_is_credited_to_the_older_one(sc second = await db.fetchval("SELECT full_name FROM attribution WHERE subject = 'C1'") assert first == second == "team/original" + + +async def test_an_excluded_repo_never_becomes_a_project(scratch_db): + db = scratch_db + await add_repo(db, "stellar-scaffold/cli", window_commits=9) + await add_ref(db, "stellar-scaffold/cli", "contract", "C1") + await add_contract(db, "C1", "GDEPLOYER", "w1") + + await reconcile(db) + + found = await db.fetchval( + "SELECT count(*) FROM projects WHERE project_id = 'repo:stellar-scaffold/cli'" + ) + assert found == 0 From 4533f84623491582e9a4ffc038399b2f4e81e424 Mon Sep 17 00:00:00 2001 From: Emmanuel Odii Date: Thu, 5 Nov 2026 09:55:40 +0100 Subject: [PATCH 2/2] fix: drop the scaffold cli and nethermind reference repos from hackmeridian --- data/2026/cli.yml | 73 --------------- data/2026/stellar-private-payments.yml | 119 ------------------------- data/hackmeridian-2026.yaml | 1 + 3 files changed, 1 insertion(+), 192 deletions(-) delete mode 100644 data/2026/cli.yml delete mode 100644 data/2026/stellar-private-payments.yml diff --git a/data/2026/cli.yml b/data/2026/cli.yml deleted file mode 100644 index d5a4201..0000000 --- a/data/2026/cli.yml +++ /dev/null @@ -1,73 +0,0 @@ -# yaml-language-server: $schema=../schema-hackathon-project.yml -event: hackmeridian-2026 -canonical_id: pkg:github/stellar-scaffold/cli -repo_url: https://github.com/stellar-scaffold/cli -name: cli -description: 'The easiest way to build Stellar apps. One command scaffolds your contracts, a modern frontend, and type-safe - clients that connect the two, keeping everything in sync as you build so you don''t have to. ' -language: Rust -license: Apache-2.0 -topics: -- stellar-cli-plugin -created_at: '2025-04-17T17:07:43Z' -owner: stellar-scaffold -track: genesis -track_declared: false -evidence_tier: verified -commits_in_window: 6 -stack: - soroban-sdk: null - stellar-xdr: 23.0.0 - stellar-strkey: null -chain: - contracts: 3 - wasm_uploads: 4 - classic_ops: 0 - assets: 0 - failed_txs: 0 - accounts: - - GAP34HNJ25UWUL3X4SW4ON5ATJCMXMQ35TFGL546ZIDN3TG4WZETH75U - - GDUROF552TFOLGJHO3BZ5DG443EYFLERBLLE7IBWYOGECTOOIPF5QA3U - evidence: - - kind: wasm - subject: 4f0b7181ba91183aabdb00bd53c40115a1a4ba39080bddb905c93cd2c3c29ff5 - method: wasm_meta - - kind: wasm - subject: 8fb28e2d8438325ead7e6f1f15459cb6737772df955b9d5fff78fb9f1f2fec70 - method: wasm_meta - - kind: wasm - subject: c8c48441d54331da60f66e2bec977c3e8f6535da285cd4428c1d8296bcf88945 - method: wasm_meta -contributors: -- login: willemneal - contributions: 77 -- login: zachfedor - contributions: 40 -- login: BlaineHeffron - contributions: 29 -- login: pselle - contributions: 26 -- login: chadoh - contributions: 24 -- login: tupui - contributions: 15 -- login: ifropc - contributions: 8 -- login: elizabethengelman - contributions: 5 -- login: janewang - contributions: 2 -- login: jsmaxi - contributions: 2 -- login: CoolatMax - contributions: 1 -- login: Nitish-bot - contributions: 1 -- login: jamesbachini - contributions: 1 -- login: masch - contributions: 1 -- login: oceans404 - contributions: 1 -- login: sharmis-tp - contributions: 1 diff --git a/data/2026/stellar-private-payments.yml b/data/2026/stellar-private-payments.yml deleted file mode 100644 index df0f984..0000000 --- a/data/2026/stellar-private-payments.yml +++ /dev/null @@ -1,119 +0,0 @@ -# yaml-language-server: $schema=../schema-hackathon-project.yml -event: hackmeridian-2026 -canonical_id: pkg:github/NethermindEth/stellar-private-payments -repo_url: https://github.com/NethermindEth/stellar-private-payments -name: stellar-private-payments -description: Nethermind Privacy Engineering team's implementation of private payments for the Stellar network -homepage: https://nethermindeth.github.io/stellar-private-payments/ -language: Rust -license: Apache-2.0 -topics: -- privacy -- soroban -- stellar -- zk -- payments -- nethermind -created_at: '2025-07-28T11:49:19Z' -owner: NethermindEth -track: genesis -track_declared: false -evidence_tier: verified -commits_in_window: 3 -stack: - soroban-sdk: null - stellar-xdr: 28.0.0 - stellar-strkey: 0.0.18 - '@stellar/stellar-sdk': ^17.1.0 - '@stellar/freighter-api': ^6.0.1 -integrations: -- slug: freighter - name: Freighter - evidence: - - method: package - detail: '@stellar/freighter-api' - file_url: https://github.com/NethermindEth/stellar-private-payments/blob/HEAD/app/package.json -chain: - contracts: 49 - wasm_uploads: 8 - classic_ops: 0 - assets: 0 - failed_txs: 0 - accounts: - - GBCXOVKPOJ4C4FQNLDS6TO3EWL6JZ24LOFHM7LVEN5ENQWNYMRGHEX3S - evidence: - - kind: wasm - subject: 03439655c44aab12de1cd6daed0737d880739fb89a3273386784226c11404aa6 - method: wasm_meta - - kind: wasm - subject: 4ef352d4135b64d5ea0f36c165e62e1a85d0b46e8fbfe70903316434cec02982 - method: wasm_meta - - kind: wasm - subject: 6adbc0bcd458dc6c8ffc1bc4b24d5581b62b9893052c491a9a47147410f48fc3 - method: wasm_meta - - kind: wasm - subject: 74b8cc1381a5a195c11211d1f5f4900e31420822eb2837b88b9f9fe3a5f54d0e - method: wasm_meta - - kind: wasm - subject: 836f96fd612f39fe2937514ba9af6f0abab8bfbb5b9bcfa1ea1c93b9c884c987 - method: wasm_meta - - kind: wasm - subject: 8370ac4755b85addfbc2022d4de9282042084926e3c86fb5db7897aa7eeb545e - method: wasm_meta - - kind: wasm - subject: b6a97ceade63d38982dda4f82eac8f95420c54d012db53d5029d8ce1f2a98dc5 - method: wasm_meta - - kind: wasm - subject: e313458253d45c92308eef52e8a6400956cd49f70cf9bb9ff656f9e87b1c83d7 - method: wasm_meta -contributors: -- login: v0-e - contributions: 130 -- login: Fantoni0 - contributions: 63 -- login: cupicmarko - contributions: 53 -- login: NiDimi - contributions: 28 -- login: maksimryndin - contributions: 27 -- login: WiseMrMusa - contributions: 21 -- login: dkgoutham - contributions: 14 -- login: PoulavBhowmick03 - contributions: 8 -- login: Oghma - contributions: 7 -- login: zexoverz - contributions: 7 -- login: Patrick-Ehimen - contributions: 5 -- login: 1sgtpepper - contributions: 3 -- login: AdamSonja - contributions: 2 -- login: AngeYobo - contributions: 2 -- login: Galmanus - contributions: 2 -- login: adityaNth - contributions: 2 -- login: uttkarzsh - contributions: 2 -- login: Gerson2102 - contributions: 1 -- login: IshaanXCoder - contributions: 1 -- login: RajeshRk18 - contributions: 1 -- login: avozda - contributions: 1 -- login: karar189 - contributions: 1 -- login: thinktanktom - contributions: 1 -- login: tomerweller - contributions: 1 -- login: wenn-id - contributions: 1 diff --git a/data/hackmeridian-2026.yaml b/data/hackmeridian-2026.yaml index ae82dd4..e60f00b 100644 --- a/data/hackmeridian-2026.yaml +++ b/data/hackmeridian-2026.yaml @@ -86,4 +86,5 @@ discovery: python: [stellar-sdk, stellar_sdk] go: [github.com/stellar/go] exclude_owners: [stellar, stellar-expert, soroban, creit-tech, stellar-light] + exclude_repos: [stellar-scaffold/cli, NethermindEth/stellar-private-payments] known_infra_accounts: []