JobMessageBase currently includes repository and owner names plus the composite JobWorkflowRef. It would be useful for the runner scale-set service to expose the corresponding immutable identifiers, default branch, and workflow path directly:
RepositoryDefaultBranch string `json:"repositoryDefaultBranch"`
RepositoryID int64 `json:"repositoryId"`
OwnerID int64 `json:"ownerId"`
JobWorkflowPath string `json:"jobWorkflowPath"`
Justifications:
RepositoryDefaultBranch: Enables consumers to apply default-branch fallback and policy semantics without making a separate repository API request.
RepositoryID: Provides a stable repository identity across renames and transfers, making authorization, caching, and correlation safer than relying solely on names.
OwnerID: Provides the same stable identity for the owning user or organization, including when an owner is renamed.
JobWorkflowPath: Exposes the workflow definition independently of its ref, avoiding parsing the composite JobWorkflowRef and providing a stable, low-cardinality value for telemetry and correlation.
JobMessageBasecurrently includes repository and owner names plus the compositeJobWorkflowRef. It would be useful for the runner scale-set service to expose the corresponding immutable identifiers, default branch, and workflow path directly:Justifications:
RepositoryDefaultBranch: Enables consumers to apply default-branch fallback and policy semantics without making a separate repository API request.RepositoryID: Provides a stable repository identity across renames and transfers, making authorization, caching, and correlation safer than relying solely on names.OwnerID: Provides the same stable identity for the owning user or organization, including when an owner is renamed.JobWorkflowPath: Exposes the workflow definition independently of its ref, avoiding parsing the compositeJobWorkflowRefand providing a stable, low-cardinality value for telemetry and correlation.