Implement experimental REST API endpoints for plugins (#7279)

* Implement experimental REST API endpoints for plugins

* Updates per feedback and rebase

* Update tests

* Further updates

* Update extraction of plugins

* Use OS temp dir for plugins instead of search path

* Fail extraction on paths that attempt to traverse upward

* Update pluginenv ActivePlugins()
Этот коммит содержится в:
Joram Wilander
2017-09-01 09:00:27 -04:00
коммит произвёл GitHub
родитель 74b5e52c4e
Коммит 899ab31fff
28 изменённых файлов: 965 добавлений и 76 удалений

Просмотреть файл

@@ -9,7 +9,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/mattermost/platform/plugin"
"github.com/mattermost/platform/model"
)
func TestScanSearchPath(t *testing.T) {
@@ -27,17 +27,17 @@ func TestScanSearchPath(t *testing.T) {
plugins, err := ScanSearchPath(dir)
require.NoError(t, err)
assert.Len(t, plugins, 3)
assert.Contains(t, plugins, &plugin.BundleInfo{
assert.Contains(t, plugins, &model.BundleInfo{
Path: filepath.Join(dir, "foo"),
ManifestPath: filepath.Join(dir, "foo", "plugin.json"),
Manifest: &plugin.Manifest{
Manifest: &model.Manifest{
Id: "foo",
},
})
assert.Contains(t, plugins, &plugin.BundleInfo{
assert.Contains(t, plugins, &model.BundleInfo{
Path: filepath.Join(dir, "baz"),
ManifestPath: filepath.Join(dir, "baz", "plugin.yaml"),
Manifest: &plugin.Manifest{
Manifest: &model.Manifest{
Id: "baz",
},
})