1. Introduction and scope
This Privacy Policy explains how PAFTAK Software Inc., operating under the trade name "Bugweg" ("Bugweg," "PAFTAK," "we," "us"), collects, uses, discloses, and protects information in connection with Bugweg's website, GitHub app, dashboard, and related services (the "Service"). It applies to visitors to our site as well as to customers and their authorized users. It also applies to individuals whose GitHub logins, commits or pull requests are processed on behalf of our customers, even if they have no Bugweg account. It should be read together with our Terms of Service.
2. Who we are
Bugweg is a product operated by PAFTAK Software Inc., a corporation incorporated under the laws of the Province of Alberta, with its principal place of business in Alberta, Canada. Other products created or operated by PAFTAK Software Inc. are likewise offered with PAFTAK Software Inc. as the contracting legal entity, even when marketed under a different product name.
Our role depends on the information:
- For the content of your organization's repositories and the review data we derive from it (in section 3: "Pull request diffs," "Bug-pattern data," "Source-code embeddings" and "Production incident data"), we generally act as a service provider (a "data processor" under the GDPR; a "service provider" or "processor" under U.S. state law) on behalf of your organization, which remains responsible for that information (the "data controller" under the GDPR). We process it only to provide the Service to your organization.
- For account, billing, security, fraud and free-trial abuse prevention, website, support and marketing information that we collect directly, and for GitHub installation records, we are the organization responsible for the information (the "data controller" under the GDPR; the "business" or "controller" under U.S. state law).
- Developer Bug DNA (section 11) is a special case. We design and operate it: we decide what it records, that it combines a developer's pull requests across all of your organization's repositories, who in your organization can see it, and how long it is kept. We therefore treat ourselves as responsible for the profile itself and answer developers' requests about it directly, while your organization decides whether to switch it on for its team (it is off by default) and is responsible for informing its developers.
Privacy contact: privacy@bugweg.com (see section 18).
3. Information we collect
| Category | Examples | Source |
|---|---|---|
| Account information | Name, email, organization, authentication identifiers | You, via GitHub OAuth through Clerk |
| Repository metadata | Repository name, default branch, install/uninstall events, commit SHAs, PR numbers and titles | GitHub API |
| GitHub installation record | Login and type (organization or user) of the GitHub account that installed the app, installation id, install/uninstall/suspension timestamps | GitHub webhooks |
| Pull request diffs | The changed lines of a pull request, held in memory only during analysis (see sections 4 and 7 for who else receives them during a review) | GitHub API, on PR open/sync |
| Bug-pattern data | Embedding vectors, structural fingerprints, and AI-generated issue descriptions/suggested fixes for flagged code patterns (which may quote short code excerpts); the file path, commit and PR number of each flagged issue, and when Developer Bug DNA is on for your team and the developer has not opted out, the GitHub login of the pull request's author, stored with each flagged issue; per-file risk scores; for patterns sourced from a connected production tracker only, an optional stack trace | Generated by the Service from your diffs, or forwarded by your connected error tracker (see section 4) |
| Source-code embeddings (Bug Search) | Numerical vectors computed from chunks of your source files, stored with the file path, git blob hash and start line. The code text itself is not stored (see section 4) | Generated by the Service from files in your repositories, when Bug Search indexes them |
| Developer Bug DNA (profiling; off by default) | Running averages and counts of a developer's recurring bug-pattern categories, keyed by GitHub login and combined across every repository of your organization (not individual issue vectors); the per-issue author login listed under "Bug-pattern data," which is also used to compute each developer's 30-day trend; an optional, self-reported link between a developer's GitHub logins and their Bugweg account; the GitHub logins of developers who have opted out, so that we do not profile them. Collected only if an organization admin switches the feature on, and never for a developer who has opted out | Generated by the Service from reviews of pull requests that developer authored (see section 11); the opt-out list comes from the developer or an organization admin |
| Production incident data | Error details and, where provided, a stack trace for each error event your connected tracker sends us, and whether and by which commit the incident was resolved. Error details can include personal information about your own users if your application puts it in error messages; we process it only on your behalf (sections 2 and 6). | Sentry/Rollbar, if you connect Production Lock |
| Integration credentials | Slack incoming-webhook URLs and Jira/Linear API tokens you enter in the dashboard, and tokens that authenticate your error-tracker and telemetry connections | You |
| Billing information | Plan, payment method (tokenized), invoices, billing country and province or state | You and Stripe; we do not store full card numbers |
| Free-trial abuse-prevention data | A card fingerprint (an identifier Stripe generates from a payment card; it is not the card number); for each developer who uses the trial with that card, the numeric GitHub user id of the author of the reviewed pull request (not the login, and not a hash) and the number of trial reviews used; for each GitHub bot account (up to three per card) that uses the trial with that card, its numeric GitHub user id, marked as a bot, and the number of trial reviews it used; and one shared count, with no user id, for pull requests from outside contributors (and from GitHub bot accounts beyond three per card). We also keep, for each card, the number of trial reviews used with it before the per-developer trial began on October 14, 2026; those reviews are attributed to the first developer who uses the trial with that card after that date. The fingerprint is also stored with the team and GitHub installation records it was verified for, together with the bugweg organization it was verified for. To apply the trial's limit on developers per card, we read the number of members of your bugweg organization (only the number, not the member list) from Clerk when a developer who has not yet used the trial with that card opens or updates a pull request while the card already covers another developer, and when your Billing page is shown on the free plan after a card is verified; we do not store that number | Stripe (card fingerprint), GitHub pull request events (the author's user id), Clerk (member count, not stored), and the Service |
| Support and communications | Emails, support tickets, and their content | You |
| Usage data and logs | API request logs, error logs and error diagnostics (which may include repository names and pull request numbers), IP address, timestamps | Automatically, via our infrastructure and our error-monitoring provider |
| Deletion log | Which repository (by name) was deleted, when, by whom (a user id, or the system), and how many rows per table. Never the deleted content | The Service |
| Seat records | For per-seat billing: a keyed hash (HMAC) of the GitHub user id of each person, and of each GitHub bot account, that authors a pull request we review (except outside contributors to public repositories), per organization and calendar month, and when it was first seen. We do not store the GitHub login, name or email. The hash is pseudonymous, not anonymous: because we hold the key, we could match it to a GitHub account, but we use it only to count seats and never to identify, contact or profile anyone. It is keyed per organization, so the hashes stored for the same person in different organizations are different and are not linked to each other. On the Developer plan we also keep the same hash of the GitHub account that holds the Developer seat (the subscribing admin's, or that of an admin who later took the seat), and which bugweg user set it, to know whose pull requests the plan covers. While a Developer checkout is open, we also keep the same hash of the admin who started it, and which bugweg user that is, until the checkout completes, expires (after 24 hours) or is refused. | The Service, from GitHub pull request events; for the Developer seat, from the GitHub account connected to your bugweg login (through Clerk) |
| Review usage records | For each pull request event we analyze: the organization, repository and pull request number, the event type, the plan, the risk tier we assigned to the change, the AI model tokens and sandbox machine time used, how long the analysis took and whether it failed, to measure our costs and set plan allowances and prices. We do not store code, review text or the author's GitHub login, but the repository and pull request number can be linked to the pull request's author on GitHub. To apply the one-review-a-day rule we also record which pull requests used a review on which day (UTC) | The Service |
| Terms and privacy acceptance records | Which version of the Terms of Service you accepted (or, if you are not an admin of your organization, confirmed reading), which version of this Privacy Policy you confirmed reading, which update notices you acknowledged, when, where (in the dashboard or at checkout), your user id and the organization that was active at the time. We do not record your IP address for this | The Service, when you accept |
4. What we process, and what we retain
What does persist in our database, so that Bug Genealogy, the Recurrence Firewall, risk scoring and Bug Search work across future pull requests:
- AI-written review text: the description and suggested fix for each flagged issue, AI-generated suggested tests, and per-file risk scores. Because this text is free-form and written to explain specific code, it may quote excerpts of your code; it is not guaranteed to be code-free.
- Embedding vectors of that review text, used to recognize a recurring pattern.
- Issue records: file paths, commit and pull-request identifiers, pull-request titles and, only when Developer Bug DNA is on for your team and the developer has not opted out, the GitHub login of the pull request's author, stored with each flagged issue.
- Bug Search embeddings: if you use Bug Search, Bugweg reads your source files from GitHub, splits them into chunks of 60 lines (up to the first 3,600 lines of each supported source file of 100 KB or less, excluding vendored and generated folders), and sends each chunk to our embedding provider to be converted into a numerical vector. We store the vectors together with the file path, the file's git hash and the starting line number. We do not store the chunk text. When you run a search, the best-matching passages are re-read from GitHub, sent to Anthropic to be assessed, and shown to you; they are not saved. Embeddings can partially reveal the text they were computed from, so we treat them as your data and delete them as described in section 9.
- Production stack traces: for incidents ingested from a connected error tracker (Sentry/Rollbar), an optional stack trace, which is itself near-code content (file paths, function names, sometimes line context).
- Developer Bug DNA profiles, login links and the opt-out list, only if the feature has been switched on for your team (section 11).
A breach of our database would not expose your full repositories or diffs, but could expose these stored excerpts, file paths, embeddings and developer profiles.
5. How we use information
- to provide, operate, and maintain the Service, including generating review comments, risk scores, and (if connected) regression tests;
- if your organization's admin switches it on, to build each developer's Developer Bug DNA profile (unless the developer has opted out) and use it to tailor review comments and dashboard views (section 11);
- to process payments and manage your subscription, including counting seats for per-seat billing (seat records, section 3);
- to confirm that we can offer the Service to you: it is not offered to customers located in Quebec (see our Terms of Service, section 3), so we keep your billing country and province or state, and no other part of your billing address, for this purpose;
- to communicate with you about the Service, including security notices and, unless you unsubscribe and where CASL permits, product updates;
- to detect, investigate, and prevent fraud, abuse, and security incidents;
- to keep a record of which version of our Terms of Service each user accepted and which version of this Privacy Policy they confirmed reading, and when, and to show an organization's admins which of their members have done so (name, email or username, role and dates);
- to comply with our legal obligations; and
- to improve the Service, using only aggregate operational metrics (for example error rates, latency and feature-usage counts) that have been anonymized, meaning irreversibly stripped of anything that identifies a person or your organization, and that we will not attempt to re-identify. We never use your source code, diffs, review text, embeddings or developer profiles for this purpose.
We ourselves do not use your source code, diffs or review content to train or fine-tune any machine-learning model. What our providers may do with data we send them is described in section 7. We do not use the Service's output, including risk scores and Developer Bug DNA, to make decisions about hiring, firing, promotion, compensation or discipline of any individual, and we ask customers not to.
6. Legal bases for processing and consent
EU/UK GDPR. Where the EU or UK GDPR applies: (a) for personal data we handle as your service provider (for example pull request author logins and names quoted in code or review text), the lawful basis is determined by your organization as the data controller; (b) for personal data for which we are responsible, we rely on contract performance (your account, billing and providing the Service you signed up for), legitimate interests (securing the Service, preventing fraud and free-trial abuse, counting the people who author pull requests on your repositories for per-seat billing (as a pseudonymous hash; section 3), measuring the cost of each analysis to set plan allowances and prices (section 3), improving core functionality using aggregate operational metrics, and, for Developer Bug DNA, which runs only when your organization switches it on and never for a developer who has opted out, tailoring review comments to the recurring bug patterns of a pull request's author), consent (for marketing communications and for any optional feature, other than Developer Bug DNA, that we describe as consent-based; you may withdraw consent at any time), and compliance with a legal obligation (such as tax and accounting records). You may object at any time to processing based on our legitimate interests (see sections 10 and 11).
Canada. Where PIPEDA, Alberta's Personal Information Protection Act or Québec's Act respecting the protection of personal information in the private sector applies, we rely on consent (express where the information is sensitive or the use would not reasonably be expected; otherwise implied) or another basis those laws allow. For information about developers and other individuals contained in your organization's repositories, your organization is responsible for having their consent or another lawful basis, and we process it only on its behalf and to provide the Service; Developer Bug DNA is addressed separately in section 11. For the numeric GitHub user ids of pull request authors that we keep for the free trial (section 3), we are the organization responsible. For this purpose we keep only the id, not the login, name or email, and use it only to count trial reviews and to prevent repeat free trials. We rely on the implied consent of the developers concerned: our Terms of Service (section 4) require your organization to inform them, and this policy is public. A developer may withdraw that consent or object at any time by writing to privacy@bugweg.com (section 10). For account and marketing information, you consent when you create an account or ask to receive communications. You may withdraw consent at any time, subject to legal or contractual restrictions, by contacting the Privacy Officer (section 18); withdrawal may prevent us from providing the Service.
7. Subprocessors and third-party services
This section is the complete list of the third parties that receive data about you, your organization or your code from us. It is divided into (a) our service providers (subprocessors), which process data on our behalf to provide the Service; (b) public package registries contacted during test runs; (c) your code host, which is the source of the data we analyze; and (d) optional integrations that you choose to connect. We will update this list before a new or replacement provider begins processing data, and give advance notice of providers that will receive code as described in section 6 of our Terms of Service.
(a) Service providers (subprocessors)
- Cloudflare (U.S. company; Cloudflare's global network): runs the review pipeline (Cloudflare Workers, Queues and KV storage) and the API that the dashboard calls from your browser, and keeps their operational logs. Pull request diffs and the file contents read for analysis pass through it while a review runs. It also receives the requests your browser makes to our API, including your IP address, your sign-in session token, the dashboard data shown to you and the settings you submit (including Slack, Jira and Linear credentials), and the webhooks sent to us by GitHub, Stripe and connected error trackers. Through Cloudflare Workers AI, it also runs an open-weight language model (Meta Llama 3.1 8B) that receives the first 12,000 characters of each pull request diff to triage it before review.
- Neon (database hosting; Amazon Web Services, United States): stores account, team and billing-status records, repository and pull request metadata, retained review output (including AI-written issue descriptions), embedding vectors, and the other data described in sections 2 to 4.
- Fly.io (United States): hosts our code-parsing service and the isolated, ephemeral sandboxes used to run tests. During a review it receives the contents of changed files and related files to locate functions. A sandbox receives a temporary copy of the files needed for a test run, or of the repository for Test Coverage Gap, and is discarded after the run.
- Vercel (U.S. company): hosts this website and the dashboard. It receives the requests your browser makes to them, including your IP address, browser information and sign-in session cookie, and what you submit through the website feedback form.
- Anthropic and Voyage AI (AI processing): Anthropic (large language model inference for review, test generation and Bug Search assessment: the diffs, file contents and code excerpts needed for a review, the Bug Search queries you type, and, when Developer Bug DNA is on for your team and the developer has not opted out, the top bug-pattern categories from that developer's profile, are sent to its API), and Voyage AI (text embeddings: excerpts of your source code, AI-written issue descriptions with their file paths, the Bug Search queries you type and, if you connect an error tracker, error titles and stack traces are sent to it to produce numerical vectors). Both are U.S. companies and may process data in the United States. Anthropic's published policy is that, under its commercial terms, it does not train its models on customer content and deletes API inputs and outputs from its systems within 30 days by default (longer where content is flagged for a usage-policy violation). Our Anthropic account is under Anthropic's commercial terms. Voyage AI's standard terms allow it to use customer content to train and improve its models unless the customer opts out. We opted out on October 2, 2026. Before that date, the Service was in private testing: the only content we sent to Voyage AI came from repositories in our own GitHub accounts and from test data, and no customer content was sent to Voyage AI before the opt-out took effect.
- Clerk (U.S. company): authentication. It handles GitHub OAuth sign-in and session management, and holds your name, email address, GitHub username, the OAuth access token for your GitHub account and the session cookies described in section 13.
- Stripe (U.S. company): payment processing. Payment card details, postal code and billing country and province or state that you enter in the Stripe card form on our website are sent directly to Stripe, and so are the details you enter on Stripe's checkout and billing portal pages. We also send Stripe internal identifiers for your team, plan and app installation, and the internal user id of the admin who starts a checkout (so that, on the Developer plan, the seat goes to that admin, and so that we can tell that admin if we cancel and refund a second subscription).
- Sentry (U.S. company): our own error monitoring and diagnostics for this website and the dashboard. It receives error messages, stack traces, the page address, browser and device information, and performance timings for a sample of page loads.
- Resend (U.S. company): email delivery, including reports submitted through the website feedback form (the title and description you enter and, if you give it, your email address) and notices sent to organization administrators about changes to our Terms of Service and this Privacy Policy and about changes to your organization's Developer seat (their email addresses and the name of the admin who made the change), and a notice to an admin whose second subscription we cancelled and refunded (their email address).
- Zoho Mail (European Union data center): hosting of our support mailboxes, including the emails you send us.
(b) Public package registries
When a test run needs to install your project's dependencies, the sandbox downloads them through a proxy limited to npm (registry.npmjs.org), Yarn (registry.yarnpkg.com) and PyPI (pypi.org and files.pythonhosted.org). These requests reveal the names and versions of the packages being installed. They come from our sandbox, not from your network, and do not include your source code.
(c) Your code host
GitHub is the source of the code and pull request data we analyze. Through the app you install, we read repository and pull request content from GitHub (api.github.com and codeload.github.com) and post review comments, commit statuses, checks and, for Production Lock, pull requests back to it. GitHub is not our subprocessor; your use of GitHub is governed by your own agreement with it.
(d) Optional integrations you choose to connect
- Optional integrations you choose to connect: Slack, Jira, Linear, Sentry, Rollbar. Data shared with these services is governed by your own configuration and their respective privacy terms, and you are responsible for that data flow.
8. International data transfers
Bugweg is based in Alberta, Canada. The personal information described in this policy is stored in a database hosted in the United States and is processed by our subprocessors in the United States and, for some services, other countries, including the European Union (section 7). It is therefore subject to the laws of those countries and may be accessible to their courts, law-enforcement and national-security authorities. This includes information about Québec residents, which may be communicated outside Québec. We remain accountable for personal information we transfer to a service provider for processing (PIPEDA Principle 4.1.3).
When we transfer personal data protected by the EU or UK GDPR outside the European Economic Area or the United Kingdom, we rely on adequacy decisions where they exist, and otherwise on standard contractual clauses or another transfer mechanism that law permits. You can ask for a copy of the relevant safeguards at privacy@bugweg.com.
To ask questions about collection, use, disclosure or storage of personal information by our service providers outside Canada, or to obtain information about our policies and practices for them, contact Olufunke Adewoye, Privacy Officer, at privacy@bugweg.com.
9. Data retention and deletion
The following automated rules and self-service controls apply. The automated rules run once a day, so a period stated below (for example "7 days") means that the deletion happens within about a day after that period ends (for example, within about 8 days).
- Uninstalling: when you uninstall the Bugweg GitHub App, or remove a repository from it, we delete that repository's integration credentials (Slack, Jira and Linear), tracker webhook tokens and telemetry tokens immediately, and its record and the remaining data described in section 4 after a 7-day grace period. Re-adding the repository within those 7 days under a GitHub App installation that is connected to your bugweg organization cancels the deletion of its history, but you must reconnect its integrations. If a repository is moved to, or re-added under, a GitHub App installation that is not connected to your bugweg organization (for example after a reinstall that you have not yet connected, or a transfer to another GitHub account), and that installation is not connected to your bugweg organization within 7 days, we delete the repository’s history and its integration credentials as on an uninstall (its usage records follow their own retention period below), unless the installation is suspended on GitHub, in which case we keep them until the suspension ends, or GitHub does not confirm that the repository is under that installation, in which case we check again each day and delete them once it does; its record then belongs to the new installation and is no longer linked to your team. We also delete the GitHub installation record (account login and installation id) once the installation has been removed for 7 days and no repository is still attached to it. Uninstalling does not by itself delete Developer Bug DNA data (profiles, GitHub-login links and the opt-out list), which belongs to your organization as a whole and not to one repository; as long as your team still has at least one repository record, that data is kept, subject to the Developer Bug DNA rules below. Once no repository record of your team remains (that is, after the last one has been deleted following its grace period), the same daily job also deletes the team's profiles and login links. Uninstalling does not delete the free-trial abuse-prevention records or the team record described below.
- Bug Search embeddings for a repository are deleted after 90 days without a Bug Search on it (for embeddings with no recorded search, 90 days after they were created). The next search simply re-creates them.
- Job-failure records (repository name, pull request number, error text) are deleted after 30 days.
- Developer Bug DNA data (section 11) is deleted: when an organization admin switches the feature off (all of the team's profiles, GitHub-login links and the author logins stored with flagged issues); when a developer, or an organization admin, erases a developer's data (that developer's profile, login links and stored author logins); after 90 days of inactivity (profiles not updated in 90 days, login links older than 90 days that have no profile, and author logins stored on issues last seen more than 90 days ago); 30 days after a member whose GitHub login is linked to their bugweg account leaves the organization, unless they rejoin first (the profile, login links and stored author logins we can attribute to that member; anything we cannot attribute to them is deleted under the 90-day inactivity rule); by a team-wide deletion (below); and once your team has no repository record left (above). The switch-off and erasure actions take effect immediately in the live database; the daily job also removes any such data held for a team that has the feature off.
- Delete on demand: an organization admin can, from Data & privacy in the dashboard, (a) delete all derived data for one repository (everything described in section 4 for it, including the author logins stored with flagged issues, its integrations and telemetry tokens); the repository record stays, and Developer Bug DNA profiles and login links are not deleted by this; or (b) delete all derived data for every repository of the team and the team's Developer Bug DNA profiles and GitHub-login links. The live database is updated immediately. Both actions require an admin and a typed confirmation.
- Seat records (section 3) are deleted when they are 13 months old (at the start of the 13th month after the month they count); the hash of the Developer seat holder, and the record of who set it, are kept while you are on the Developer plan and are deleted when the subscription ends, when you change to another plan, or when your organization's bugweg account is deleted; the hash of an admin who started a Developer checkout, and the record of who that is, are deleted when the checkout completes, expires or is refused, and in any case within 2 days. We use the current and previous month for billing and keep the rest so we can answer billing questions and disputes about the past year.
- Review usage records (section 3) are deleted 180 days after the analysis, and the per-day review records 40 days after the day they count. Deleting a repository's or the team's data from the dashboard does not remove these records early: they hold no code and are deleted at the end of these periods, or earlier when the repository's record is deleted after an uninstall (review usage records only) or when your organization's bugweg account is deleted.
- Terms and privacy acceptance records (section 3) are kept for as long as you have a bugweg account and are deleted when your account is deleted.
- Everything else (review text, bug fingerprints and their embeddings, risk scores, generated tests) has no automatic expiry, because remembering past bugs across pull requests is the purpose of the Service. We keep it for as long as the repository remains installed, until deleted by one of the mechanisms above, or on request to privacy@bugweg.com. Cancelling a subscription does not by itself delete any data.
What we keep after deletion:
- review usage records and per-day review records, until the end of their retention periods above, or earlier as described there;
- after an on-demand deletion of a repository's data, the repository record (name, plan and team link, needed for billing and to route webhooks); after an uninstall, no repository record remains;
- after a repository's history is deleted because it moved to a GitHub App installation that was not connected to your bugweg organization within 7 days, the repository record, attached to that installation and no longer linked to your team;
- the team record (team name, organization identifier, plan, Stripe customer and subscription identifiers, and whether Developer Bug DNA is switched on), which neither an uninstall nor a team-wide deletion removes;
- billing and invoicing records, retained as required by tax and accounting law, for 6 years;
- free-trial abuse-prevention records (card fingerprint, the GitHub user ids of developers who used the trial with that card, and the trial counters), which we keep without a fixed end date because their purpose is to prevent repeat free trials;
- the list of GitHub logins that have opted out of Developer Bug DNA, which we keep without a fixed end date so that we can honour the opt-out (only an organization admin can remove an opt-out);
- a deletion log recording which repository's data (by name), or which team's Developer Bug DNA data, was deleted, when, by whom (a user id, or the system), and how many rows per table, never the content, kept for 3 years;
- copies in backups kept by our database provider, which may persist for up to 6 hours after deletion;
- application and error logs (which may include IP addresses), kept for up to 90 days; and
- support communications, kept for 24 months after your request is closed.
10. Your privacy rights
If you are in the European Economic Area, the United Kingdom, or Switzerland (GDPR/UK GDPR)
You have the right to access your personal data (Art. 15), rectify it (Art. 16), erase it (Art. 17), restrict its processing (Art. 18), receive a portable copy (Art. 20), object to processing based on legitimate interests (Art. 21), and withdraw consent at any time where processing is based on it. We respond within one month. You may lodge a complaint with your local supervisory authority. If your personal data appears in a customer's repository and you are not our customer, we are usually that customer's service provider for it: contact us at privacy@bugweg.com and we will forward your request to the relevant organization or, where the organization has authorized it, act on it directly. For your Developer Bug DNA profile, see section 11.
If you are in Canada (PIPEDA, Alberta's Personal Information Protection Act, and Québec's private-sector privacy Act)
You may ask us for access to the personal information we hold about you, ask that it be corrected, withdraw your consent (subject to legal or contractual restrictions), and ask that information no longer needed for its purpose be deleted. In Québec you may also ask to receive your computerized personal information in a structured, commonly used technological format. We respond within 30 days. Where the information is about a developer whose code sits in your organization's repositories, we may direct you to that organization, which is responsible for it, and we will assist it. If you are not satisfied, contact our Privacy Officer (section 18) and, if unresolved, you may complain to the Office of the Privacy Commissioner of Canada, the Commission d'accès à l'information du Québec, or the Office of the Information and Privacy Commissioner of Alberta. We do not publish personal information.
If you reside in a U.S. state with a comprehensive privacy law (e.g., California's CCPA/CPRA, Virginia's VCDPA, Colorado's CPA, Texas's TDPSA, and similar laws)
Depending on your state, you may have the right to know and access the personal information we hold about you, delete it, correct it, obtain a portable copy, opt out of the "sale" or "sharing" of personal information (as those terms are defined under applicable law), targeted advertising, and profiling in furtherance of decisions that produce legal or similarly significant effects, limit the use of sensitive personal information, and not be discriminated against for exercising these rights. We do not sell personal information and do not share it for cross-context behavioral advertising, and we have not done so in the preceding 12 months. We do not use profiling in furtherance of decisions that produce legal or similarly significant effects.
Sensitive personal information. We do not intentionally collect sensitive personal information (as California defines it). Customer repositories may incidentally contain such information, for example credentials in code, which we process only to provide the Service. The integration credentials you give us are used only to deliver the notifications you configured.
Categories. In the last 12 months we have collected the categories of personal information shown in section 3, which fall within these statutory categories: identifiers (account, installation and login information, IP address); commercial information and customer records (plan, billing, trial usage); internet or network activity (logs); professional information and inferences (Developer Bug DNA, risk scores, bug-pattern data); and the content of communications (support). We disclose them for business purposes to the service providers listed in section 7.
How to submit a request, and how we handle it
To exercise any of these rights, email privacy@bugweg.com and include your GitHub login and the organization(s) or repositories concerned. We verify requests by matching the requester to the subscription and the associated bugweg account, and by contacting the requester at the contact details on that account. If you have no bugweg account, we verify that you control the GitHub account concerned, for example by asking you to post from that account a code we send you. If we cannot verify it, we will tell you and will not act on the request until it is verified. You may use an authorized agent; we may require the agent's signed permission and may verify your identity directly. We respond within the time your law requires (generally 30 days in Canada, one month under the GDPR, and 45 days under U.S. state laws, extendable where the law permits). If we deny a U.S. state-law request, you may appeal by replying to the denial or by emailing privacy@bugweg.com with "Appeal" in the subject; we will respond within the time your state's law requires, and if your appeal is denied you may contact your state attorney general. If you are a developer with no Bugweg account, we will search for your GitHub login, delete the profile data we control and record your opt-out from Developer Bug DNA (section 11), tell you, as far as we can find them, whether we hold review usage records for pull requests you authored and, if you ask, delete them, look up your numeric GitHub user id in our free-trial records (section 3) and tell you whether we hold it (we keep it to prevent repeat free trials, section 9; if you withdraw your consent or object, we will tell you whether we can delete it or why we must keep it, and you may complain to the regulator referred to above for where you are), and refer you to the relevant organization for the rest.
Organization admins can also delete repository and team data themselves from the dashboard (see section 9).
11. Developer Bug DNA
Developer Bug DNA is a profiling function: it analyzes aspects of a developer's work performance. It is off by default for every organization. It runs only if an organization admin switches it on for the team in the dashboard, and the admin must confirm when doing so that the organization's developers and contributors have been informed. When it is on, then for each developer who authors pull requests reviewed by Bugweg, it builds a profile of that developer's recurring bug-pattern categories: running averages and counts of the vectors of issues flagged in their pull requests, keyed by GitHub login and combined across every repository of your organization (individual issue vectors are not kept in the profile). Separately, each flagged issue is stored with the GitHub login of the pull request's author, and the dashboard uses this to show each developer's number of flagged issues over the last 30 days compared with the previous 30 days, and whether it has improved or worsened. The top patterns from the author's profile (category labels and counts) are included in the prompts sent to Anthropic when a review of that developer's pull request is generated, so that review comments are more specific. When the feature is off, or when a developer has opted out, we do not read, create or store any profile, GitHub-login link or author login on flagged issues for that developer, and no profile data is included in prompts.
Who can see it. Organization admins can see every developer's profile for the team, for all repositories. Any other member of your organization's Bugweg workspace can see only the profile linked to their own account; requests for other profiles are answered as "not found." A developer can link the GitHub logins they use to their Bugweg account. That link is self-reported and is not verified against GitHub. A GitHub login that one account has claimed cannot be claimed by another account (the first claim wins); because links are not verified, a developer who finds that their login was claimed by someone else should contact privacy@bugweg.com.
Erasure and opt-out. A developer can erase their profile and opt out, either themselves in the dashboard (if their login is linked to their account, in which case every login linked to them is erased and opted out) or through an organization admin, or by asking privacy@bugweg.com. Erasure deletes the profile, the login link and the author login stored on flagged issues, and records the login on an opt-out list, so that it is never profiled or linked again; only an organization admin can remove an opt-out. Opt-out applies per GitHub login, so a developer whose logins are not linked must opt out of each one. If an organization admin switches the feature off, all of the team's profiles, login links and stored author logins are deleted. Profiles are also deleted after 90 days of inactivity, 30 days after a member whose GitHub login is linked to their Bugweg account leaves the organization (unless they rejoin first; profiles we cannot attribute to that member are deleted under the 90-day inactivity rule), by a team-wide deletion, and once the team has no repository record left (section 9). They are not deleted by uninstalling one repository or by deleting a single repository's data (although the author logins stored with a repository's flagged issues are deleted with that repository's data).
Responsibility and limits. Your organization decides whether to switch Developer Bug DNA on, and is responsible for informing its developers and contributors, including contributors who are not employees of the organization, before doing so and for the legitimacy of that use. Developer Bug DNA is used only to tailor review comments and dashboard views. We do not use it to make decisions with legal or similarly significant effects on any individual, we do not provide it to third parties other than your organization and our subprocessors (section 7), and we ask organizations not to use it to make decisions about hiring, firing, promotion, compensation or discipline of any individual (section 5). Where Canadian privacy law requires consent, your organization is responsible for obtaining it from its developers and contributors before switching the feature on; a developer may withdraw at any time by opting out (above).
12. Children's privacy
The Service is intended for professional use by software development professionals and organizations. It is not directed at children under 16 (or the relevant age of digital consent in your jurisdiction) or intended for anyone under 18, and we do not knowingly collect personal information from anyone under 18. If you believe a child has provided us with personal information, contact us and we will delete it.
13. Cookies
We use a limited set of cookies strictly necessary for authentication and session management (via Clerk). When you open the billing page in the dashboard, or use Stripe's checkout or billing portal pages, Stripe's payment script may set its own cookies used for fraud prevention and to process payments (see Stripe's cookie policy); on this website we load it only on the billing page. We do not use analytics, third-party advertising cookies or cross-site ad tracking. Sentry (section 7) records errors and performance timings for a sample of page loads to help us fix problems; it does not set cookies and is not used for analytics or advertising. We do not respond to "Do Not Track" browser signals.
14. Data security
We apply technical and organizational measures appropriate to the data we process, including encryption in transit, encryption at rest of the Slack, Jira and Linear credentials you give us (AES-256-GCM, applied in our application, with the key kept in a secret store separate from our database), storage of tracker webhook tokens and telemetry tokens only as one-way hashes, HMAC signature verification on incoming webhooks, authorization checks in our API that resolve the calling organization from your verified session token and restrict access to that organization's data, and minimizing retention of source code, as described in section 4. Details are on our Security page. No method of transmission or storage is completely secure, and we cannot guarantee absolute security.
15. Breach notification
If we become aware of a security incident affecting personal information that we process on behalf of a customer, we will notify that customer without undue delay so that it can meet its own obligations (for example, the 72-hour period in Article 33 of the GDPR). For personal information for which we are ourselves responsible, we will notify affected customers and, where required, the regulator and affected individuals within the timeframe applicable law requires: under the GDPR, without undue delay and, where feasible, within 72 hours; under PIPEDA and Alberta's Personal Information Protection Act, as soon as feasible where there is a real risk of significant harm (to the Privacy Commissioner of Canada or the Alberta Commissioner, respectively); in Québec, where a confidentiality incident presents a risk of serious injury, to the Commission d'accès à l'information and the persons concerned; and under applicable U.S. state breach-notification law. We will keep a register of confidentiality incidents, and records of all breaches of security safeguards for at least 24 months, as Canadian law requires.
16. Canada's Anti-Spam Legislation (CASL)
Commercial electronic messages we send to a Canadian recipient (such as product update emails) are sent only with your consent (express, or implied within the periods CASL permits) and include a functional unsubscribe mechanism, in accordance with CASL.
17. Changes to this policy
We may update this Privacy Policy from time to time, and we review it at least once every 12 months. If a change is material, we will provide notice as described in section 18 of our Terms of Service. If a change affects the purposes for which we use personal information we already hold, we will seek your consent again where the law requires. The "last updated" date at the top of this page reflects the most recent revision.
18. Contact us
Privacy Officer (person in charge of the protection of personal information): Olufunke Adewoye, Privacy Officer, PAFTAK Software Inc., Alberta, Canada; privacy@bugweg.com. Privacy questions and requests under section 10 go to this address. Complaints: send them to the Privacy Officer; we acknowledge within 5 business days and respond within 30 days, telling you if we need longer. You may also complain to the regulators named in section 10. This policy, together with our Terms of Service, describes our governance policies and practices for personal information. Security reports: security@bugweg.com. General inquiries: hello@bugweg.com.