# # Copyright 2005 Perforce Software. All rights reserved. # # # Site specific paths # P4BINDIR specifies where the trigger routines are located # P4LOGDIR specifies where to write the log files # P4_BIN="EJP_P4_BIN" P4BINDIR="EJP_TRIGGERS_DIR/" P4LOGDIR="EJP_TRIGGERS_LOG_DIR/" P4PORT="EJP_P4D_PORT" P4USER="EJP_P4USER" P4SPECSUFFIX="EJP_P4SPEC_SUFFIX" # # The email address from which the notifications are to be sent # P4ADMINEMAIL="ejpadmin@perforce.com" # # Site specific jobspec fields # # P4HISTORYFIELD specifies which field to use for change history # P4CLOSEDBYFIELD specifies the field for saving the closing userid # P4STATUSFIELD specifies the field for current job status # P4RELATEDJOBSFIELD specifies the field for listing related jobids # P4REPORTEDBYFIELD specifies the field for saving the reporting userid # P4OWNEDBYFIELD specifies the field for current job ownerid # P4INTERESTEDINFIELD specifies the field for listing userids to notify # P4DESCRIPTIONFIELD specifies the field for current description of job # P4DUPLICATEOFFIELD specifies the field for saving jobid of which this dups # P4DUPLICATEJOBSFIELD specifies the field for listing duplicate jobids # P4FIXESFIELD specifies the field for listing changelists # P4HISTORYFIELD = "History" # Automatically READ-ONLY P4CLOSEDBYFIELD = "ClosedBy" # Automatically READ-ONLY P4STATUSFIELD = "Status" P4RELATEDJOBSFIELD = "RelatedJobs" P4REPORTEDBYFIELD = "ReportedBy" P4OWNEDBYFIELD = "OwnedBy" P4INTERESTEDINFIELD = "InterestedIn" P4DESCRIPTIONFIELD = "Description" P4DUPLICATEOFFIELD = "DuplicateOf" P4DUPLICATEJOBSFIELD ="DuplicateJobs" # Automatically READ-ONLY P4FIXESFIELD = "Fixes" # Automatically READ-ONLY P4PRODUCTFIELD = "Subsystem" # # Site specific jobspec fields, should normally be these values # # P4JOBFIELD specifies the require jobid field # P4MODIFIEDBYFIELD specifies the userid of the last modifier # P4REPORTEDDATEFIELD specifies the date of the job creation # P4MODIFIEDDATEFIELD specifies the date of the last modification # P4LASTACION specifies the last type of action done on the job P4JOBFIELD = "Job" P4MODIFIEDBYFIELD = "ModifiedBy" P4REPORTEDDATEFIELD = "ReportedDate" P4MODIFIEDDATEFIELD = "ModifiedDate" P4LASTACTIONFIELD = "LastAction" # # P4INTERESTED: These are the people who are to be notified of any # new jobs or changes to existing jobs # # Values: userid - email will be looked up using p4 user # mbox@domain - use this # P4INTERESTED = { "*" => "admin", "p4cw" => "caedmon,albert,tonyc,evalynne", "p4scc" => "caedmon,albert,tonyc,kelly,evalynne", "installer" => "wally,albert,kelly,evalynne", "p4admin" => "caedmon,jgarcia,doug,evalynne", "p4dti" => "josh", "revml" => "barries@slaysys.com,doug,david,evalynne", "vcp" => "barries@slaysys.com,teague@perforce.beprivate.com,doug,david,evalynne", "p4diff" => "", "p4v" => "malouf,mbishop,hans,jcreasy,jason,kelly,david,evalynne", "p4gt" => "robin@datashades.com,laurette,tonyc,david,evalynne", "p4web2" => "geri,kelly,evalynne", "p4wei?" => "", "p4v.p4merge" => "mbishop,jason,kelly,evalynne", "p4wsad" => "robin@datashades.com,caedmon,david,kelly,matt,michael,tonyc", "p4v.p4annotate" => "mbishop,kelly,david,evalynne", "p4v.p4tree" => "samwise,malouf,david,mbishop,evalynne", "p4" => "anton,markm,seiwald,michael,doug,evalynne", "p4p" => "anton,michael,doug,evalynne", "p4sql" => "robin@datashades.com,michael,tonyc,evalynne", "p4api" => "anton,seiwald,samwise,marc,doug,evalynne", "doc" => "", "p4foroffice" => "robert@vaccaperna.co.uk,john,kelly,evalynne", "p4ftp" => "tony,marc,evalynne", "p4web" => "leighb,jkao,david,evalynne", } # # P4FLOW defines the default owners to be assigned when a job is # created, closed, and released (definition of released is contained # in P4Logic.rb for the specific site). The owner to be assigned # can be either a UserID, a reference to a field in the job (e.g., # $ReportedBy, or a reference to another state to be used for the # lookup (e.g., %open which means use the value as if the state were # open). An empty string indicates that the owner field should be # left unchanged. # # * is used as a catch-all for undefined specific product:state pairs # P4FLOW = { "*:*" => "admin", "*:open" => "admin", "*:triaged" => "", "*:inprogress" => "", "*:punted" => "", "*:closed" => "%open", "*:verified" => "", "*:suspended" => "", "*:duplicate" => "%open", "*:obsolete" => "", "*:released" => "$ReportedBy", "p4cw:open" => "albert", "p4cw:closed" => "www", "p4scc:open" => "albert", "p4scc:closed" => "crenck", "installer:open" => "ccollier", "installer:closed" => "matt", "p4admin:open" => "crenck", "p4admin:closed" => "crenck", "p4dti:open" => "gerry", "p4dti:closed" => "ravenbrook", "revml:open" => "gerry", "revml:closed" => "matt", "vcp:open" => "gerry", "vcp:closed" => "matt", "p4diff:open" => "jan", "p4diff:closed" => "jan", "p4v:open" => "jan", "p4v:closed" => "gabe", "p4gt:open" => "john", "p4gt:closed" => "gabe", "p4web2:open" => "josh", "p4web2:closed" => "karen", "p4wei?:open" => "p4exp", "p4wei?:closed" => "kelly", "p4wei?:released" => "www", "p4v.p4merge:open" => "crenck", "p4v.p4merge:closed" => "crenck", "p4wsad:open" => "laurette", "p4wsad:closed" => "laurette", "p4v.p4annotate:open" => "michael", "p4v.p4annotate:closed" => "jcozzo", "p4v.p4tree:open" => "michael", "p4v.p4tree:closed" => "www", "p4:open" => "mshields", "p4:closed" => "wally", "p4p:open" => "mshields", "p4p:closed" => "wally", "p4sql:open" => "steve", "p4sql:closed" => "steve", "p4api:open" => "tony", "p4api:closed" => "matt", "doc:open" => "tonyc", "doc:closed" => "tonyc", "p4foroffice:open" => "tonyc", "p4foroffice:closed" => "robert", "p4ftp:open" => "tonyc", "p4ftp:closed" => "karen", "p4web:open" => "tonyc", "p4web:closed" => "karen", } # # P4IGNORE specifies which fields are to NOT have history generated # for changes, deletions, and additions # P4IGNORE = [ P4LASTACTIONFIELD, P4JOBFIELD, P4MODIFIEDBYFIELD, P4REPORTEDDATEFIELD, P4MODIFIEDDATEFIELD, P4HISTORYFIELD, ] # # P4READONLY specifies which fields are to only be modified by the # the EJP system and so are read-only for the user # P4READONLY = [ P4DUPLICATEJOBSFIELD, P4FIXESFIELD, P4CLOSEDBYFIELD, P4HISTORYFIELD, ] # # Duplicate processing specifications: # # P4DUPCOPY specifies which fields are to be copied into the base # job from the duplicate # P4DUPCUT specifies which fields are to be copied into the base # job from the duplicate and removed from the duplicate # P4DUPCOPY = [ "List1Changelist", "List1UserID", "List1JobID", "List1DepotPath", "List1FilePath", "List1Word", "ListNChangelist", "ListNUserID", "ListNJobID", "ListNDepotPath", "ListNFilePath", "ListNWord", P4RELATEDJOBSFIELD, "Set1Changelist", "Set1UserID", "Set1JobID", "Set1DepotPath", "Set1FilePath", "Set1Word", "SetNChangelist", "SetNUserID", "SetNJobID", "SetNDepotPath", "SetNFilePath", "SetNWord", ] P4DUPCUT = [ "CallNumbers", "XList1Changelist", "XList1UserID", "XList1JobID", "XList1DepotPath", "XList1FilePath", "XList1Word", "XListNChangelist", "XListNUserID", "XListNJobID", "XListNDepotPath", "XListNFilePath", "XListNWord", "XRelatedJobs", "XSet1Changelist", "XSet1UserID", "XSet1JobID", "XSet1DepotPath", "XSet1FilePath", "XSet1Word", "XSetNChangelist", "XSetNUserID", "XSetNJobID", "XSetNDepotPath", "XSetNFilePath", "XSetNWord", ]