1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# Meritocrab System Configuration Example
# Copy this file to `config.toml` and customize for your deployment
# ============================================================================
# Server Configuration
# ============================================================================
[]
# Host address to bind the server to
# Use "0.0.0.0" to accept connections from any network interface
# Use "127.0.0.1" for localhost-only access
= "127.0.0.1"
# Port number for the HTTP server
= 8080
# ============================================================================
# Database Configuration
# ============================================================================
[]
# Database connection URL
# For SQLite (development):
# url = "sqlite://meritocrab.db"
# For PostgreSQL (production):
# url = "postgres://user:password@localhost/socialcredit"
= "sqlite://meritocrab.db"
# Maximum number of database connections in the pool
= 10
# ============================================================================
# GitHub Configuration
# ============================================================================
[]
# GitHub App ID (required for GitHub App authentication)
= 123456
# GitHub App installation ID (required for accessing repositories)
= 789012
# Path to GitHub App private key file (PEM format)
= "./github-app-private-key.pem"
# Webhook secret for HMAC-SHA256 signature verification
# Generate a secure random string and configure it in your GitHub webhook settings
= "your-webhook-secret-here"
# OAuth Client ID for maintainer dashboard authentication
# Create a GitHub OAuth App and get the client ID
= "your-oauth-client-id"
# OAuth Client Secret for maintainer dashboard authentication
= "your-oauth-client-secret"
# OAuth Redirect URL (must match the OAuth App configuration)
= "http://localhost:8080/auth/callback"
# GitHub API base URL (use this for GitHub Enterprise)
# Default: "https://api.github.com"
# api_url = "https://api.github.com"
# ============================================================================
# LLM Configuration
# ============================================================================
# LLM provider configuration for content quality evaluation
# Three options: "mock" (for testing), "claude", or "openai"
# Option 1: Mock evaluator (for development and testing)
[]
= "mock"
# Optional: set default classification for all evaluations
# default_classification = "high"
# Option 2: Claude AI (production)
# [llm]
# provider = "claude"
# api_key = "your-claude-api-key-here"
# model = "claude-3-5-sonnet-20241022"
# # Optional: custom API endpoint
# # base_url = "https://api.anthropic.com"
# Option 3: OpenAI (production)
# [llm]
# provider = "openai"
# api_key = "your-openai-api-key-here"
# model = "gpt-4o"
# # Optional: custom API endpoint
# # base_url = "https://api.openai.com"
# Maximum number of concurrent LLM evaluation requests
# Prevents rate limiting and controls resource usage
# Default: 10
= 10
# ============================================================================
# Credit Scoring Configuration (Default Repository Settings)
# ============================================================================
# Individual repositories can override these settings via .meritocrab.toml
[]
# Starting credit for new contributors
= 100
# Minimum credit required to open pull requests
# Contributors with credit below this threshold will have PRs auto-closed
= 50
# Credit level at which auto-blacklist triggers
# Contributors at or below this level are shadow-blacklisted
= 0
# Scoring deltas for PR opened events
[]
= -25 # Spam PRs (e.g., promotional links, nonsense)
= -5 # Low quality PRs (e.g., trivial changes, poor quality)
= 5 # Acceptable PRs (e.g., valid contributions)
= 15 # High quality PRs (e.g., well-documented, significant value)
# Scoring deltas for comment events
[]
= -10 # Spam comments (e.g., promotional, off-topic)
= -2 # Low quality comments (e.g., unhelpful, superficial)
= 1 # Acceptable comments (e.g., valid feedback)
= 3 # High quality comments (e.g., insightful, constructive)
# Scoring deltas for PR merged events
[]
= 0 # Merged PRs are always positive contributions
= 0
= 20 # Standard merged PR bonus
= 20
# Scoring deltas for review submitted events
[]
= 0 # Reviews are always positive contributions
= 0
= 5 # Standard review bonus
= 5