{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/harness/main/json-schema/harness-repositories-revision-metadata-schema.json",
  "title": "repositoriesRevisionMetadata",
  "description": "RevisionMetadata contains metadata for a specific revision in a Git repository. This field is used by the\nSource Hydrator feature which may be removed in the future.",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/harness-applications-api-openapi.yml#/components/schemas/repositoriesRevisionMetadata",
  "type": "object",
  "properties": {
    "author": {
      "type": "string",
      "title": "who authored this revision,\ntypically their name and email, e.g. \"John Doe <john_doe@my-company.com>\",\nbut might not match this example"
    },
    "date": {
      "$ref": "#/$defs/v1Time"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Tags specifies any tags currently attached to the revision\nFloating tags can move from one revision to another"
    },
    "message": {
      "type": "string",
      "title": "Message contains the message associated with the revision, most likely the commit message.\nThe message is truncated to the first newline or 64 characters (which ever comes first)"
    },
    "signatureInfo": {
      "type": "string",
      "description": "SignatureInfo contains a hint on the signer if the revision was signed with GPG, and signature verification is enabled."
    },
    "references": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/repositoriesRevisionReference"
      },
      "description": "References contains references to information that's related to this commit in some way."
    }
  },
  "$defs": {
    "repositoriesCommitMetadata": {
      "type": "object",
      "properties": {
        "author": {
          "type": "string",
          "description": "Author is the author of the commit, i.e. `git show -s --format=%an <%ae>`.\nMust be formatted according to RFC 5322 (mail.Address.String()).\nComes from the Argocd-reference-commit-author trailer."
        },
        "date": {
          "type": "string",
          "description": "Date is the date of the commit, formatted as by `git show -s --format=%aI` (RFC 3339).\nIt can also be an empty string if the date is unknown.\nComes from the Argocd-reference-commit-date trailer."
        },
        "subject": {
          "type": "string",
          "description": "Subject is the commit message subject line, i.e. `git show -s --format=%s`.\nComes from the Argocd-reference-commit-subject trailer."
        },
        "body": {
          "type": "string",
          "description": "Body is the commit message body minus the subject line, i.e. `git show -s --format=%b`.\nComes from the Argocd-reference-commit-body trailer."
        },
        "sha": {
          "type": "string",
          "description": "SHA is the commit hash.\nComes from the Argocd-reference-commit-sha trailer."
        },
        "repoUrl": {
          "type": "string",
          "description": "RepoURL is the URL of the repository where the commit is located.\nComes from the Argocd-reference-commit-repourl trailer.\nThis value is not validated and should not be used to construct UI links unless it is properly\nvalidated and/or sanitized first."
        }
      },
      "description": "CommitMetadata contains metadata about a commit that is related in some way to another commit."
    },
    "repositoriesRevisionReference": {
      "type": "object",
      "properties": {
        "commit": {
          "$ref": "#/$defs/repositoriesCommitMetadata"
        }
      },
      "description": "RevisionReference contains a reference to a some information that is related in some way to another commit. For now,\nit supports only references to a commit. In the future, it may support other types of references."
    },
    "v1Time": {
      "type": "object",
      "properties": {
        "seconds": {
          "type": "string",
          "format": "int64",
          "description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive."
        },
        "nanos": {
          "type": "integer",
          "format": "int32",
          "description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive. This field may be limited in precision depending on context."
        }
      },
      "description": "Time is a wrapper around time.Time which supports correct\nmarshaling to YAML and JSON.  Wrappers are provided for many\nof the factory methods that the time package offers.\n\n+protobuf.options.marshal=false\n+protobuf.as=Timestamp\n+protobuf.options.(gogoproto.goproto_stringer)=false"
    }
  }
}