From 1e4c3dc251c9ca79f9fb5dae951b2ae9cad6db7a Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Tue, 6 Oct 2026 00:46:00 +0000 Subject: [PATCH] Am I Banned & AI Policy --- docs/ai-policy.md | 27 +++++++++++++++++++++++++++ docs/contributing.md | 2 ++ docs/faq.md | 3 ++- docs/publish.md | 4 ++++ mkdocs.yml | 1 + 5 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 docs/ai-policy.md diff --git a/docs/ai-policy.md b/docs/ai-policy.md new file mode 100644 index 00000000..2d1ddc71 --- /dev/null +++ b/docs/ai-policy.md @@ -0,0 +1,27 @@ +# AI policy +I use AI tools to help develop ntfy. Here's how they fit into my work, and what I expect from contributors who use them. + +## How I use AI +I use tools like Claude and Codex to write code for ntfy, and **I review every line before it's merged and released**. +If anything, I review code more thoroughly now than I did before. I also write more unit and integration tests, since AI +makes them easier to put together. + +For larger changes, I usually read through the diff several times and ask the AI to put together before-and-after +comparisons to help me check the logic. I also run manual regression tests and load tests on a staging server before +releasing those changes on ntfy.sh. + +[PostgreSQL support](https://github.com/binwiederhier/ntfy/issues/1114), added in v2.18.0, is a good example. AI wrote the +code, and I spent weeks reviewing and testing it before release. I've shared more about that process in +[this discussion](https://github.com/binwiederhier/ntfy/issues/1645). + +AI writes a lot of the code, and I'm still responsible for every line of it. + +## AI-assisted pull requests +**AI-assisted pull requests are welcome**, but please **don't make me the first human to read your code**. Before you +submit a pull request, review the code, make sure you understand it, and test it yourself. Don't pass along whatever +your AI tool produced and leave the review to me. **[Don't meat proxy me!](https://nomeatproxy.com/)** + +The same applies to issues, pull request descriptions, and comments. Please write them yourself, or at least read and +edit any AI-generated text before posting it. Keep it concise and make sure it says what you actually want to say. + +Pull requests that appear to have been generated and submitted without human review will be closed. diff --git a/docs/contributing.md b/docs/contributing.md index 620ae257..ea52764f 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -13,6 +13,8 @@ If you'd like to contribute code to ntfy: before investing significant time 4. Submit a pull request on GitHub +If you use AI tools to write your code, please read the [AI policy](ai-policy.md) first. + All contributions are welcome, from small bug fixes to major features. ## Translations diff --git a/docs/faq.md b/docs/faq.md index 1e8985b7..c7084830 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -87,7 +87,8 @@ In the default configuration, you'll be able to do 60 requests as a burst, and t choose a random 10 digit topic name using only A-Z, a-z, 0-9, _ and -, there are 64^10 possible topic names. Even if you could do hundreds of requests per seconds (which you cannot), it would take many years to brute force a topic name. -For ntfy.sh, there's even a fail2ban in place which will ban your IP pretty quickly. +For ntfy.sh, there are additional protections in place which will ban your IP pretty quickly. If you think you have +been banned from ntfy.sh, you can check at [am-i-banned.ntfy.sh](https://am-i-banned.ntfy.sh/). ## Where can I donate? I have just very recently started accepting donations via [GitHub Sponsors](https://github.com/sponsors/binwiederhier). diff --git a/docs/publish.md b/docs/publish.md index a999320d..cf35b9aa 100644 --- a/docs/publish.md +++ b/docs/publish.md @@ -4959,6 +4959,10 @@ but just in case, let's list them all: These limits can be changed on a per-user basis using [tiers](config.md#tiers). If [payments](config.md#payments) are enabled, a user tier can be changed by purchasing a higher tier. ntfy.sh offers multiple paid tiers, which allows for much hier limits than the ones listed above. +!!! tip + If you repeatedly exceed the limits on ntfy.sh, or otherwise abuse the service, your IP address may be temporarily + banned. You can check if you have been banned at [am-i-banned.ntfy.sh](https://am-i-banned.ntfy.sh/). + ## List of all parameters The following is a list of all parameters that can be passed when publishing a message. Parameter names are **case-insensitive** when used in **HTTP headers**, and must be **lowercase** when used as **query parameters in the URL**. They are listed in the diff --git a/mkdocs.yml b/mkdocs.yml index 5bb53731..a2b38548 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -105,6 +105,7 @@ nav: - "Deprecation notices": deprecations.md - "Development": develop.md - "Contributing": contributing.md + - "AI policy": ai-policy.md - "Privacy policy": privacy.md - "Terms of Service": terms.md - "Contact": contact.md