2.3.3.5.5. Issues

  • Relative Filepath[1]: dev/issue.yaml

  • Pre-configured: True

[1]: Filepath is relative to the root of the control center directory.

$schema: https://json-schema.org/draft/2020-12/schema
title: Issue Configurations
description: Configurations for GitHub Issues
type: object
default: { }
additionalProperties: false
properties:
  blank_enabled:
    description: Whether to allow submission of free-form issues
    type: boolean
    default: false
  contact_links:
    description: External links to be shown on the issue template chooser
    type: array
    default: [ ]
    uniqueItems: true
    items:
      type: object
      additionalProperties: false
      properties:
        name:
          description: Title shown on the issue template chooser
          type: string
        about:
          description: Description shown on the issue template chooser
          type: string
        url:
          description: URL to the external link
          type: string
          format: uri
      required: [ name, about, url ]
  forms:
    description: Declarations of issue forms and their configurations
    type: array
    default: [ ]
    uniqueItems: true
    items:
      type: object
      additionalProperties: false
      properties:
        id:
          description: >-
            Unique identifier of the issue form,
            used to reference the form in other places
            (e.g. as a key of the `maintainer.issue` object, to assign the issue to a maintainer),
            and to generate the filename of the issue template's YAML file.
          type: string
          pattern: '^[a-zA-Z0-9][a-zA-Z0-9_-]*$'
        primary_type:
          type: string
        subtype:
          type: string
          default: ''
        pre_process:
          $ref: '#/definitions/pre_process'
        post_process:
          type: object
          additionalProperties: false
          properties:
            assign_creator:
              type: object
              additionalProperties: false
              properties:
                if_checkbox:
                  type: object
                  additionalProperties: false
                  properties:
                    id:
                      type: string
                    number:
                      type: integer
                      default: 1
                    is_checked:
                      type: boolean
                      default: true
                  required: [ id, number, is_checked ]
            body:
              type: string
        name:
          type: string
        description:
          type: string
        labels:
          type: array
          uniqueItems: true
          minItems: 1
          items:
              type: string
        projects:
          type: array
          uniqueItems: true
          items:
              type: string
        title:
          type: string
        body:
          type: array
          minItems: 1
          items:
            type: object
            additionalProperties: false
            properties:
              type:
                type: string
                enum: [ checkboxes, dropdown, input, markdown, textarea ]
              id:
                type: string
                pattern: ^[A-Za-z][A-Za-z0-9_-]*$
              attributes:
                type: object
                additionalProperties: true
              validations:
                type: object
                additionalProperties: true
              pre_process:
                $ref: '#/definitions/pre_process'
            required: [ type, attributes ]
      required: [ id, primary_type, name, description, body ]
  dev_protocol:
    description: Development process protocol specifications
    type: object
    default: { }
    additionalProperties: false
    properties:
      prerelease_temp_path:
        description: >-
          Path to the file relative to the repository root
          for storing pre-release development process protocols.
        type: string
        default: docs/prerelease_dev_protocols.md
      template:
        type: object
        default: { }
        additionalProperties: false
        properties:
          title:
            type: string
            default: Development Process Protocol
          body:
            type: string
            default: |
              ## Plan
              {issue_body}
              
              
              ## Software Requirements Specification
              TBD
              
              
              ## Design Specification
              TBD
              
              
              ## Implementation
              TBD
              {primary_commit_summary}
              {secondary_commits_tasklist}
              
              
              ## References
              {references}
              
              
              ## Timeline
              {timeline}
        required: [ title, body ]
    required: [ prerelease_temp_path, template ]
required: [ blank_enabled, contact_links, forms, dev_protocol ]

definitions:
  pre_process:
    type: object
    additionalProperties: false
    properties:
      if_any:
        type: array
        uniqueItems: true
        minItems: 1
        items:
          type: string
      if_all:
        type: array
        uniqueItems: true
        minItems: 1
        items:
          type: string
      if_none:
        type: array
        uniqueItems: true
        minItems: 1
        items:
          type: string
      if_equal:
        type: array
        uniqueItems: true
        minItems: 1
        items:
          type: string
    oneOf:
      - required: [ if_any ]
      - required: [ if_all ]
      - required: [ if_none ]
      - required: [ if_equal ]
blank_enabled: false
contact_links: []
forms: []
dev_protocol:
  prerelease_temp_path: docs/prerelease_dev_protocols.md
  template:
    title: Development Process Protocol
    body: "## Plan\n{issue_body}\n\n\n## Software Requirements Specification\nTBD\n
      \n\n## Design Specification\nTBD\n\n\n## Implementation\nTBD\n{primary_commit_summary}\n
      {secondary_commits_tasklist}\n\n\n## References\n{references}\n\n\n## Timeline\n\
      {timeline}\n"

Forms

Configurations for issue forms.

Config

Configurations for issue template chooser.