func NewLintFromZippedProtos(name string, b []byte) (*rpc.Lint, error) {
	root, err := ioutil.TempDir("", "registry-protos-")
	if err != nil {
		return nil, err
	}
	defer os.RemoveAll(root)
	_, err = UnzipArchiveToPath(b, root+"/protos")
	if err != nil {
		return nil, err
	}
	cmd := exec.Command("git", "clone", "https://github.com/googleapis/api-common-protos")
	cmd.Dir = root
	err = cmd.Run()
	if err != nil {
		return nil, err
	}
	lint, err := lintDirectory(name, root)
	if err == nil {
		return lint, nil
	}
	cmd = exec.Command("git", "clone", "https://github.com/googleapis/googleapis")
	cmd.Dir = root
	err = cmd.Run()
	if err != nil {
		return nil, err
	}
	return lintDirectory(name, root)
}
NewLintFromZippedProtos runs the API linter and returns the results.
package core
import (
	"io/ioutil"
	"os"
	"os/exec"
	"path/filepath"
	"strings"
	"github.com/apigee/registry/rpc"
	"google.golang.org/protobuf/encoding/protojson"
)