A Repository acts as a source location for files that will be deployed as Component Items, which are contained in Components, to the Endpoints that exist in Environments. Each Component Item contains a pointer to where an artifact is stored in a Repository or on a file system. When DeployHub performs the pre-deployment steps, it retrieves the artifact from any location you specify. It pulls it from the Repository and creates a deployment package at deployment run time. For this reason, it does not need to store the actual artifact in the DeployHub versioning engine. Each Component Item is defined with a Repository reference.  Your Repository can be any versioning solution such as Git, Subversion and Perforce, or binary repository such as Maven. A Repository can also reference a file system. Repositories can be found under the Connections menu.

Creating and Deleting a Repository

A Repository is created by clicking on the Connections menu at the top of the DeployHub window, clicking on the Repositories tab on the left side, and right clicking on a Domain in the tree structure. Select “New Repository in this Domain”. Once created, you can click on a Repository in the tree structure to change its characteristics, or right click on it and choose ‘Delete this Repository’ to delete it.

Editing a Repository

To the right of the tree structure are several tabs which allow you to edit Repositories. Keep in mind that once a Type has been chosen and saved for a Repository, it cannot be changed to a different Type. The various tabs available for Repositories are listed below, along with the fields contained in each tab, and an explanation for the use and functions of each.

Properties Tab

The Properties tab contains a table which is used to define a Repository’s characteristics such as location, search behavior, file type, etc. Properties define the way in which DeployHub will gather information from the Repository. Each Repository type has specific Properties and Property values. You add new Properties by selecting the plus (+) in the upper right-hand corner and selecting the Property by choosing it from the Name drop-down list. Properties can be edited by selecting one in the list and clicking the pencil icon or deleted by selecting it and clicking on the X button. Each Property requires a value. All Properties can be defined as overridable or can be encrypted inside the DeployHub database. Some Properties can be also be marked as appendable in which case they can be appended at runtime.


Component Items and Repositories

Components in DeployHub are made up of one or more Component Items.  A Component Item is a pointer to a Repository where the artifact is to be extracted. When defining a Component Item, the Repository is selected. At this point fields are presented which allow any Properties that have not been defined at the Repository level to be set. If the Property has been defined at the Repository level (as described here) then the Property is not displayed at the Component Item level unless the Property is marked as overridable or appendable. In the former case (overridable) any value entered for the Property in the Component Item will replace the value set at the Repository level. In the latter case (appendable) any value entered for the Property in the Component Item will be appended to the value set at the Repository level.


As you save each of the Properties for a given Repository, the table will be populated, and that Property will be removed from the drop-down list in the Properties dialog box.  You can only have one entry per Property per Repository.


There are different Properties that can be configured for each Repository depending on the Repository Type.


File System Properties

Field

Description

Name

  • Filepath:  This appears in the table by default and is required in order to determine where on the local filesystem the files reside. A Filesystem Repository can only reference files on the filesystem of the Endpoint where DeployHub has been installed.
  • Pattern: This optional property can be selected as a filter for the files to be pulled from the Repository.
  • Recursive: This optional property can be selected in order to cause the Repository to return all of the files from directories below those designated by Filepath.
  • Version: Generated by DeployHub when the file is extracted. This is done for all Repository types that do not have a version option.

Value

  • Filepath: Contains the full pathname to the files. Can be created in a directory below the DeployHub installation directory, allowing the Value field to begin with $DMHOME/ (the base directory of the DeployHub installation).
  • Pattern: This defines the file types you want to pull from the Repository, such as *.exe, *.dll, *.war. For example, a filesystem Repository could be created that has its filepath set to $DMHOME/project1, which contains all of the files for a given project. By setting the pattern field’s value to *.war, this repository would have as its available files only those that have a suffix of .war, within the project1 directory. If there were numerous file types in the project1 directory, a different Repository could be created that would only contain files with suffixes of .ear by setting the filepath value to the /project1 directory and setting the pattern fields value to *.ear. By leaving out the pattern property, all of the files located in the Repository will be available. Any and all files coming from a Repository can be further filtered at the Component level.

