Privacy
Lint page
- With JavaScript on, the file is linted in your browser. The text is not sent.
- With JavaScript off, the server lints it. The text is never stored or logged. Request logs record IP address, path and status for 14 days.
- Share links put the text, format and rule choices in the URL after #. Browsers do not send that part to the server. Anyone with the link can read the text.
- Lint by URL and badges: the server fetches the file from raw.githubusercontent.com, so GitHub sees the request come from this site. For public files it finds, it stores the repository name, file name, score, grade, ruleset version and time, kept up to 400 days, and shows them as score history. Private repositories cannot be read, so nothing is stored for them. The repository name is not logged.
- One cookie: the lint form's anti-forgery token. No analytics, no tracking scripts.
API
- The text is not stored or logged. Request logs record IP address, path and status for 14 days.
GitHub App
- Reads, at the pull request's head commit: the changed files and their diff, and rules files; and
.github/aibysitter.jsonfrom the base commit. For R006 it also reads the repository file list and the manifests a rules file refers to (package.json, Makefiles,.gitignore, MSBuild files). When the pull request removes a test file, it also reads the pull request description and, for P008 justifications, the workflow files under.github/workflows/; neither is stored or logged. Files over 100 KB, not UTF-8, or past 2 MB of file content per review are not read; their paths are listed in the check summary. - Holds a queue file for the duration of a review: installation ID, repository, pull request number, head and base commits, check run ID and delivery ID. It is deleted when the review completes; a file that cannot be read is moved aside and deleted after 14 days.
- Stores nothing else. Logs record repository, pull request number, short commit SHA, delivery and check run IDs, finding count and any error text for 14 days. No file contents are logged.
- Results are posted to GitHub as a check run on the pull request, and as one comment when the config sets
comment.
Permissions
| Permission | Access | Used for |
|---|---|---|
| Checks | Read and write | Creating and completing the Aibysitter review check run |
| Pull requests | Read and write | Listing changed files and diffs; posting and updating one comment when the repository's config sets comment |
| Contents | Read | Reading files at the head commit and the config at the base commit |
| Metadata | Read | Required by GitHub for every App |
Uninstall
Personal account: Settings → Applications → Installed GitHub Apps → Aibysitter → Configure → Uninstall. Organization: Settings → GitHub Apps, then the same. Reviews stop at once; check runs already posted stay on their pull requests.
Usage counts
The server keeps daily totals for /Stats: lints by source (form, API, URL), findings by rule, GitHub App reviews by conclusion and badge requests by outcome. Each is a count per day. No repository names, IP addresses, file contents or identifiers are stored with them. Lints run in the browser are not counted.
Incidents
Incidents are submitted as issues in the public aibysitter-incidents repository, under GitHub's privacy policy. A published incident shows the submitter's GitHub username, linked to their profile, under CC BY 4.0. Nothing else about the submitter is stored. To have an incident removed, open an issue in that repository.
Hosting
The site is served through Cloudflare, which processes requests under its own privacy policy.