mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-09-12 21:58:57 +02:00
"Report an issue" in the navbar read like a way to report an anonymized
repository, and it opened a blank GitHub issue instead of the template
that asks reporters to confirm the issue is about the service. The user
menu offered "Default settings" and "Logout" with no hint of what lives
behind them, and the Claim page was unreachable from any menu.
The settings page never loaded quotas (the bars stayed in their striped
loading state), mixed serif checkbox labels with sans forms, used
Bootstrap alert colours, and described options in jargon ("Proxy mode",
"Github page", "Line of code").
- Navbar: "Report a bug" links to the issue template with a tooltip that
names the service; the user menu shows who is signed in and lists
Settings, Claim an anonymization, Report a bug, Source code, Sign out,
each with a one-line hint. Icon links get aria-labels.
- Settings: quotas load through a shared quotaService (also used by the
dashboard); sections match the side navigation, which now follows
scrolling via a small paperScrollspy directive; copy explains each
option; account card with Sign out; delete moved into a danger zone;
Save shows Saving/Saved and the error alert uses the paper palette.
- Conferences list and detail: sort and status buttons show their state,
hidden statuses appear as chips with a count line, Remove is a button
behind a divider, dates spell the month, expiry column matches the
dashboard, detail page gets an Edit button and plan/cost meta.
- New conference: validation errors only appear after a field is touched
or the form submitted; pricing copy matches how price is computed.
- Status page: progress label no longer overlaps the details below it;
"Report a bug" points at the template and says whom it is for.
- Claim: single rule, constrained width, explains when to use it.
- Anonymize: shorter placeholder, consistent Auto-update label.
- Mock server gains the endpoints these pages need and an ANON mode.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
687 lines
28 KiB
HTML
687 lines
28 KiB
HTML
<div class="paper-faq">
|
|
<div class="paper-faq-hero">
|
|
<div class="paper-faq-eyebrow">Help</div>
|
|
<h1 class="paper-faq-title">Answers to the <em>questions</em> that come up most.</h1>
|
|
<p class="paper-faq-lede">
|
|
If something's missing, write to us —
|
|
<a href="https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml" target="_blank" rel="noopener">report a bug on GitHub</a>.
|
|
</p>
|
|
</div>
|
|
<div class="paper-faq-body">
|
|
<aside class="paper-faq-toc">
|
|
<div class="paper-faq-toc-head">Contents</div>
|
|
<nav>
|
|
<a href="#faq-general">General</a>
|
|
<a href="#faq-features">Features</a>
|
|
<a href="#faq-limitations">Limitations</a>
|
|
<a href="#faq-privacy">Privacy & Security</a>
|
|
<a href="#faq-hosting">Self-Hosting</a>
|
|
</nav>
|
|
</aside>
|
|
<section class="faq-section" aria-label="FAQs">
|
|
<div>
|
|
|
|
<!-- General -->
|
|
<h4 class="faq-cat">
|
|
<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="faq-cat">
|
|
<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="headingUpdates">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-features"
|
|
href="#updates"
|
|
aria-expanded="false"
|
|
aria-controls="updates"
|
|
>
|
|
Are updates to the original repository reflected in the anonymized version?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="updates"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingUpdates"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Yes. The anonymized repository tracks the source on GitHub: when you push new commits to the
|
|
original repository, the anonymized view picks up those changes (cached files are refreshed
|
|
against GitHub). This means you can keep iterating on the code while reviewers have the link,
|
|
and you do not need to recreate the anonymized repository every time you update the source.
|
|
</p>
|
|
<p>
|
|
A few practical implications worth keeping in mind:
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
You can safely create the anonymized repository early in the writing process — later
|
|
commits will be visible to reviewers without any additional action.
|
|
</li>
|
|
<li>
|
|
If you rename files, add new identifiers, or introduce new contributor names after creation,
|
|
revisit the anonymization options (custom terms, file filters) to make sure the new content
|
|
is still properly anonymized.
|
|
</li>
|
|
<li>
|
|
If the original repository is made private or deleted, the anonymized repository will no
|
|
longer be able to fetch updated content.
|
|
</li>
|
|
</ul>
|
|
</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="faq-cat">
|
|
<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="faq-cat">
|
|
<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="headingPermissions">
|
|
<h3 class="panel-title">
|
|
<a
|
|
class="collapsed"
|
|
role="button"
|
|
data-toggle="collapse"
|
|
data-parent="#faq-privacy"
|
|
href="#permissions"
|
|
aria-expanded="false"
|
|
aria-controls="permissions"
|
|
>
|
|
Why does GitHub say Anonymous GitHub asks for write access?
|
|
</a>
|
|
</h3>
|
|
</div>
|
|
<div
|
|
id="permissions"
|
|
class="panel-collapse collapse"
|
|
role="tabpanel"
|
|
aria-labelledby="headingPermissions"
|
|
>
|
|
<div class="panel-body p-3">
|
|
<p>
|
|
Anonymous GitHub only reads your repositories — it
|
|
never pushes commits, opens issues, modifies settings, or
|
|
deletes anything. From your perspective as a user, the
|
|
service is read-only.
|
|
</p>
|
|
<p>
|
|
However, GitHub's OAuth scopes do not offer a read-only
|
|
option for private repositories: the only scope that grants
|
|
access to private repos is <code>repo</code>, which is
|
|
documented as full read/write access. To support users who
|
|
want to anonymize a private repository, Anonymous GitHub
|
|
must request that scope, and GitHub then displays the
|
|
broader permission text at sign-in. The application itself
|
|
only ever performs read operations against the GitHub API.
|
|
</p>
|
|
<p>
|
|
If you only anonymize public repositories, the source code
|
|
is open and can be audited on the
|
|
<a href="https://github.com/tdurieux/anonymous_github/" target="_blank">GitHub repository</a>,
|
|
or you can self-host your own instance.
|
|
</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="faq-cat">
|
|
<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>
|