بدون توضیح

Ferass El Hafidi 05318749f2 README.md: remove instance not following the instance rules 1 سال پیش
api f2e5e0a6f2 treewide: switch to SPDX license identifiers 1 سال پیش
screenshots 638f5b282e Initial commit. 1 سال پیش
static ce98e1ff75 new logo 1 سال پیش
templates ce98e1ff75 new logo 1 سال پیش
.gitignore 5bcbe04cf0 Add a COPYING file 1 سال پیش
COPYING 5bcbe04cf0 Add a COPYING file 1 سال پیش
README.md 05318749f2 README.md: remove instance not following the instance rules 1 سال پیش
app.py f2e5e0a6f2 treewide: switch to SPDX license identifiers 1 سال پیش

README.md

A Simple GitLab frontend.

How does it work?

Laboratory uses GitLab's REST API to fetch data about users/groups and repositories (those so-called 'projects').

Then it parses that data and shows it in a JS-free lightweight webpage inspired by Cgit and SourceHut.

Dependencies

  • pycmarkgfm
  • requests
  • flask and all its dependencies

Features

Basic

  • List projects for any instance
  • List group projects
  • List group subgroups

Repositories

  • Issues (no comments though)
  • Wikis
  • Tree
  • Show a commit
  • Log
  • Partial README rendering
  • Refs
  • Description
  • Idle
  • Avatar

Groups

  • Subgroups
  • Repositories
  • Avatar

Users

  • Avatar
  • State

Unfourtunately, accessing more data about users requires authentication, so don't expect Laboratory to fetch more than that unless GitLab changes that.

TODO

  • Implement Merge Requests (currently all API calls to MRs must be authenticated)
  • Implement Logging in (possibly just a matter of getting the token key and using it for all requests, plus some other features like creating repos)
  • Group wikis
  • Proper support for project wikis that aren't really repositories
  • And more

Known Issues

  • When searching for a repository in GitLab.com, the API returns an internal server error. This is GitLab.com's problem, not ours.
  • Laboratory is very sensitive about URLs
  • Laboratory currently cannot render RST-formatted README files
  • Laboratory freaks out when a blob is not a "normal" file (e.g. an image)

Instances

For an instance to be listed here, it needs to meet the following requirements:

  • Instances MUST have been up for at least a month before it can be added to this list.
  • Instances MUST have been updated in the last month. An instance that hasn't been updated in the last month is considered unmaintained and is removed from the list.
  • Instances MUST be served via domain name.
  • Instances MUST be served via HTTPS (or/and onion).
  • Instances using any man-in-the-middle service MUST be marked as such (e.g. Cloudflare, DDoS-Guard...).
  • Instances using any type of anti-bot protection MUST be marked as such.
  • Instances MUST NOT use any type of analytics.
  • Instances running a modified source code MUST respect the AGPL by publishing their source code and stating their changes before they are added to the list and MUST contain a link to both the modified and original source code of Laboratory in the footer.
  • Instances MUST NOT serve ads NOR promote products.
  • Instances MUST NOT restrict or disallow the access / usage to any natural person (e.g. a country's IP range MUST NOT be blocked, access by a natural person MUST NOT be disallowed for arbirary reason) - this rule doesn't apply to juridical persons.

Note: If you see any instance in this list not following the rules, please let us know.

URL Author Vanilla/Modified/...? Note Has an onion site?
https://lab.vern.cc ~vern team Vanilla. Has alternate subdomains. Sometimes down. Yes
https://laboratory.vitali64.duckdns.org Ferass Patched. Used as a testing ground. Yes

Screenshots

These screenshots may be outdated.

Main page

Browsing Group repositories

Browsing a repository