NOTE:  A single file can also be designated as the only file contained in the Repository by entering the full name of the file, i.e. myWarFile.war.


  • Recursive:  A Checkbox. Clearing this checkbox returns only the files located in the filepath directory. If the checkbox is checked then the search will start at the filepath and locate all files within the filepath directory and all of its sub-directories.
  • Version: Optional. DeployHub will generate a Version number of "1" for the files extracted if no Version is entered. If a value is entered here then DeployHub will mark all the files as having the specified version number.

Encrypted

Checkbox that indicates that the value is to be encrypted in the DeployHub database.

Overridable

Checkbox that indicates the Property can be changed at runtime by specifying a replacement value in the Component Item.

Appendable

Checkbox that indicates the Property can be appended to at runtime by specifying a value to append in the Component Item. Note: Pattern and Recursive options cannot be appended.


OpenMake Meister Properties

Field

Description

Name

  • Buildno: The identifier of the Build that resides in the Meister Repository.
  • Filepath: This appears in the table by default and is required in order to determine where on the local drive the files reside.
  • Pattern: This optional Property can be selected as a filter for the files to be pulled from the Repository.
  • Recursive: This optional Property can be selected in order to cause the Repository to return all of the files from directories below those designated by filepath.

Value

  • Buildno: The Build number that is contained in the Meister repository, it can be any value that contains letters, numbers, dates, times, etc. depending on the format that the Meister users have decided on for the particular enterprise.
  • Filepath: Contains the full pathname to the files. Can be created in a directory below the DeployHub installation directory, allowing the Value field to begin with $DMHOME/ (the base directory of the DeployHub installation).
  • Pattern: This defines the file types you want to pull from the Repository, such as *.exe, *.dll, *.war. For example, a filesystem Repository could be created that has its filepath set to $DMHOME/project1, which contains all of the files for a given project. By setting the pattern field’s value to *.war, this Repository could have as its available files only those that have a suffix of .war, within the project1 directory. If there were numerous file types in the project1 directory, a different Repository could be created that would only contain files with suffixes of .ear by setting the filepath value to the project1 directory and setting the pattern fields value to *.ear. By leaving out the pattern property, all of the files located in the Repository will be available. These can then be filtered out at the Component level.

Note:  A single file can also be designated as the only file contained in the Repository by entering the full name of the file, i.e. myWarFile.war.

  • Recursive:  A Checkbox. Clearing this checkbox returns only the files located in the filepath directory. If the checkbox is checked then the search will start at the filepath and locate all files within the filepath directory and all of its sub-directories.

Encrypted

Checkbox that indicates that the value is to be encrypted in the DeployHub database.

Overridable

Checkbox that indicates the Property can be changed at runtime by specifying a replacement value in the Component Item.

Appendable

Checkbox that indicates the Property can be appended to at runtime by specifying a value to append in the Component Item. Note: Pattern and Recursive options cannot be appended.


CA Harvest Properties

Field

Description

Name

  • Broker: The Name of the Harvest Broker.
  • Datasource: (Optional) The name of the ODBC datasource that is linked to the Harvest Database. This allows DeployHub to query the Harvest Database.
  • Dbuser: (Optional) The owner of the tables in the database where Harvest is installed.
  • Dbpass: (Optional) Password for the Dbuser.
  • Process: (Optional) The name of the Harvest Check-out process. If this value is not specified then the first available checkout process in the State is used.
  • Project: The Harvest Project where the files are associated.
  • State: The Harvest Lifecycle State (Dev, Test, Prod) from which the files are to be checked out.
  • Package: (Optional) The Package Name in which the files are located.
  • Pattern: The file pattern to use when retrieving files.
  • Viewpath: The location of the files in the State from which the files should be checked out.

Value

  • Broker: Enter the broker to connect to the required Project.
  • Datasource: Enter an ODBC connection used to connect to the Harvest database.
  • Dbuser: User name to be used for the Repository connection.
  • Dbpass  Enter the Password for the Dbuser.
  • Process Name: Process Name of the Harvest Check-out Process.
  • Project: Name of the Harvest Project associated to the needed files.
  • State:  Enter the Harvest lifecycle State where files should be pulled.
  • Package: Enter the name of the Harvest Change Package with which versions are associated.
  • Pattern: Enter the file pattern to look for when checking out files.
  • Viewpath: Name of the Harvest viewpath to be referenced.

