Blueprint
A blueprint is a set of instructions telling the bot what to check out and how. It provides the URIs for all repositories to check out files from, the branch to check out, the relative layout on disk, and the relative location of the project or workspace to build out of. It also can include the authentication information to use when checking out, although this information is sent only to the server and is never returned from it. Additionally, if a bot already has authentication information, it is merged into new blueprints provided where it is missing when the bot is being patched. Blueprints allow for representing arbitrarily complex check out scenarios and the examples here show how to construct authenticated ones for a single Git repository, a workspace that checks out files from two repositories and a single Subversion repository.
Simple Git Example
{/* Unique identifier for each blueprintValue: A valid UUID*/"DVTSourceControlWorkspaceBlueprintIdentifierKey": "34D1C3F9-E33F-4935-A5E4-7154F4309EDF",/* LocationsValue: dictionary of string (repository identifier) to <Location>Location:Required:DVTSourceControlWorkspaceBlueprintLocationTypeKey:"DVTSourceControlBranch" (Branch) |"DVTSourceControlLockedRevisionLocation" (Detached Head)Required if DVTSourceControlWorkspaceBlueprintLocationTypeKey is DVTSourceControlBranch:DVTSourceControlBranchIdentifierKey: string (branch name)DVTSourceControlBranchOptionsKey:4 (normal remote branch) |5 (primary remote branch)Required if DVTSourceControlWorkspaceBlueprintLocationTypeKey is DVTSourceControlLockedRevisionLocation:DVTSourceControlLocationRevisionKey: string (revision hash)*/"DVTSourceControlWorkspaceBlueprintLocationsKey": {"47B0B4A0E6B2316DF0F333C188B6423A9479B516": {"DVTSourceControlBranchIdentifierKey": "master","DVTSourceControlBranchOptionsKey": 5,"DVTSourceControlWorkspaceBlueprintLocationTypeKey": "DVTSourceControlBranch"}},/* The name for the blueprint, typically the name of the Xcode project or workspaceValue: string*/"DVTSourceControlWorkspaceBlueprintNameKey": "Project",/* The identifier of the working copy containing the Xcode project or workspace to build, considered the primary working copyValue: string (repository identifier)*/"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey": "47B0B4A0E6B2316DF0F333C188B6423A9479B516",/* The relative path in the primary working copy to the Xcode project or workspace to buildValue: string (relative path)*/"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey": "Project.xcworkspace",/* RepositoriesValue: array of <Repository>Repository:DVTSourceControlWorkspaceBlueprintRemoteRepositoryEnforceTrustCertFingerprintKey: true (requied)DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey: string (consistent identifier within blueprint)DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey: "com.apple.dt.Xcode.sourcecontrol.Git" (Git)DVTSourceControlWorkspaceBlueprintRemoteRepositoryTrustedCertFingerprintKey: a string of one of the following fingerprint options:RSA (SSH servers) |MD5 (self-signed SSL server certificates)DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey: string (URI)*/"DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey": [{"DVTSourceControlWorkspaceBlueprintRemoteRepositoryEnforceTrustCertFingerprintKey": true,"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey": "47B0B4A0E6B2316DF0F333C188B6423A9479B516","DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey": "com.apple.dt.Xcode.sourcecontrol.Git","DVTSourceControlWorkspaceBlueprintRemoteRepositoryTrustedCertFingerprintKey": "174F678B9ED220D9C8B2A47F42392A44","DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey": "git@server:/repo.git"}],/* Authentication StrategiesValue: dictionary of string (repository identifier) to <Authentication>Authentication:Required:DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationTypeKey:"DVTSourceControlAuthenticationStrategy" (Anonymous) |"DVTSourceControlBasicAuthenticationStrategy" (Username and Password) |"DVTSourceControlSSHKeysAuthenticationStrategy" (SSH Keys)Required only for DVTSourceControlBasicAuthenticationStrategy and DVTSourceControlSSHKeysAuthenticationStrategy:DVTSourceControlWorkspaceBlueprintRemoteRepositoryPasswordKey: string (Password or Passphrase)DVTSourceControlWorkspaceBlueprintRemoteRepositoryUsernameKey: string (Username)Required only for DVTSourceControlSSHKeysAuthenticationStrategy:DVTSourceControlWorkspaceBlueprintRemoteRepositoryPublicKeyDataKey: string (Base64-encoded public key data)DVTSourceControlWorkspaceBlueprintRemoteRepositoryPrivateKeyDataKey: string (Base64-encoded private key data)*/"DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationStrategiesKey": {"47B0B4A0E6B2316DF0F333C188B6423A9479B516": {"DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationTypeKey": "DVTSourceControlBasicAuthenticationStrategy","DVTSourceControlWorkspaceBlueprintRemoteRepositoryPasswordKey": "foobar","DVTSourceControlWorkspaceBlueprintRemoteRepositoryUsernameKey": "git"}},/* The blueprint format versionValue: 204*/"DVTSourceControlWorkspaceBlueprintVersion": 204,/* Working Copy LayoutValue: dictionary of string (repository identifier) to string (relative path of checkout)*/"DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey": {"47B0B4A0E6B2316DF0F333C188B6423A9479B516": "Project/"},}
Multi Repository Example
{/* Unique identifier for each blueprintValue: A valid UUID*/"DVTSourceControlWorkspaceBlueprintIdentifierKey": "7A06494E-53C9-403D-9C19-ECB73D64AD28",/* LocationsValue: dictionary of string (repository identifier) to <Location>Location:Required:DVTSourceControlWorkspaceBlueprintLocationTypeKey:"DVTSourceControlBranch" (Branch) |"DVTSourceControlPathLocation" (Path, Subversion-only) |"DVTSourceControlLockedRevisionLocation" (Revision, Git-only)Required if DVTSourceControlWorkspaceBlueprintLocationTypeKey is DVTSourceControlBranch:DVTSourceControlBranchIdentifierKey: string (branch name)DVTSourceControlBranchOptionsKey:4 (normal remote branch) |5 (primary remote branch)Required if DVTSourceControlWorkspaceBlueprintLocationTypeKey is DVTSourceControlLockedRevisionLocation:DVTSourceControlLocationRevisionKey: string (revision hash)Required if DVTSourceControlWorkspaceBlueprintLocationTypeKey is DVTSourceControlPathLocation:DVTSourceControlPathIdentifierKey: string (relative path in repository)*/"DVTSourceControlWorkspaceBlueprintLocationsKey": {"47B0B4A0E6B2316DF0F333C188B6423A9479B516": {"DVTSourceControlBranchIdentifierKey": "master","DVTSourceControlBranchOptionsKey": 5,"DVTSourceControlWorkspaceBlueprintLocationTypeKey": "DVTSourceControlBranch"},"360BCE85-D2C0-4DE1-937B-4A56E07173E6": {"DVTSourceControlBranchIdentifierKey": "trunk","DVTSourceControlBranchOptionsKey": 5,"DVTSourceControlWorkspaceBlueprintLocationTypeKey": "DVTSourceControlBranch"}},/* Working Copy Repository LocationsValue: dictionary of string (repository identifier) to <Branch and Tag Locations>Branch and Tag Locations:DVTSourceControlWorkingCopyRepositoryBranchesLocationKey: string (relative path in repository to branches folder)DVTSourceControlWorkingCopyRepositoryTagsLocationKey: string (relative path in repository to tags folder)DVTSourceControlWorkingCopyRepositoryPrimaryBranchLocationKey: string (relative path in repository to trunk folder)*/"DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {"34768997-536d-3cd6-3966-ce57b7db7bff" : {"DVTSourceControlWorkingCopyRepositoryBranchesLocationKey" : "branches","DVTSourceControlWorkingCopyRepositoryTagsLocationKey" : "tags","DVTSourceControlWorkingCopyRepositoryPrimaryBranchLocationKey" : "trunk"}},/* The name for the blueprint, typically the name of the Xcode project or workspaceValue: string*/"DVTSourceControlWorkspaceBlueprintNameKey": "MultiProject",/* The identifier of the working copy containing the Xcode project or workspace to build, considered the primary working copyValue: string (repository identifier)*/"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey": "47B0B4A0E6B2316DF0F333C188B6423A9479B516",/* The relative path in the primary working copy to the Xcode project or workspace to buildValue: string (relative path)*/"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey": "MultiProject.xcworkspace",/* RepositoriesValue: array of <Repository>Repository:DVTSourceControlWorkspaceBlueprintRemoteRepositoryEnforceTrustCertFingerprintKey: true (requied)DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey: string (consistent identifier within blueprint)DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey: "com.apple.dt.Xcode.sourcecontrol.Git" (Git)DVTSourceControlWorkspaceBlueprintRemoteRepositoryTrustedCertFingerprintKey: a string of one of the following fingerprint options:RSA (SSH servers) |MD5 (self-signed SSL server certificates)DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey: string (URI)*/"DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey": [{"DVTSourceControlWorkspaceBlueprintRemoteRepositoryEnforceTrustCertFingerprintKey": true,"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey": "47B0B4A0E6B2316DF0F333C188B6423A9479B516","DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey": "com.apple.dt.Xcode.sourcecontrol.Git","DVTSourceControlWorkspaceBlueprintRemoteRepositoryTrustedCertFingerprintKey": "174F678B9ED220D9C8B2A47F42392A44","DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey": "git@server:/multiproject.git"},{"DVTSourceControlWorkspaceBlueprintRemoteRepositoryEnforceTrustCertFingerprintKey": true,"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey": "360BCE85-D2C0-4DE1-937B-4A56E07173E6","DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey": "com.apple.dt.Xcode.sourcecontrol.Subversion","DVTSourceControlWorkspaceBlueprintRemoteRepositoryTrustedCertFingerprintKey": "174F678B9ED220D9C8B2A47F42392A44","DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey": "svn+ssh:\/\/server.example.com\/svn\/otherproject"}],/* Authentication StrategiesValue: dictionary of string (repository identifier) to <Authentication>Authentication:Required:DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationTypeKey:"DVTSourceControlAuthenticationStrategy" (Anonymous) |"DVTSourceControlBasicAuthenticationStrategy" (Username and Password) |"DVTSourceControlSSHKeysAuthenticationStrategy" (SSH Keys)Required only for DVTSourceControlBasicAuthenticationStrategy and DVTSourceControlSSHKeysAuthenticationStrategy:DVTSourceControlWorkspaceBlueprintRemoteRepositoryPasswordKey: string (Password or Passphrase)DVTSourceControlWorkspaceBlueprintRemoteRepositoryUsernameKey: string (Username)Required only for DVTSourceControlSSHKeysAuthenticationStrategy:DVTSourceControlWorkspaceBlueprintRemoteRepositoryPublicKeyDataKey: string (Base64-encoded public key data)DVTSourceControlWorkspaceBlueprintRemoteRepositoryPrivateKeyDataKey: string (Base64-encoded private key data)*/"DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationStrategiesKey": {"47B0B4A0E6B2316DF0F333C188B6423A9479B516": {"DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationTypeKey": "DVTSourceControlSSHKeysAuthenticationStrategy","DVTSourceControlWorkspaceBlueprintRemoteRepositoryPasswordKey": "MyPassphrase","DVTSourceControlWorkspaceBlueprintRemoteRepositoryUsernameKey": "me","DVTSourceControlWorkspaceBlueprintRemoteRepositoryPublicKeyDataKey": "c3NoLXJzYSBBQUFBQjNOemp...","DVTSourceControlWorkspaceBlueprintRemoteRepositoryPrivateKeyDataKey": "LS0tLS1CRUdJTiBkFURSBLR..."},"360BCE85-D2C0-4DE1-937B-4A56E07173E6": {"DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationTypeKey": "DVTSourceControlSSHKeysAuthenticationStrategy","DVTSourceControlWorkspaceBlueprintRemoteRepositoryPasswordKey": "MyPassphrase","DVTSourceControlWorkspaceBlueprintRemoteRepositoryUsernameKey": "me","DVTSourceControlWorkspaceBlueprintRemoteRepositoryPublicKeyDataKey": "c3NoLXJzYSBBQUFBQjNOemp...","DVTSourceControlWorkspaceBlueprintRemoteRepositoryPrivateKeyDataKey": "LS0tLS1CRUdJTiBkFURSBLR..."}},/* The blueprint format versionValue: 204*/"DVTSourceControlWorkspaceBlueprintVersion": 204,/* Working Copy LayoutValue: dictionary of string (repository identifier) to string (relative path of checkout)*/"DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey": {"47B0B4A0E6B2316DF0F333C188B6423A9479B516": "Project/","360BCE85-D2C0-4DE1-937B-4A56E07173E6": "OtherProject/"},}
Simple Subversion (svn) Example
{/* Unique identifier for each blueprintValue: A valid UUID*/"DVTSourceControlWorkspaceBlueprintIdentifierKey": "D4124FDB-5D40-4170-9269-CAD0A6AB9493",/* LocationsValue: dictionary of string (repository identifier) to <Location>Location:Required:DVTSourceControlWorkspaceBlueprintLocationTypeKey:"DVTSourceControlBranch" (Branch) |"DVTSourceControlPathLocation" (Path)Required if DVTSourceControlWorkspaceBlueprintLocationTypeKey is DVTSourceControlBranch:DVTSourceControlBranchIdentifierKey: string (branch name)DVTSourceControlBranchOptionsKey:4 (normal remote branch) |5 (primary remote branch, i.e. trunk)Required if DVTSourceControlWorkspaceBlueprintLocationTypeKey is DVTSourceControlPathLocation:DVTSourceControlPathIdentifierKey: string (relative path in repository)*/"DVTSourceControlWorkspaceBlueprintLocationsKey": {"360BCE85-D2C0-4DE1-937B-4A56E07173E6": {"DVTSourceControlBranchIdentifierKey": "trunk","DVTSourceControlBranchOptionsKey": 5,"DVTSourceControlWorkspaceBlueprintLocationTypeKey": "DVTSourceControlBranch"}},/* Working Copy Repository LocationsValue: dictionary of string (repository identifier) to <Branch and Tag Locations>Branch and Tag Locations:DVTSourceControlWorkingCopyRepositoryBranchesLocationKey: string (relative path in repository to branches folder)DVTSourceControlWorkingCopyRepositoryTagsLocationKey: string (relative path in repository to tags folder)DVTSourceControlWorkingCopyRepositoryPrimaryBranchLocationKey: string (relative path in repository to trunk folder)*/"DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {"34768997-536d-3cd6-3966-ce57b7db7bff" : {"DVTSourceControlWorkingCopyRepositoryBranchesLocationKey" : "branches","DVTSourceControlWorkingCopyRepositoryTagsLocationKey" : "tags","DVTSourceControlWorkingCopyRepositoryPrimaryBranchLocationKey" : "trunk"}},/* The name for the blueprint, typically the name of the Xcode project or workspaceValue: string*/"DVTSourceControlWorkspaceBlueprintNameKey": "Project",/* The identifier of the working copy containing the Xcode project or workspace to build, considered the primary working copyValue: string (repository identifier)*/"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey": "360BCE85-D2C0-4DE1-937B-4A56E07173E6",/* The relative path in the primary working copy to the Xcode project or workspace to buildValue: string (relative path)*/"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey": "Project.xcworkspace",/* RepositoriesValue: array of <Repository>Repository:DVTSourceControlWorkspaceBlueprintRemoteRepositoryEnforceTrustCertFingerprintKey: true (requied)DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey: string (consistent identifier within blueprint, SVN UUID)DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey: "com.apple.dt.Xcode.sourcecontrol.Subversion" (Subversion)DVTSourceControlWorkspaceBlueprintRemoteRepositoryTrustedCertFingerprintKey: a string of one of the following fingerprint options:RSA (SSH servers) |MD5 (self-signed SSL server certificates)DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey: string (URI)*/"DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey": [{"DVTSourceControlWorkspaceBlueprintRemoteRepositoryEnforceTrustCertFingerprintKey": true,"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey": "360BCE85-D2C0-4DE1-937B-4A56E07173E6","DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey": "com.apple.dt.Xcode.sourcecontrol.Subversion","DVTSourceControlWorkspaceBlueprintRemoteRepositoryTrustedCertFingerprintKey": "174F678B9ED220D9C8B2A47F42392A44","DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey": "svn+ssh:\/\/server.example.com\/svn\/repo"}],/* Authentication StrategiesValue: dictionary of string (repository identifier) to <Authentication>Authentication:DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationTypeKey:"DVTSourceControlAuthenticationStrategy" (Anonymous) |"DVTSourceControlBasicAuthenticationStrategy" (Username and Password) |"DVTSourceControlSSHKeysAuthenticationStrategy" (SSH Keys)DVTSourceControlWorkspaceBlueprintRemoteRepositoryPasswordKey: string (Password or Passphrase)DVTSourceControlWorkspaceBlueprintRemoteRepositoryUsernameKey: string (Username)DVTSourceControlWorkspaceBlueprintRemoteRepositoryPublicKeyDataKey: string (Base64-encoded public key data)DVTSourceControlWorkspaceBlueprintRemoteRepositoryPrivateKeyDataKey: string (Base64-encoded private key data)*/"DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationStrategiesKey": {"360BCE85-D2C0-4DE1-937B-4A56E07173E6": {"DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationTypeKey": "DVTSourceControlBasicAuthenticationStrategy","DVTSourceControlWorkspaceBlueprintRemoteRepositoryPasswordKey": "password","DVTSourceControlWorkspaceBlueprintRemoteRepositoryUsernameKey": "me"}},/* The blueprint format versionValue: 204*/"DVTSourceControlWorkspaceBlueprintVersion": 204,/* Working Copy LayoutValue: dictionary of string (repository identifier) to string (relative path of checkout)*/"DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey": {"360BCE85-D2C0-4DE1-937B-4A56E07173E6": "Project/"},}
Copyright © 2018 Apple Inc. All rights reserved. Terms of Use | Privacy Policy | Updated: 2016-03-21
