governance/openstack_governance/projects_schema.yaml
Ghanshyam Mann 5fd05e375a Add TC liaison in DPL model implementation
As per new policy, TC liaison is mandatory for all DPL
model projects, this change adds the same in its
implementation. Also, assigning the same for existing
DPL projects. All new request to the DPL model should have
TC liaions as required.

Change-Id: Ib6067a45002bad0d2ee658de96ebe79aa86e223a
2024-06-04 17:43:26 +00:00

138 lines
3.1 KiB
YAML

---
$schema: "http://json-schema.org/schema#"
$id: "https://opendev.org/openstack/releases/src/branch/master/README.rst"
contact_schema: &contact_schema
type: "array"
items:
type: "object"
required:
- name
- email
additionalProperties: false
properties:
name:
type: "string"
irc:
type: "string"
email:
type: "string"
format: "email"
minItems: 1
uniqueItems: true
additionalProperties:
# Do not allow any properties not defined here. This lets us catch
# typos.
additionalProperties: false
oneOf:
- required:
- ptl
- deliverables
- url
- mission
- required:
- leadership_type
- liaisons
- deliverables
- url
- mission
properties:
ptl:
type: "object"
required:
- name
- email
additionalProperties: false
properties:
name:
type: "string"
irc:
type: "string"
email:
type: "string"
format: "email"
leadership_type:
type: "string"
enum:
- distributed
appointed:
type: "array"
items:
type: "string"
irc-channel:
type: "string"
service:
type: "string"
url:
type: "string"
liaisons:
type: "object"
properties:
tc_members:
type: "array"
items:
type: "string"
uniqueItems: true
# TODO(gmann): Make release, tact-sig,
# and, security liaison as required for
# distributed leadership type.
release: *contact_schema
tact-sig: *contact_schema
security: *contact_schema
tc-liaison: *contact_schema
events: *contact_schema
project_update_onboarding: *contact_schema
meeting_facilitator: *contact_schema
bug_deputy: *contact_schema
rfp_coordinator: *contact_schema
additionalProperties: false
mission:
type: "string"
deliverables:
type: "object"
additionalProperties:
type: "object"
required:
- repos
additionalProperties: false
properties:
repos:
type: "array"
items:
type: "string"
pattern: "^[^/]+/[^/]+$"
minItems: 1
uniqueItems: true
release-management:
type: "string"
enum:
- none
- deprecated
- external
deprecated:
type: "string"
extra-acs:
type: "array"
items:
type: "object"
required:
- name
- email
- expires-in
additionalProperties: false
properties:
name:
type: "string"
email:
type: "string"
format: "email"
expires-in:
type: "string"
pattern: >-
^(January |February |March |April |May |June |July |August
|September |October |November |December )2[0-9]{3}$
comment:
type: "string"