My work  /  New anonymization

New anonymization

Paste a GitHub repository, pull-request, or gist URL. We’ll fetch it, redact the terms you choose in text files, and give you a share link. Images and PDFs are served unchanged when enabled. Review them before sharing.

Your unsaved draft was restored.
Repository, pull request (…/pull/42) and gist (gist.github.com/…) URLs are all accepted.

New anonymization Edit anonymization

{{ detectedType === 'repo' ? 'Repo' : detectedType === 'pr' ? 'PR' : 'Gist' }}
{{ sourceLoading ? 'Loading source…' : 'Choose an accessible source to see its preview.' }}

Source & access

Please provide a valid GitHub URL.
Not accessible. The organization may restrict access.
Does not exist or is not accessible.
Already anonymized.
The commit SHA is not valid.
This commit no longer exists in the repository. Click refresh to get the latest.
Follows the latest version, at most once an hour.

Anonymization

anonymous.4open.science/r/{{ repoId }}
ID can only contain letters and numbers.
{{ repoId }} is already used.
Your share link will be anonymous.4open.science/pr/{{ pullRequestId }}.
ID can only contain letters and numbers.
{{ pullRequestId }} is already used.
Your share link will be anonymous.4open.science/gist/{{ gistId }}.
ID can only contain letters and numbers.
{{ gistId }} is already used.
One term per line.
Regex & replacement syntax Regex is supported. Replaced by {{ site_options?.ANONYMIZATION_MASK }}-[N], or use term=>replacement to pick your own (e.g. Anonymous=>ABC).
Regex characters detected. Escape them if unintentional.
Terms are in an invalid format.

Display

{{ fmt?.translate('WARNINGS.page_not_enabled_on_repo') }} {{ fmt?.translate('WARNINGS.page_branch_mismatch', { pageBranch: details?.pageSource?.branch, selectedBranch: source?.branch }) }}

Images and PDFs are served unchanged. Review their contents and metadata before sharing. Supported formats

Hosting & expiration

Uses the owner's hosting Your author subscription is active. Conference hosting is checked on submission. {{ hostingQuota.repository.used }} of {{ hostingQuota.repository.total }} active repositories · Free

Expiration
Pick a date in the future.
Pick a date on or before {{ fmt?.date(maxExpirationDate) }}.
Enter a valid expiration date.

Visitors will be redirected to the original GitHub source on this date, revealing its identity.

{{ conference_data?.name }} expires {{ fmt?.date(conference_data?.endDate) }}.
The conference is not activated.
Link to a conference to apply its shared defaults.

Confirming your payment…

Your draft is saved. Please do not pay again.

{{ billingNotice }}

No scheduled expiration while subscribed. A 90-day grace period applies if paid access ends.

Hosting just this repository?

{{ billingPrice(plan) }} · {{ billingBytes(plan.storage) }} for 180 days. No renewal. Does not include Never expire.

Coauthors

Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors.

Co-author
No co-authors yet.
Your unsaved draft was restored.
{{ draftSaved ? "Draft saved in this tab for 30 minutes." : "Unsaved changes. Keep this tab open until you save." }}
README.md
Loading source…
Updating the anonymized preview…
No README is available to preview. Review the published files before sharing.
Gist preview
Loading source…
Updating the anonymized preview…

{{ anonymizeGistContent(details?.gist?.description) || 'Untitled gist' }} {{ details?.gist?.isPublic ? 'public' : 'secret' }}

Gist ID: {{ details?.source?.gistId }} By @{{ anonymizeGistContent(details?.gist?.ownerLogin) }}
  • {{ file?.language }}

Comments

  • @
Pull request preview
Loading source…
Updating the anonymized preview…

{{ anonymizePrContent(details?.pullRequest?.title) }} {{ fmt?.title(details?.pullRequest?.merged ? "merged" : details?.pullRequest?.state) }}

Pull Request on {{ details?.pullRequest?.baseRepositoryFullName }}
Diff and comments are hidden by your display settings.
  • @