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 blueprint
Value: A valid UUID
*/
"DVTSourceControlWorkspaceBlueprintIdentifierKey": "34D1C3F9-E33F-4935-A5E4-7154F4309EDF",
/* Locations
Value: 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 workspace
Value: string
*/
"DVTSourceControlWorkspaceBlueprintNameKey": "Project",
/* The identifier of the working copy containing the Xcode project or workspace to build, considered the primary working copy
Value: string (repository identifier)
*/
"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey": "47B0B4A0E6B2316DF0F333C188B6423A9479B516",
/* The relative path in the primary working copy to the Xcode project or workspace to build
Value: string (relative path)
*/
"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey": "Project.xcworkspace",
/* Repositories
Value: 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 Strategies
Value: 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 version
Value: 204
*/
"DVTSourceControlWorkspaceBlueprintVersion": 204,
/* Working Copy Layout
Value: dictionary of string (repository identifier) to string (relative path of checkout)
*/
"DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey": {
"47B0B4A0E6B2316DF0F333C188B6423A9479B516": "Project/"
},
}
Multi Repository Example
{
/* Unique identifier for each blueprint
Value: A valid UUID
*/
"DVTSourceControlWorkspaceBlueprintIdentifierKey": "7A06494E-53C9-403D-9C19-ECB73D64AD28",
/* Locations
Value: 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 Locations
Value: 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 workspace
Value: string
*/
"DVTSourceControlWorkspaceBlueprintNameKey": "MultiProject",
/* The identifier of the working copy containing the Xcode project or workspace to build, considered the primary working copy
Value: string (repository identifier)
*/
"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey": "47B0B4A0E6B2316DF0F333C188B6423A9479B516",
/* The relative path in the primary working copy to the Xcode project or workspace to build
Value: string (relative path)
*/
"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey": "MultiProject.xcworkspace",
/* Repositories
Value: 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 Strategies
Value: 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 version
Value: 204
*/
"DVTSourceControlWorkspaceBlueprintVersion": 204,
/* Working Copy Layout
Value: 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 blueprint
Value: A valid UUID
*/
"DVTSourceControlWorkspaceBlueprintIdentifierKey": "D4124FDB-5D40-4170-9269-CAD0A6AB9493",
/* Locations
Value: 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 Locations
Value: 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 workspace
Value: string
*/
"DVTSourceControlWorkspaceBlueprintNameKey": "Project",
/* The identifier of the working copy containing the Xcode project or workspace to build, considered the primary working copy
Value: string (repository identifier)
*/
"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey": "360BCE85-D2C0-4DE1-937B-4A56E07173E6",
/* The relative path in the primary working copy to the Xcode project or workspace to build
Value: string (relative path)
*/
"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey": "Project.xcworkspace",
/* Repositories
Value: 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 Strategies
Value: 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 version
Value: 204
*/
"DVTSourceControlWorkspaceBlueprintVersion": 204,
/* Working Copy Layout
Value: 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