Encrypted

Checkbox that indicates that the value is to be encrypted in the DeployHub database.

Overridable

Checkbox that indicates the Property can be changed at runtime by specifying a replacement value in the Component Item.

Appendable

Checkbox that indicates the Property can be appended to at runtime by specifying a value to append in the Component Item. Note: Only Viewpath attribute can be appended.


SVN Properties

Field

Description

Name

  • Path: The path to the files within the Subversion repository.
  • Revision: Refers to the Tag used within the Subversion repository that contains the versions of the necessary files.
  • URL: The Universal Resource Locator used to locate the Subversion repository.

Value

  • Path:  Enter the Subversion repository path.
  • Revision: Enter the Subversion Tag that references the needed files.
  • UR: Generally the URL to a Subversion repository carries the project name and the domain name. For example: http://projectname.domainname

Encrypted

Checkbox that indicates that the value is to be encrypted in the DeployHub database.

Overridable

Checkbox that indicates the Property can be changed at runtime by specifying a replacement value in the Component Item.

Appendable

Checkbox that indicates the Property can be appended to at runtime by specifying a value to append in the Component Item.



Git Repository

Git Repository uses a two-step process. First is the git checkout to the file system and second referencing the checked out files using the File System Repository. The git checkout is done using the GitCheckOutAction as a Pre-Action to the Component. This action will place the files on the file system in which the File System Repository will be able to reference them for deployment.


GitCheckOutAction Properties

Field

Description

Git Repo

URL to the Git Repo.

Git Commit

Git Commit to be checked out.

To Dir

Directory where the files will be checked out to.




Perforce Properties

Field

Description

Name

  • Host: The name of the Endpoint where Perforce is running.
  • Port: The port on which the Endpoint is listening.
  • View: The label that associates a group of files in the depot.

Value

  • Host:  Default value is ‘perforce’.
  • Port:  Default is 1666.
  • View: Enter the Perforce label for retrieving the needed files.

Encrypted

Checkbox that indicates that the value is to be encrypted in the DeployHub database.

Overridable

Checkbox that indicates the Property can be changed at runtime by specifying a replacement value in the Component Item.

Appendable

Checkbox that indicates the Property can be appended to at runtime by specifying a value to append in the Component Item.

Note: Host and Port cannot be appended.


RTC Properties

Field

Description

Name

  • RepositoryURL: The path to the files within the Rational Team Concert repository.
  • Stream: The Development Stream in which the files are located.
  • UUID: (optional) The Object UUID to retrieve.
  • Pattern: The file name pattern.  

Value

  • RepositoryURL:  Enter the path to the file location within the Rational Team Concert repository.
  • Stream: Enter the Development Stream.
  • UUID: Enter the UUID of the object to retrieve.
  • Pattern: Enter the pattern for the file names to retrieve.

Encrypted

Checkbox that indicates that the value is to be encrypted in the DeployHub database.

Overridable

Checkbox that indicates the Property can be changed at runtime by specifying a replacement value in the Component Item.

Appendable

Checkbox that indicates the Property can be appended to at runtime by specifying a value to append in the Component Item.


Ftprep Properties

Field

Description

Name

  • Filepath:  This appears in the table by default and is required in order to determine where files are located on the local drive.
  • Pattern: This optional property can be selected as a filter for the files to be pulled from the Repository.
  • Recursive: This optional property can be selected in order to cause the Repository to return all of the files from directories below those designated by filepath.
  • Endpoint: The hostname of the FTP Endpoint.
  • UseSSL: Specifes that Secure Sockets Layer should be used (FTPS as opposed to FTP).
  • Version:  Generated by DeployHub when the file is extracted. This is done for all Repository types that do not have a version option.

