func JobInput(pipelineInfo *pps.PipelineInfo, outputCommitInfo *pfs.CommitInfo) *pps.Input {
	// branchToCommit maps strings of the form "<repo>/<branch>" to PFS commits
	branchToCommit := make(map[string]*pfs.Commit)
	key := path.Join
	for _, prov := range outputCommitInfo.Provenance {
		branchToCommit[key(prov.Commit.Repo.Name, prov.Branch.Name)] = prov.Commit
	}
	jobInput := proto.Clone(pipelineInfo.Input).(*pps.Input)
	pps.VisitInput(jobInput, func(input *pps.Input) {
		if input.Pfs != nil {
			if commit, ok := branchToCommit[key(input.Pfs.Repo, input.Pfs.Branch)]; ok {
				input.Pfs.Commit = commit.ID
			}
		}
		if input.Cron != nil {
			if commit, ok := branchToCommit[key(input.Cron.Repo, "master")]; ok {
				input.Cron.Commit = commit.ID
			}
		}
		if input.Git != nil {
			if commit, ok := branchToCommit[key(input.Git.Name, input.Git.Branch)]; ok {
				input.Git.Commit = commit.ID
			}
		}
	})
	return jobInput
}
func JobInput(pipelineInfo *pps.PipelineInfo, outputCommitInfo *pfs.CommitInfo) *pps.Input {
	
	branchToCommit := make(map[string]*pfs.Commit)
	key := path.Join
	for _, prov := range outputCommitInfo.Provenance {
		branchToCommit[key(prov.Commit.Repo.Name, prov.Branch.Name)] = prov.Commit
	}
	jobInput := proto.Clone(pipelineInfo.Input).(*pps.Input)
	pps.VisitInput(jobInput, func(input *pps.Input) {
		if input.Pfs != nil {
			if commit, ok := branchToCommit[key(input.Pfs.Repo, input.Pfs.Branch)]; ok {
				input.Pfs.Commit = commit.ID
			}
		}
		if input.Cron != nil {
			if commit, ok := branchToCommit[key(input.Cron.Repo, "master")]; ok {
				input.Cron.Commit = commit.ID
			}
		}
		if input.Git != nil {
			if commit, ok := branchToCommit[key(input.Git.Name, input.Git.Branch)]; ok {
				input.Git.Commit = commit.ID
			}
		}
	})
	return jobInput
}
func JobInput ( pipelineInfo * pps . PipelineInfo , outputCommitInfo * pfs . CommitInfo ) * pps . Input { // branchToCommit maps strings of the form "<repo>/<branch>" to PFS commits branchToCommit := make ( map [ string ] * pfs . Commit ) key := path . Join for _ , prov := range outputCommitInfo . Provenance { branchToCommit [ key ( prov . Commit . Repo . Name , prov . Branch . Name ) ] = prov . Commit } jobInput := proto . Clone ( pipelineInfo . Input ) . ( * pps . Input ) pps . VisitInput ( jobInput , func ( input * pps . Input ) { if input . Pfs != nil { if commit , ok := branchToCommit [ key ( input . Pfs . Repo , input . Pfs . Branch ) ] ; ok { input . Pfs . Commit = commit . ID } } if input . Cron != nil { if commit , ok := branchToCommit [ key ( input . Cron . Repo , " " ) ] ; ok { input . Cron . Commit = commit . ID } } if input . Git != nil { if commit , ok := branchToCommit [ key ( input . Git . Name , input . Git . Branch ) ] ; ok { input . Git . Commit = commit . ID } } } ) return jobInput }
// JobInput fills in the commits for a JobInfo
JobInput fills in the commits for a JobInfo