Commit Graph
14 Commits
Author SHA1 Message Date
SatoshiQaziMuhammed b52dd1d3c5 Open an issue when the daily sync fails at any step (#6)
* fix(sync): open an issue when any step fails, not only when the sync refuses

A failed check, commit or push used to end the job red and nothing else. A
sync that stops without anyone told is how these lists went eight months
stale, so any failure now opens (or comments on) the same issue a refusal
does.

* fix(sync): use the committed GitHub host keys as they are

pezkuwi/github_host_keys already names github.com on every line. The push
step prefixed it again, ssh read "github.com github.com ssh-ed25519 ..." as a
parse error, found no host key, and would have refused every push the sync
made.
2026-09-13 17:42:57 +04:00
SatoshiQaziMuhammed 093f6a15dc fix(host,sync): publish lists readable by nginx, and push the sync over a deploy key (#5)
The first publish on phishing.pezkuwichain.io copied the stage directory's
0700 mode onto the web root with rsync -a, and every list answered 403 until
the modes were put back by hand, about three minutes later. The publish script
now sets modes (--chmod=D755,F644), and test-publish.sh checks the web root's
directories are 755 and the lists 644; without --chmod it fails.

master is now protected by a ruleset (pull request, "lists" required). GitHub
refuses the Actions app as a bypass actor, so the sync's github.token push
would have been rejected. The sync now pushes over a write deploy key, the
repository's only one, kept as a secret of a "sync" environment that runs for
master only; the ruleset exempts deploy keys. GitHub's host keys are pinned
in pezkuwi/github_host_keys, and the job's token drops to contents: read.
2026-09-13 17:39:09 +04:00
SatoshiQaziMuhammed 767a92904d Sync the lists with polkadot-js/phishing every day, and publish them with checks (#4)
* feat: sync the lists with polkadot-js/phishing daily, and check them before publishing

The lists had not moved since January 2026, the site that serves them was
copied by hand, and the rebrand had turned five real phishing domains into
pezkuwichain.* names, unblocking them.

- scripts/syncUpstream.mjs and sync-upstream.yml take upstream's lists every
  day, lay pezkuwi/overlay.json over them, and commit to master. A day out of
  bounds (too many sites unblocked or added, scam addresses dropped, one of our
  domains blocked, one of our entries lost) writes nothing and opens an issue.
- pezkuwi/overlay.json holds our own entries with their reasons: the five
  pezkuwichain.* names stay blocked on purpose, and our domains are protected.
- scripts/lists.mjs holds the rules; scripts/lists.test.mjs tests them and the
  sync end to end; scripts/checkLists.mjs checks the committed files, including
  that they are what sortAll writes. lists.yml runs all three.
- pezkuwi/host/ is what phishing.pezkuwichain.io runs: it pulls master hourly
  and refuses a rewritten history, a blocked own domain, a shrink over 2%, or
  shards that disagree, with a sandbox test of each refusal.
- sortAll strips a trailing dot. Upstream's 817 "scam.xyz." entries were filed
  under an empty top-level domain in all/all.json, where checkIfDenied never
  looks; 816 repeated a listed name, and prenads.xyz was blocked nowhere else.
- sortAll uses Node's own directory functions instead of @pezkuwi/dev, so the
  sync and the checks run without installing the build toolchain.
- The auto-approve, auto-merge and crosscheck workflows, and the IPFS job,
  depended on tokens and secrets this repository does not have; removed. The
  remaining workflows are pinned to commits, with no default permissions and
  a timeout on every job.

* chore(lists): first sync with polkadot-js/phishing

Written by scripts/syncUpstream.mjs from upstream bf5e7c6:
658 sites added; nodelinkapp.xyz, org.in and terra-claim.com unblocked by
upstream; the five polkadot-js domains the rebrand had renamed blocked again;
816 duplicate "scam.xyz." entries folded into their names and the stray
all/all.json gone. 54,051 blocked sites, 279 scam addresses.

* fix(lists): commit the .build shard, and refuse a shard git ignores

.gitignore held "build/", which also matched all/build/all.json, the shard of
the .build top-level domain. Every sort wrote it and no commit held it, so the
eight .build scam sites were never published; upstream has the same gap. The
directory is excluded from the ignore rule, the shard is committed, and
checkLists.mjs now fails on any shard git would ignore (with the old rule
restored it does).

Also clears the repository's lint on lists.test.mjs: imports sorted, and
node:test's describe and it calls marked void.

* test(lists): await describe and it, as the repository's lint requires

no-floating-promises requires the promises node:test's describe and it return
to be handled, and no-void forbids handling them with void. Awaited, the 25
cases run as before.
2026-09-13 17:34:51 +04:00
Kurdistan Tech Ministry 70bbc740cf chore: migrate git dependencies to Gitea mirror (git.pezkuwichain.io) 2026-04-21 18:53:27 +03:00
Kurdistan Tech Ministry c44469b8d1 fix: resolve dependabot security vulnerabilities
- axios: 0.21.4 -> 1.13.5 (prototype pollution DoS)
- semver: force >=7.5.2 (ReDoS)
2026-02-14 13:08:00 +03:00
Kurdistan Tech Ministry 4b24072c79 fix: add missing yarn.lock to fix CI crosscheck failures 2026-02-14 13:02:53 +03:00
Kurdistan Tech Ministry c0bd03bb7c Remove immutable flag from yarn install 2026-01-18 01:19:40 +03:00
Kurdistan Tech Ministry ec5dd60ab1 Fix Master workflow to use simple build 2026-01-18 01:16:34 +03:00
Kurdistan Tech Ministry 4024077305 Trigger CI 2026-01-18 01:14:45 +03:00
Kurdistan Tech Ministry d7a0164f6c Fix GitHub Actions token configuration 2026-01-18 00:46:37 +03:00
Kurdistan Tech Ministry edd4214fc3 Update prettier config and package info 2026-01-17 23:19:03 +03:00
Kurdistan Tech Ministry fe5a83411d chore: bump version to 0.25.28 2026-01-09 04:28:48 +03:00
Kurdistan Tech Ministry b59bb9fda0 chore: bump version to 0.25.27 2026-01-09 04:20:21 +03:00
Kurdistan Tech Ministry a4bb93cb33 feat: complete Pezkuwi rebrand
- Update phishing URL to phishing.pezkuwichain.io
- Update author to Dijital Kurdistan Tech Inst
- Update README with Pezkuwi project references
- Update IPFS reference to pezkuwichain.io
- Rebrand all package references from @polkadot to @pezkuwi
2026-01-09 04:11:37 +03:00