Value

  • Filepath: Contains the full pathname to the files. Can be created in a directory below the DeployHub installation directory, allowing the Value field to begin with $DMHOME/ (the base directory of the DeployHub installation).
  • Pattern:  This defines the file types you want to pull from the Repository. For example *.exe, *.dll, *.war. For example, a filesystem Repository could be created that has its filepath set to $DMHOME/project1, which contains all of the files for a given project. By setting the pattern field’s value to *.war, this Repository could have as its available files only those that have a suffix of .war, within the project1 directory. If there were numerous file types in the project1 directory, a different Repository could be created that would only contain files with suffixes of .ear by setting the filepath value to the project1 directory and setting the pattern fields value to *.ear. By leaving out the pattern property, all of the files located in the Repository will be available. These can then be filtered out at the Component level. Note:  A single file can also be designated as the only file contained in the Repository by entering the full name of the file, i.e. myWarFile.war.
  • Recursive:  Leaving this property out returns only the files located in the filepath directory. Adding Recursive will cause the search to start at the filepath and locate all files under the filepath directory and sub-directories.
  • Endpoint:  Enter the Host name of the FTP Endpoint.
  • UseSSL:  A Checkbox. Selected means the FTP data connection is encrypted over SSL. Unchecked means that standard unencrypted FTP protocol is used.
  • Version: Value optional. DeployHub will generate a Version number for the files extracted if no Version is entered.

Encrypted

Checkbox that indicates that the value is to be encrypted in the DeployHub database.

Overridable

Checkbox that indicates the Property can be changed at runtime by specifying a replacement value in the Component Item.

Appendable

Checkbox that indicates the Property can be appended to at runtime by specifying a value to append in the Component Item.

Note: Only filepath can be appended.


http Properties

Field

Description

Name

  • Filename: The file to retrieve from the URI.
  • Params: Used to invoke a RESTful API, allowing more detailed interaction with the HTTP Endpoint.
  • Port: The port used to connect to the HTTP Endpoint.
  • Endpoint: The hostname of the HTTP Endpoint
  • URI: The path used to navigate to the needed files.
  • Version: Generated by DeployHub when the file is extracted. This is done for all Repository types that do not have a version option.

Value

  • Filename: Name of file to be retrieved.
  • Params: Parameters to be passed to the RESTful API.
  • Port: Enter the Port, the default is 80.
  • Endpoint: Enter the hostname of the HTTP Endpoint.
  • URI: Enter the Path used to locate the needed files.
  • Version: Value optional. DeployHub will generate a Version number for the files extracted if no Version is entered.

Encrypted

Checkbox that indicates that the value is to be encrypted in the DeployHub database.

Overridable

Checkbox that indicates the Property can be changed at runtime by specifying a replacement value in the Component Item.

Appendable

Checkbox that indicates the Property can be appended to at runtime by specifying a value to append in the Component Item.

Note: Filename and port cannot be appended.


Patterns Tab

The Patterns tab contains a table of values that designate which files within the Repository are treated as text files and which are treated as binary files. This is useful for operations such as determining line endings when sending files to Unix or Windows based platforms and performing ASCII-EBCDIC translation when working with iSeries Endpoints. As many rows as necessary can be added to this table in order to allow a Repository to designate files throughout a file system or version control system as text or binary. To add fields to the Pattern table, click on the plus (+) sign in the upper right-hand corner of the window. There are three fields:


Field

Description

Path

This is the directory path where designated files reside.

Pattern

This field can contain a file designation using regular expressions such as *.txt, or a single file name, i.e. myfile.war that determines which files within the accompanying Path value are designated as text or binary. The regular expressions that are used here depend on the type of Repository. Some use more complex file patterns for designating files than others.


Text

If this checkbox is checked, all files located in the Repository determined by the Path and Pattern values will be treated as text. All other files are treated as binary. For example, a row in the table can be entered such as:

/myFiles/dir1 for the Path and *.com as the Pattern with the Text box unchecked. This means that all the files within /dir1 with an extension of .com are binary.


Another example would be:

/myFiles/dir1/dir2/dir3  for the path and *.*  as the Pattern, with the Text box checked. This means that all files within /dir3 are text files.


Leaving a Pattern blank is the same as entering *.*. In the above examples, if /dir3 also contained .war files, they would also be treated as text files, so this problem would be solved by entering another row in the table that has: /myFiles/dir1/dir2/dir3  as the Path and *.war as the Pattern, with the Text box unchecked. This tells DeployHub to treat all files in dir3 with the .war extension as binary, and treat all others as text.


