tcindex/tcindex.go
func (index *Index) FindArtifactFromTask(indexPath, name string) error {
	cd := tcclient.Client(*index)
	_, _, err := (&cd).APICall(nil, "GET", "/task/"+url.QueryEscape(indexPath)+"/artifacts/"+url.QueryEscape(name), nil, nil)
	return err
}
func (index *Index) FindArtifactFromTask(indexPath, name string) error {
	cd := tcclient.Client(*index)
	_, _, err := (&cd).APICall(nil, "GET", "/task/"+url.QueryEscape(indexPath)+"/artifacts/"+url.QueryEscape(name), nil, nil)
	return err
}
// Find a task by index path and redirect to the artifact on the most recent
// run with the given `name`.
//
// Note that multiple calls to this endpoint may return artifacts from differen tasks
// if a new task is inserted into the index between calls. Avoid using this method as
// a stable link to multiple, connected files if the index path does not contain a
// unique identifier.  For example, the following two links may return unrelated files:
// * https://tc.example.com/api/index/v1/task/some-app.win64.latest.installer/artifacts/public/installer.exe`
// * https://tc.example.com/api/index/v1/task/some-app.win64.latest.installer/artifacts/public/debug-symbols.zip`
//
// This problem be remedied by including the revision in the index path or by bundling both
// installer and debug symbols into a single artifact.
//
// If no task exists for the given index path, this API end-point responds with 404.
//
// Required scopes:
//   If private:
//     queue:get-artifact:<name>
//
// See #findArtifactFromTask