AUTHORS.md · Schema

AllContributorsConfig

Schema for the .all-contributorsrc configuration file used by the All Contributors specification and bot to manage open-source project contributor attribution.

AttributionDocumentationOpen SourceRepositoryFile FormatContributor ManagementLicense ComplianceStandard

Properties

Name Type Description
projectName string Name of the project repository.
projectOwner string GitHub username or organization that owns the project.
repoType string Type of repository hosting service.
repoHost string Hostname of the repository hosting service.
files array List of files to update with contributor tables.
imageSize integer Size in pixels for contributor avatar images.
commit boolean Whether to automatically commit changes when contributors are added.
commitConvention string Commit message convention to follow.
contributorsPerLine integer Maximum number of contributors to display per line in the table.
badgeTemplate string Custom template for the contributors badge markdown.
contributorTemplate string Custom template for individual contributor entries in the table.
types object Custom contribution type definitions extending the default types.
contributors array List of contributors to the project.
View JSON Schema on GitHub

JSON Schema

all-contributors-config-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/authors-md/refs/heads/main/json-schema/all-contributors-config-schema.json",
  "title": "AllContributorsConfig",
  "description": "Schema for the .all-contributorsrc configuration file used by the All Contributors specification and bot to manage open-source project contributor attribution.",
  "type": "object",
  "properties": {
    "projectName": {
      "type": "string",
      "description": "Name of the project repository.",
      "example": "all-contributors"
    },
    "projectOwner": {
      "type": "string",
      "description": "GitHub username or organization that owns the project.",
      "example": "all-contributors"
    },
    "repoType": {
      "type": "string",
      "description": "Type of repository hosting service.",
      "enum": ["github", "gitlab", "bitbucket"],
      "example": "github"
    },
    "repoHost": {
      "type": "string",
      "description": "Hostname of the repository hosting service.",
      "example": "https://github.com"
    },
    "files": {
      "type": "array",
      "description": "List of files to update with contributor tables.",
      "items": {
        "type": "string"
      },
      "example": ["README.md"]
    },
    "imageSize": {
      "type": "integer",
      "description": "Size in pixels for contributor avatar images.",
      "example": 100
    },
    "commit": {
      "type": "boolean",
      "description": "Whether to automatically commit changes when contributors are added.",
      "example": false
    },
    "commitConvention": {
      "type": "string",
      "description": "Commit message convention to follow.",
      "enum": ["none", "angular", "atom", "ember", "eslint", "jshint", "gitmoji"],
      "example": "none"
    },
    "contributorsPerLine": {
      "type": "integer",
      "description": "Maximum number of contributors to display per line in the table.",
      "example": 7
    },
    "badgeTemplate": {
      "type": "string",
      "description": "Custom template for the contributors badge markdown.",
      "example": "[![All Contributors](https://img.shields.io/badge/all_contributors-<%= contributors.length %>-orange.svg?style=flat-square)](#contributors-)"
    },
    "contributorTemplate": {
      "type": "string",
      "description": "Custom template for individual contributor entries in the table.",
      "example": "<a href=\"<%= contributor.profile %>\"><img src=\"<%= contributor.avatar_url %>\" width=\"<%= options.imageSize %>px;\" alt=\"\"/><br /><sub><b><%= contributor.name %></b></sub></a>"
    },
    "types": {
      "type": "object",
      "description": "Custom contribution type definitions extending the default types.",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Emoji symbol for this contribution type."
          },
          "description": {
            "type": "string",
            "description": "Human-readable description of this contribution type."
          },
          "link": {
            "type": "string",
            "description": "URL template for linking this contribution type."
          }
        }
      }
    },
    "contributors": {
      "type": "array",
      "description": "List of contributors to the project.",
      "items": {
        "$ref": "#/$defs/Contributor"
      }
    }
  },
  "required": ["projectName", "projectOwner", "contributors"],
  "$defs": {
    "Contributor": {
      "type": "object",
      "title": "Contributor",
      "description": "An individual contributor to the project with their profile information and contribution types.",
      "properties": {
        "login": {
          "type": "string",
          "description": "GitHub/GitLab username of the contributor.",
          "example": "jsmith"
        },
        "name": {
          "type": "string",
          "description": "Full display name of the contributor.",
          "example": "Jane Smith"
        },
        "avatar_url": {
          "type": "string",
          "description": "URL to the contributor's avatar image.",
          "format": "uri",
          "example": "https://avatars.githubusercontent.com/u/12345?v=4"
        },
        "profile": {
          "type": "string",
          "description": "URL to the contributor's public profile page.",
          "format": "uri",
          "example": "https://github.com/jsmith"
        },
        "contributions": {
          "type": "array",
          "description": "List of contribution types made by this contributor.",
          "items": {
            "type": "string",
            "enum": [
              "audio",
              "a11y",
              "bug",
              "blog",
              "business",
              "code",
              "content",
              "data",
              "doc",
              "design",
              "example",
              "eventOrganizing",
              "financial",
              "fundingFinding",
              "ideas",
              "infra",
              "maintenance",
              "mentoring",
              "platform",
              "plugin",
              "projectManagement",
              "promotion",
              "question",
              "research",
              "review",
              "security",
              "talk",
              "test",
              "tool",
              "translation",
              "tutorial",
              "userTesting",
              "video"
            ]
          },
          "example": ["code", "doc", "review"]
        }
      },
      "required": ["login", "name", "contributions"]
    },
    "AuthorEntry": {
      "type": "object",
      "title": "AuthorEntry",
      "description": "A structured entry representing an author or contributor in an AUTHORS.md file.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Full name of the author.",
          "example": "Jane Smith"
        },
        "email": {
          "type": "string",
          "description": "Email address of the author.",
          "format": "email",
          "example": "[email protected]"
        },
        "url": {
          "type": "string",
          "description": "Personal website or profile URL of the author.",
          "format": "uri",
          "example": "https://jsmith.example.com"
        },
        "contributions": {
          "type": "string",
          "description": "Description of which files or portions of the project the author contributed.",
          "example": "Initial implementation of the core parser module and authentication system."
        },
        "organization": {
          "type": "string",
          "description": "Organization or employer affiliation of the author.",
          "example": "Example Corp"
        },
        "role": {
          "type": "string",
          "description": "Role of the author in the project.",
          "enum": ["author", "contributor", "maintainer", "emeritus"],
          "example": "author"
        }
      },
      "required": ["name"]
    }
  }
}