Keep in mind that the file designation used in Pattern must be able to be interpreted by the type of Repository. Some will accept complex regular expressions, while others will only use a simpler subset, such as those seen in the examples above.


Recursive Property

Adding the recursive Property to a Repository causes all files (and the folders containing them) from beneath the designated filepath to be included as part of the Repository's contents. Checking the Override checkbox for the filepath property also causes a recursive checkbox to appear for any Component Item that the Repository is assigned to. When editing a Component Item, a recursive checkbox appears if a Repository has been assigned to it that contains a recursive Property with its Override checkbox checked. This allows the recursive choice to be made at the Component Item level. Activate the Recursive Property by checking the Recursive checkbox on the Component Item. By leaving it unchecked, it is inactive.  Leaving Override unchecked in the Repository causes any Component Items that have been assigned it to be recursive, and the recursive checkbox won’t appear for those Component Items.


Attributes tab

Attributes are used to control values that are needed for interfacing with the Repository. The Name field holds the name of the value, and the Value field holds the data, which can be either a numeric or text value. It can also be an array of Name/Value pairs. Clicking on the plus sign (+) icon allows the User to enter a new Name and its associated Value. Clicking on the pencil icon allow the User to edit the selected Attribute in the list. Clicking on the “X” in the upper right-hand corner deletes the currently selected line from the table of Name/Value pairs.


Access Tab

Allows Users within designated Groups to use and/or change the Repository in various ways. To add a Group to one of the access lists, drag and drop the Group from the Available Groups list on the far right into the desired access list. All Users who belong to a Group that appear in one of the access lists will be granted access to the Repository in the following ways:


Field

Description

View Access

Allows the User to see the Repository. If the User does not belong to a Group in the View Access list, the Repository will not appear in the tree structure.

Change Access

Allows the User to changes the Repository’s characteristics i.e. Name, Summary, assigned Credential, etc.

Check-Out Access

Allows Users to check out files from the Repository. This is inherited from the Read Access of the parent Domain.

Check-In Access

Allows Users to check in files to the Repository. This is inherited from the Write Access of the parent Domain.


General Tab

The General Tab displays the basic information about the Repository. The Repository can be configured by selecting the pencil icon on the right-hand side of the window.


Field

Description

Name

The name of the Repository.

Type

Indicates how the files will be retrieved for the deployment.  


  • filesystem: Files that are stored on a drive that is visible from the location where DeployHub has been installed.


  • meister: Standard connector for the Meister software product and can exist anywhere on the network. Is used to retrieve files from a Meister binary repository.


  • harvest: Standard connector for the CA Harvest software configuration management system and can exist anywhere on the network. Is used to retrieve files from CA Harvest. Note, the CA-Harvest command line client must be installed on the same Endpoint as the Deployment Engine.


  • perforce: Standard connector for the Perforce version control system and can exist anywhere on the network, and is used to retrieve files from Perforce. Perforce Client (p4) must be installed on the same Endpoint as the Deployment Engine.


  • svn: Standard connector for the Subversion version control system and can exist anywhere on the network. Used to retrieve files from Subversion.


  • http: Standard connector to retrieve data from a URL – can either be a standard web (HTTP) request or a RESTful style call.


  • ftprep. Standard connector to retrieve data from external FTP Endpoints.


  • rtc: Standard connector to retrieve data from Rational Team Concert Version Control.


Owner

The owner of the Repository, whose default value is the creator of the Repository. The default owner is the User who created the Repository. When editing this field, the Owner Type field is available which includes Owner and Group as choices. Selecting one of these causes the Owner field to display either Users or Groups to choose from.

Summary

Short text field with a description of the Repository.

Created

Date and time that the Repository was created.

Modified

The date and time of the last time the Repository was changed (this does not include the contents of the Repository, but the properties of the Repository itself).

Credentials

A  DeployHub object containing the username/password combination that allows the checkout of files from the repository.

Note: A Credential can be created from the Credentials tab under the Connections menu.