Gaytybe

Researchers have used GayTube as a primary data source to study sexual behavior and social trends within the MSM (men who have sex with men) community.

-- Pull Requests (simplified) CREATE TABLE pull_requests ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), repo_id UUID REFERENCES repositories(id) ON DELETE CASCADE, source_branch TEXT NOT NULL, target_branch TEXT NOT NULL, title TEXT NOT NULL, body TEXT, author_id UUID REFERENCES users(id) ON DELETE SET NULL, state TEXT NOT NULL DEFAULT 'open', -- open, merged, closed created_at TIMESTAMPTZ DEFAULT now(), merged_at TIMESTAMPTZ, updated_at TIMESTAMPTZ DEFAULT now() ); gaytybe

-- Repo_Objects (git objects stored in S3; only metadata here) CREATE TABLE repo_objects ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), repo_id UUID REFERENCES repositories(id) ON DELETE CASCADE, path TEXT NOT NULL, -- e.g., "src/index.js" sha256 BYTEA NOT NULL, size_bytes BIGINT NOT NULL, mime_type TEXT, s3_key TEXT NOT NULL, created_at TIMESTAMPTZ DEFAULT now() ); Researchers have used GayTube as a primary data

| # | As a … | I want to … | So that … | |---|--------|-------------|-----------| |15 | User | Follow other users or repos and see a | I stay updated on work I care about. | |16 | User | React with custom “pride” reactions (rainbow heart, flag emojis) | I can show support in a way that feels authentic. | |17 | Admin | Publish Announcements that are pinned in the feed | Important updates never get lost. | |18 | User | Opt‑in to anonymous contribution mode (display “Anonymous” on PRs) | I can contribute without revealing personal data if I choose. | | |17 | Admin | Publish Announcements that

| Method | Path | Body | Response | |--------|------|------|----------| | GET | /api/v1/repos | ?visibility=public|private&tag=pride | 200 OK → list of repos | | POST | /api/v1/repos | name, description?, isPrivate?, license?, tags? | 201 Created → repo object | | GET | /api/v1/repos/:owner/:name | — | 200 OK → full repo metadata | | PATCH | /api/v1/repos/:owner/:name | description?, isPrivate?, license?, tags? | 200 OK | | DELETE | /api/v1/repos/:owner/:name | — | 204 No Content |