audit-labs/gh-attest

GitHub Audit Evidence Extractor

clone: git clone https://gitbay.org/audit-labs/gh-attest.git

v1.0.4: PRIVACY.md · raw

  1# gh-attest — Privacy Policy
  2
  3**Effective date:** 2026-07-19
  4
  5gh-attest ("the App") is a GitHub App operated by Audit Labs ("we",
  6"us"). It helps compliance and security teams collect
  7point-in-time evidence about the security configuration of their own
  8GitHub organization and map it to SOC 2 and ISO 27001 control
  9identifiers. This policy explains what the App processes, why, how long
 10it is kept, and your choices.
 11
 12This policy covers the gh-attest App and its dashboard only. It does not
 13cover GitHub itself — see GitHub's Privacy Statement for how GitHub
 14handles your data.
 15
 16## What we process
 17
 18The App processes data only for organizations that have installed it,
 19and only within the scope of the permissions granted at installation.
 20
 21**Organization & installation metadata.** Installation ID, organization
 22login, and installation/suspension timestamps. If you exclude repositories
 23from scanning, the App stores the excluded repository names for your
 24installation.
 25
 26**Security & access-control signals (the evidence).** As your
 27configuration changes and on a periodic re-sync, the App records
 28point-in-time "snapshots" of security-relevant state, which may include:
 29
 30- branch protection and repository ruleset configuration (enabled /
 31  disabled);
 32- repository, push, and member/team change events;
 33- Dependabot, code scanning, and secret scanning alert state.
 34
 35For audit-trail integrity, each snapshot stores the original GitHub
 36webhook payload that produced it. These payloads can contain repository
 37names, team names, and the GitHub logins of members whose access
 38changed.
 39
 40**Dashboard sign-in.** When you sign in to the dashboard, the App reads
 41your GitHub user ID and login and the list of installations you can
 42access, solely to confirm you belong to an organization that installed
 43the App. Your GitHub profile is stored only inside a signed, expiring
 44session cookie in your browser — it is **not** written to our database.
 45
 46**Exports.** Evidence exports you generate (CSV or PDF) are stored so
 47you can download them, along with metadata about each export job.
 48
 49## What we do NOT process
 50
 51- We do **not** store the contents of your source code.
 52- We do **not** store GitHub personal access tokens. The App
 53  authenticates using short-lived installation access tokens minted per
 54  request (valid ~1 hour) and never persisted.
 55- We do **not** collect passwords or payment information.
 56- We do **not** sell your data or share it with third parties for
 57  advertising, and we do **not** aggregate data across organizations.
 58
 59## How we use it
 60
 61Solely to provide the App's function: presenting your current security
 62posture, mapping it to SOC 2 / ISO 27001 controls, and generating
 63point-in-time evidence exports and access-review comparisons for your
 64own organization.
 65
 66## Where it is stored and how it is protected
 67
 68All data is stored on Cloudflare's platform (D1 and R2) in the
 69**European Union**. Both the database and the object storage are created
 70under Cloudflare's `eu` jurisdiction, which restricts them to storing and
 71running within the EU.
 72
 73Note that the application code itself runs on Cloudflare Workers, which
 74execute at the network edge close to the requesting user. A request made
 75from outside the EU is therefore processed outside the EU, even though
 76the data it reads and writes is stored within the EU. We do not currently
 77use Cloudflare's Regional Services to constrain where request processing
 78occurs.
 79
 80Protections include:
 81
 82- webhook payloads are verified with HMAC-SHA256 signatures before
 83  processing;
 84- the GitHub App private key, webhook secret, and session-signing key
 85  are stored as encrypted platform secrets, never in source code;
 86- authentication uses short-lived installation tokens that are never
 87  stored;
 88- all stored data is scoped per installation, and the dashboard enforces
 89  that a signed-in user can access only their own organization's data.
 90
 91## Subprocessors
 92
 93- **Cloudflare, Inc.** — hosting, database (D1), and object storage (R2),
 94  under the EU jurisdiction described above.
 95
 96**GitHub, Inc.** is the system the data comes from. Your organization has
 97its own relationship with GitHub, so GitHub is not a subprocessor we
 98engage on your behalf.
 99
100If we add or replace a subprocessor, we will notify installed
101organizations in advance so they have an opportunity to object.
102
103## Security incidents
104
105If we become aware of a breach affecting your organization's data, we
106will notify you without undue delay and provide the information you need
107to meet your own notification obligations.
108
109## Data retention & deletion
110
111Evidence snapshots are retained for 13 months, export files
112for 90 days, and all data for an organization is deleted when the App
113is uninstalled. You may also request deletion at any time.
114
115## Your choices and rights
116
117**If you administer an installing organization:**
118
119- **Uninstall** the App at any time from your organization's GitHub
120  settings to stop all processing and trigger deletion of your data.
121- **Exclude repositories** from scanning and reporting from the
122  dashboard, so the App stops collecting new evidence about them.
123- **Export** your organization's data as CSV or PDF from the dashboard
124  at any time.
125- **Request deletion** of your organization's data by contacting us.
126- Request a **Data Processing Addendum** if you need one for your own
127  compliance obligations.
128
129**If you are an individual whose GitHub login appears in an
130organization's data:** we hold that data on behalf of that organization,
131which decides how it is used. We have no direct relationship with you
132and cannot verify your identity, so please direct access, correction, or
133deletion requests to the organization. If you contact us, we will refer
134your request to them rather than acting on it ourselves.
135
136Depending on your jurisdiction (e.g., GDPR, CCPA/CPRA), you may have
137additional rights; the organization can exercise them with our
138assistance.
139
140## Contact
141
142privacy@audit-labs.dev — Audit Labs
143
144## Changes
145
146We may update this policy. Material changes will be reflected by the
147effective date above and, where appropriate, communicated to installed
148organizations.