aboutsummaryrefslogtreecommitdiff
path: root/gitinfo.schema.json
blob: 1445db00c1e202cfa3e34e03e12bb0fdb456f5e5 (plain)
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
138
139
140
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://git.zue.dev/gitinfo/plain/gitinfo.schema.json",
  "title": ".gitinfo",
  "description": "Schema for the .gitinfo file specification",
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string",
      "format": "uri",
      "description": "Reference to the JSON Schema for validation and editor support."
    },
    "root": {
      "type": "string",
      "format": "uri",
      "description": "The URL of the root repository. This is the main hosting location that acts as the source of truth for the codebase."
    },
    "gitmail": {
      "type": "string",
      "format": "email",
      "description": "An email address associated with the repository for submitting git patches."
    },
    "icon": {
      "type": "string",
      "description": "A public URL or data URI formatted image (PNG, SVG, etc.) representing an icon for the repository.",
      "pattern": "^(https?://|data:image/)"
    },
    "description": {
      "type": "string",
      "description": "A brief description of the repository's purpose or contents."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "minItems": 1,
      "description": "A list of tags or keywords associated with the repository for easier categorization and searchability."
    },
    "mirrors": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "minItems": 1,
      "description": "A list of URLs representing mirror repositories."
    },
    "maintainers": {
      "type": "array",
      "items": {
        "type": "array",
        "items": [
          {
            "type": "string",
            "description": "Maintainer name"
          },
          {
            "type": "string",
            "format": "email",
            "description": "Maintainer email"
          }
        ],
        "minItems": 2,
        "maxItems": 2
      },
      "minItems": 1,
      "description": "A list of maintainers or contributors to the repository, provided as a 2D array with names and email addresses in the format [[name, email], ...]."
    },
    "license": {
      "type": "string",
      "description": "The license under which the repository is distributed. Use the short identifier from SPDX License List for consistency.",
      "examples": [
        "MIT",
        "Apache-2.0",
        "GPL-2.0-only",
        "GPL-2.0-or-later",
        "GPL-3.0-only",
        "GPL-3.0-or-later",
        "LGPL-2.1-only",
        "LGPL-2.1-or-later",
        "LGPL-3.0-only",
        "LGPL-3.0-or-later",
        "BSD-2-Clause",
        "BSD-3-Clause",
        "ISC",
        "MPL-2.0",
        "AGPL-3.0-only",
        "AGPL-3.0-or-later",
        "Unlicense",
        "CC0-1.0",
        "CC-BY-4.0",
        "CC-BY-SA-4.0",
        "WTFPL",
        "Zlib",
        "BSL-1.0"
      ]
    },
    "homepage": {
      "type": "string",
      "format": "uri",
      "description": "The URL of the project's homepage or documentation site, if separate from the repository."
    },
    "funding": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "minItems": 1,
      "description": "A list of URLs for sponsorship or funding platforms (e.g., GitHub Sponsors, Open Collective, Patreon)."
    },
    "version": {
      "type": "string",
      "description": "The version of the .gitinfo schema being used. Can be a semver string or a git commit hash."
    },
    "ci": {
      "type": "string",
      "format": "uri",
      "description": "The URL of the CI/CD platform or pipeline status page for the repository."
    },
    "issues": {
      "type": "string",
      "format": "uri",
      "description": "The URL of the issue tracker, if different from the root repository."
    },
    "chat": {
      "type": "string",
      "format": "uri",
      "description": "The URL of a community chat platform (e.g., Discord, Matrix, Slack, IRC)."
    },
    "docs": {
      "type": "string",
      "format": "uri",
      "description": "The URL of the project's documentation site."
    }
  },
  "additionalProperties": false
}