mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-04-21 21:06:01 +02:00
577 lines
23 KiB
HTML
577 lines
23 KiB
HTML
<div class="container-fluid h-100">
|
|
<div class="row h-100">
|
|
<div class="container px-md-3 px-sm-0">
|
|
<section
|
|
class="faq-section clearfix mt-3"
|
|
aria-label="FAQs"
|
|
>
|
|
<div class="container">
|
|
<h2 class="text-center pt-4 pb-2">Frequently Asked Questions</h2>
|
|
<p class="text-center text-muted mb-4" style="font-size: 1.1rem;">
|
|
Everything you need to know about using Anonymous GitHub for double-anonymous peer review.
|
|
</p>
|
|
|
|
<!-- General -->
|
|
<h4 class="mt-4 mb-3" style="color: var(--link-color); font-weight: 600; border-bottom: 2px solid var(--border-color); padding-bottom: 0.5rem;">
|
|
<i class="fas fa-info-circle mr-2"></i>General
|
|
</h4>
|
|
<div
|
|
class="panel-group"
|
|
id="faq-general"
|
|
role="tablist"
|
|
aria-multiselectable="true"
|
|
>
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingWhatIs">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-general"
|
|
href="#whatIs"
|
|
aria-expanded="false"
|
|
aria-controls="whatIs"
|
|
>
|
|
What is Anonymous GitHub?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="whatIs"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingWhatIs"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Anonymous GitHub is a free, open-source tool that anonymizes GitHub repositories and pull requests
|
|
for double-anonymous (double-blind) peer review. It replaces identifying information — such as
|
|
the repository owner, organization name, and custom terms — so that reviewers cannot determine
|
|
the identity of the authors through the code repository.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingHowWork">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-general"
|
|
href="#howWork"
|
|
aria-expanded="false"
|
|
aria-controls="howWork"
|
|
>
|
|
How does Anonymous GitHub work?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="howWork"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingHowWork"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies
|
|
requests to GitHub on the fly. In both cases, the original and anonymized versions of files are
|
|
cached on the server. The system automatically detects and replaces the repository owner,
|
|
organization name, and repository name. You can also specify additional custom terms to anonymize
|
|
using one-per-line regex patterns.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingScope">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-general"
|
|
href="#scope"
|
|
aria-expanded="false"
|
|
aria-controls="scope"
|
|
>
|
|
What is the scope of anonymization?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="scope"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingScope"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
In double-anonymous peer review, the boundary of anonymization is the paper plus its online
|
|
appendix — not the entire internet. Searching for any part of the paper or the online appendix
|
|
can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the
|
|
repository owner, organization, repository name, file and directory names, and file contents
|
|
across all text-based file types.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingCost">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-general"
|
|
href="#cost"
|
|
aria-expanded="false"
|
|
aria-controls="cost"
|
|
>
|
|
How much does it cost?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="cost"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingCost"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Anonymous GitHub is completely free to use. However, the server costs hundreds of dollars per year
|
|
to maintain. If you find the service useful, a small donation would be greatly appreciated. You can
|
|
support the project by
|
|
<a href="https://github.com/sponsors/tdurieux/" target="_blank">sponsoring on GitHub</a>,
|
|
donating through <a href="https://ko-fi.com/tdurieux" target="_blank">Ko-fi</a>, or by clicking
|
|
the "Support me" button on the site.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Features -->
|
|
<h4 class="mt-5 mb-3" style="color: var(--link-color); font-weight: 600; border-bottom: 2px solid var(--border-color); padding-bottom: 0.5rem;">
|
|
<i class="fas fa-cogs mr-2"></i>Features
|
|
</h4>
|
|
<div
|
|
class="panel-group"
|
|
id="faq-features"
|
|
role="tablist"
|
|
aria-multiselectable="true"
|
|
>
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingFormats">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-features"
|
|
href="#formats"
|
|
aria-expanded="false"
|
|
aria-controls="formats"
|
|
>
|
|
Which file formats are supported?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="formats"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingFormats"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Anonymous GitHub can display and render a wide variety of file types:
|
|
</p>
|
|
<ul>
|
|
<li><strong>Text and source code</strong> — displayed with syntax highlighting</li>
|
|
<li><strong>Markdown</strong> — rendered as formatted HTML</li>
|
|
<li><strong>Images</strong> (PNG, JPG, SVG, etc.) — displayed inline</li>
|
|
<li><strong>PDFs</strong> — rendered directly in the browser</li>
|
|
<li><strong>Jupyter Notebooks</strong> — rendered with code cells and outputs</li>
|
|
</ul>
|
|
<p>
|
|
Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to
|
|
determine whether it is textual or binary.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingPR">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-features"
|
|
href="#pullRequests"
|
|
aria-expanded="false"
|
|
aria-controls="pullRequests"
|
|
>
|
|
Can I anonymize pull requests?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="pullRequests"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingPR"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull
|
|
requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository,
|
|
and the system will automatically detect that it is a pull request and anonymize it accordingly.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingConference">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-features"
|
|
href="#conference"
|
|
aria-expanded="false"
|
|
aria-controls="conference"
|
|
>
|
|
What is the Conference ID feature?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="conference"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingConference"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
When creating an anonymized repository, you can associate it with a Conference ID. This allows
|
|
conferences to define default anonymization settings (such as expiration dates) that are
|
|
automatically applied to repositories submitted under that conference. If your conference
|
|
provides a Conference ID, enter it during the anonymization setup.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingExpiration">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-features"
|
|
href="#expiration"
|
|
aria-expanded="false"
|
|
aria-controls="expiration"
|
|
>
|
|
What happens when an anonymized repository expires?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="expiration"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingExpiration"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
You can configure one of three expiration strategies when creating your anonymized repository:
|
|
</p>
|
|
<ul>
|
|
<li><strong>Never expire</strong> — the anonymized repository remains accessible indefinitely.</li>
|
|
<li><strong>Redirect to GitHub</strong> — after expiration, visitors are redirected to the original GitHub repository.</li>
|
|
<li><strong>Remove content</strong> — after expiration, the anonymized content is deleted from the server.</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingDownload">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-features"
|
|
href="#download"
|
|
aria-expanded="false"
|
|
aria-controls="download"
|
|
>
|
|
Can I download an anonymized repository?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="download"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingDownload"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers
|
|
want to build or test the code locally. The downloaded archive contains the fully anonymized
|
|
version of the repository.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingCLI">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-features"
|
|
href="#cli"
|
|
aria-expanded="false"
|
|
aria-controls="cli"
|
|
>
|
|
Is there a command-line tool?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="cli"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingCLI"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally,
|
|
generating an anonymized ZIP file on your machine. Install it via npm:
|
|
</p>
|
|
<pre style="background-color: var(--hover-bg-color); padding: 12px; border-radius: 4px; margin-top: 8px; color: var(--color);"><code>npm install -g @tdurieux/anonymous_github
|
|
anonymous_github</code></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Limitations -->
|
|
<h4 class="mt-5 mb-3" style="color: var(--link-color); font-weight: 600; border-bottom: 2px solid var(--border-color); padding-bottom: 0.5rem;">
|
|
<i class="fas fa-exclamation-triangle mr-2"></i>Limitations
|
|
</h4>
|
|
<div
|
|
class="panel-group"
|
|
id="faq-limitations"
|
|
role="tablist"
|
|
aria-multiselectable="true"
|
|
>
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingLimitation">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-limitations"
|
|
href="#limitation"
|
|
aria-expanded="false"
|
|
aria-controls="limitation"
|
|
>
|
|
What are the limitations of Anonymous GitHub?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="limitation"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingLimitation"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<ul>
|
|
<li>
|
|
Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables,
|
|
archives, etc.) are served as-is without anonymization.
|
|
</li>
|
|
<li>
|
|
Files larger than 8 MB are not supported.
|
|
</li>
|
|
<li>
|
|
Static site generators (such as Jekyll) used with GitHub Pages are not fully supported,
|
|
although Markdown files are converted to HTML.
|
|
</li>
|
|
<li>
|
|
The anonymization of terms within source code may change the behavior of the program
|
|
(e.g., if a replaced term appears in a string literal or identifier).
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Privacy & Security -->
|
|
<h4 class="mt-5 mb-3" style="color: var(--link-color); font-weight: 600; border-bottom: 2px solid var(--border-color); padding-bottom: 0.5rem;">
|
|
<i class="fas fa-shield-alt mr-2"></i>Privacy & Security
|
|
</h4>
|
|
<div
|
|
class="panel-group"
|
|
id="faq-privacy"
|
|
role="tablist"
|
|
aria-multiselectable="true"
|
|
>
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingData">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-privacy"
|
|
href="#data"
|
|
aria-expanded="false"
|
|
aria-controls="data"
|
|
>
|
|
How is my data handled?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="data"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingData"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Data stored on Anonymous GitHub is never shared or used for any purpose beyond providing the
|
|
anonymization service. When a repository is removed or expires, only its configuration is
|
|
retained — this makes it easy to restore the repository if needed and ensures that no
|
|
future repository reuses the same ID.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingViewer">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-privacy"
|
|
href="#viewer"
|
|
aria-expanded="false"
|
|
aria-controls="viewer"
|
|
>
|
|
Can repository owners see who viewed their anonymized repository?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="viewer"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingViewer"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
No. Only the total number of views is tracked as an incremental counter. It is not possible
|
|
for the repository owner or for Anonymous GitHub to identify individual viewers.
|
|
Reviewer anonymity is fully preserved.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Self-Hosting -->
|
|
<h4 class="mt-5 mb-3" style="color: var(--link-color); font-weight: 600; border-bottom: 2px solid var(--border-color); padding-bottom: 0.5rem;">
|
|
<i class="fas fa-server mr-2"></i>Self-Hosting
|
|
</h4>
|
|
<div
|
|
class="panel-group"
|
|
id="faq-hosting"
|
|
role="tablist"
|
|
aria-multiselectable="true"
|
|
>
|
|
<div class="panel panel-default mb-3">
|
|
<div class="panel-heading p-3" role="tab" id="headingDeploy">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-hosting"
|
|
href="#deploy"
|
|
aria-expanded="false"
|
|
aria-controls="deploy"
|
|
>
|
|
Can I deploy my own instance?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="deploy"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingDeploy"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment.
|
|
You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup
|
|
instructions are available on the
|
|
<a href="https://github.com/tdurieux/anonymous_github/" target="_blank">GitHub repository</a>.
|
|
</p>
|
|
<p>
|
|
The basic steps are:
|
|
</p>
|
|
<ol>
|
|
<li>Clone the repository and install dependencies</li>
|
|
<li>Create a <code>.env</code> file with your GitHub token, OAuth client ID, and client secret</li>
|
|
<li>Run <code>docker-compose up -d</code></li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="text-center mt-5 mb-5 p-4" style="background-color: var(--hover-bg-color); border-radius: 8px;">
|
|
<p class="mb-2" style="font-size: 1.1rem;">
|
|
Still have questions?
|
|
</p>
|
|
<p class="text-muted mb-0">
|
|
Open an issue on the
|
|
<a href="https://github.com/tdurieux/anonymous_github/issues" target="_blank">GitHub repository</a>
|
|
and we'll be happy to help.
|
|
</p>
|
|
</div>
|
|
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</div>
|