diff --git a/graph/.codacy.yml b/graph/.codacy.yml deleted file mode 100644 index 855b4f298b..0000000000 --- a/graph/.codacy.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -exclude_paths: - - CHANGELOG.md - - changelog/** - - docs/** - - pkg/proto/** - -... diff --git a/graph/.drone.star b/graph/.drone.star deleted file mode 100644 index c1bba64194..0000000000 --- a/graph/.drone.star +++ /dev/null @@ -1,654 +0,0 @@ -def main(ctx): - before = [ - testing(ctx), - ] - - stages = [ - docker(ctx, 'amd64'), - docker(ctx, 'arm64'), - docker(ctx, 'arm'), - binary(ctx, 'linux'), - binary(ctx, 'darwin'), - binary(ctx, 'windows'), - ] - - after = [ - manifest(ctx), - changelog(ctx), - readme(ctx), - badges(ctx), - website(ctx), - ] - - return before + stages + after - -def testing(ctx): - return { - 'kind': 'pipeline', - 'type': 'docker', - 'name': 'testing', - 'platform': { - 'os': 'linux', - 'arch': 'amd64', - }, - 'steps': [ - { - 'name': 'generate', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make generate', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'vet', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make vet', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'staticcheck', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make staticcheck', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'lint', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make lint', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'build', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make build', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'test', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make test', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'codacy', - 'image': 'plugins/codacy:1', - 'pull': 'always', - 'settings': { - 'token': { - 'from_secret': 'codacy_token', - }, - }, - }, - ], - 'volumes': [ - { - 'name': 'gopath', - 'temp': {}, - }, - ], - 'trigger': { - 'ref': [ - 'refs/heads/master', - 'refs/tags/**', - 'refs/pull/**', - ], - }, - } - -def docker(ctx, arch): - return { - 'kind': 'pipeline', - 'type': 'docker', - 'name': arch, - 'platform': { - 'os': 'linux', - 'arch': arch, - }, - 'steps': [ - { - 'name': 'generate', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make generate', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'build', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make build', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'dryrun', - 'image': 'plugins/docker:18.09', - 'pull': 'always', - 'settings': { - 'dry_run': True, - 'tags': 'linux-%s' % (arch), - 'dockerfile': 'docker/Dockerfile.linux.%s' % (arch), - 'repo': ctx.repo.slug, - }, - 'when': { - 'ref': { - 'include': [ - 'refs/pull/**', - ], - }, - }, - }, - { - 'name': 'docker', - 'image': 'plugins/docker:18.09', - 'pull': 'always', - 'settings': { - 'username': { - 'from_secret': 'docker_username', - }, - 'password': { - 'from_secret': 'docker_password', - }, - 'auto_tag': True, - 'auto_tag_suffix': 'linux-%s' % (arch), - 'dockerfile': 'docker/Dockerfile.linux.%s' % (arch), - 'repo': ctx.repo.slug, - }, - 'when': { - 'ref': { - 'exclude': [ - 'refs/pull/**', - ], - }, - }, - }, - ], - 'volumes': [ - { - 'name': 'gopath', - 'temp': {}, - }, - ], - 'depends_on': [ - 'testing', - ], - 'trigger': { - 'ref': [ - 'refs/heads/master', - 'refs/tags/**', - 'refs/pull/**', - ], - }, - } - -def binary(ctx, name): - if ctx.build.event == "tag": - settings = { - 'endpoint': { - 'from_secret': 's3_endpoint', - }, - 'access_key': { - 'from_secret': 'aws_access_key_id', - }, - 'secret_key': { - 'from_secret': 'aws_secret_access_key', - }, - 'bucket': { - 'from_secret': 's3_bucket', - }, - 'path_style': True, - 'strip_prefix': 'dist/release/', - 'source': 'dist/release/*', - 'target': '/ocis/%s/%s' % (ctx.repo.name.replace("ocis-", ""), ctx.build.ref.replace("refs/tags/v", "")), - } - else: - settings = { - 'endpoint': { - 'from_secret': 's3_endpoint', - }, - 'access_key': { - 'from_secret': 'aws_access_key_id', - }, - 'secret_key': { - 'from_secret': 'aws_secret_access_key', - }, - 'bucket': { - 'from_secret': 's3_bucket', - }, - 'path_style': True, - 'strip_prefix': 'dist/release/', - 'source': 'dist/release/*', - 'target': '/ocis/%s/testing' % (ctx.repo.name.replace("ocis-", "")), - } - - return { - 'kind': 'pipeline', - 'type': 'docker', - 'name': name, - 'platform': { - 'os': 'linux', - 'arch': 'amd64', - }, - 'steps': [ - { - 'name': 'generate', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make generate', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'build', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make release-%s' % (name), - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'finish', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make release-finish', - ], - 'volumes': [ - { - 'name': 'gopath', - 'path': '/srv/app', - }, - ], - }, - { - 'name': 'upload', - 'image': 'plugins/s3:1', - 'pull': 'always', - 'settings': settings, - 'when': { - 'ref': [ - 'refs/heads/master', - 'refs/tags/**', - ], - }, - }, - { - 'name': 'changelog', - 'image': 'toolhippie/calens:latest', - 'pull': 'always', - 'commands': [ - 'calens --version %s -o dist/CHANGELOG.md' % ctx.build.ref.replace("refs/tags/v", "").split("-")[0], - ], - 'when': { - 'ref': [ - 'refs/tags/**', - ], - }, - }, - { - 'name': 'release', - 'image': 'plugins/github-release:1', - 'pull': 'always', - 'settings': { - 'api_key': { - 'from_secret': 'github_token', - }, - 'files': [ - 'dist/release/*', - ], - 'title': ctx.build.ref.replace("refs/tags/", ""), - 'note': 'dist/CHANGELOG.md', - 'overwrite': True, - }, - 'when': { - 'ref': [ - 'refs/tags/**', - ], - }, - }, - ], - 'volumes': [ - { - 'name': 'gopath', - 'temp': {}, - }, - ], - 'depends_on': [ - 'testing', - ], - 'trigger': { - 'ref': [ - 'refs/heads/master', - 'refs/tags/**', - 'refs/pull/**', - ], - }, - } - -def manifest(ctx): - return { - 'kind': 'pipeline', - 'type': 'docker', - 'name': 'manifest', - 'platform': { - 'os': 'linux', - 'arch': 'amd64', - }, - 'steps': [ - { - 'name': 'execute', - 'image': 'plugins/manifest:1', - 'pull': 'always', - 'settings': { - 'username': { - 'from_secret': 'docker_username', - }, - 'password': { - 'from_secret': 'docker_password', - }, - 'spec': 'docker/manifest.tmpl', - 'auto_tag': True, - 'ignore_missing': True, - }, - }, - ], - 'depends_on': [ - 'amd64', - 'arm64', - 'arm', - 'linux', - 'darwin', - 'windows', - ], - 'trigger': { - 'ref': [ - 'refs/heads/master', - 'refs/tags/**', - ], - }, - } - -def changelog(ctx): - return { - 'kind': 'pipeline', - 'type': 'docker', - 'name': 'changelog', - 'platform': { - 'os': 'linux', - 'arch': 'amd64', - }, - 'clone': { - 'disable': True, - }, - 'steps': [ - { - 'name': 'clone', - 'image': 'plugins/git-action:1', - 'pull': 'always', - 'settings': { - 'actions': [ - 'clone', - ], - 'remote': 'https://github.com/%s' % (ctx.repo.slug), - 'branch': ctx.build.branch if ctx.build.event == 'pull_request' else 'master', - 'path': '/drone/src', - 'netrc_machine': 'github.com', - 'netrc_username': { - 'from_secret': 'github_username', - }, - 'netrc_password': { - 'from_secret': 'github_token', - }, - }, - }, - { - 'name': 'generate', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'make changelog', - ], - }, - { - 'name': 'output', - 'image': 'webhippie/golang:1.13', - 'pull': 'always', - 'commands': [ - 'cat CHANGELOG.md', - ], - }, - { - 'name': 'publish', - 'image': 'plugins/git-action:1', - 'pull': 'always', - 'settings': { - 'actions': [ - 'commit', - 'push', - ], - 'message': 'Automated changelog update [skip ci]', - 'branch': 'master', - 'author_email': 'devops@owncloud.com', - 'author_name': 'ownClouders', - 'netrc_machine': 'github.com', - 'netrc_username': { - 'from_secret': 'github_username', - }, - 'netrc_password': { - 'from_secret': 'github_token', - }, - }, - 'when': { - 'ref': { - 'exclude': [ - 'refs/pull/**', - ], - }, - }, - }, - ], - 'depends_on': [ - 'manifest', - ], - 'trigger': { - 'ref': [ - 'refs/heads/master', - 'refs/tags/**', - ], - }, - } - -def readme(ctx): - return { - 'kind': 'pipeline', - 'type': 'docker', - 'name': 'readme', - 'platform': { - 'os': 'linux', - 'arch': 'amd64', - }, - 'steps': [ - { - 'name': 'execute', - 'image': 'sheogorath/readme-to-dockerhub:latest', - 'pull': 'always', - 'environment': { - 'DOCKERHUB_USERNAME': { - 'from_secret': 'docker_username', - }, - 'DOCKERHUB_PASSWORD': { - 'from_secret': 'docker_password', - }, - 'DOCKERHUB_REPO_PREFIX': ctx.repo.namespace, - 'DOCKERHUB_REPO_NAME': ctx.repo.name, - 'SHORT_DESCRIPTION': 'Docker images for %s' % (ctx.repo.name), - 'README_PATH': 'README.md', - }, - }, - ], - 'depends_on': [ - 'changelog', - ], - 'trigger': { - 'ref': [ - 'refs/heads/master', - 'refs/tags/**', - ], - }, - } - -def badges(ctx): - return { - 'kind': 'pipeline', - 'type': 'docker', - 'name': 'badges', - 'platform': { - 'os': 'linux', - 'arch': 'amd64', - }, - 'steps': [ - { - 'name': 'execute', - 'image': 'plugins/webhook:1', - 'pull': 'always', - 'settings': { - 'urls': { - 'from_secret': 'microbadger_url', - }, - }, - }, - ], - 'depends_on': [ - 'readme', - ], - 'trigger': { - 'ref': [ - 'refs/heads/master', - 'refs/tags/**', - ], - }, - } - -def website(ctx): - return { - 'kind': 'pipeline', - 'type': 'docker', - 'name': 'website', - 'platform': { - 'os': 'linux', - 'arch': 'amd64', - }, - 'steps': [ - { - 'name': 'generate', - 'image': 'webhippie/hugo:latest', - 'pull': 'always', - 'commands': [ - 'make docs', - ], - }, - { - 'name': 'publish', - 'image': 'plugins/gh-pages:1', - 'pull': 'always', - 'settings': { - 'username': { - 'from_secret': 'github_username', - }, - 'password': { - 'from_secret': 'github_token', - }, - 'pages_directory': 'docs/public/', - 'temporary_base': 'tmp/', - }, - 'when': { - 'ref': { - 'exclude': [ - 'refs/pull/**', - ], - }, - }, - }, - ], - 'depends_on': [ - 'badges', - ], - 'trigger': { - 'ref': [ - 'refs/heads/master', - 'refs/pull/**', - ], - }, - } diff --git a/graph/.editorconfig b/graph/.editorconfig deleted file mode 100644 index 77129cd393..0000000000 --- a/graph/.editorconfig +++ /dev/null @@ -1,35 +0,0 @@ -# http://editorconfig.org - -root = true - -[*] -charset = utf-8 -insert_final_newline = true -trim_trailing_whitespace = true - -[Makefile] -indent_style = tab -indent_size = 4 - -[*.go] -indent_style = tab -indent_size = 4 - -[*.starlark] -indent_style = space -indent_size = 2 - -[*.{yml,json}] -indent_style = space -indent_size = 2 - -[*.{js,vue}] -indent_style = space -indent_size = 2 - -[*.{css,less}] -indent_style = space -indent_size = 2 - -[*.md] -trim_trailing_whitespace = true diff --git a/graph/.github/config.yml b/graph/.github/config.yml deleted file mode 100644 index 110195aceb..0000000000 --- a/graph/.github/config.yml +++ /dev/null @@ -1,12 +0,0 @@ -# Configuration for update-docs - https://github.com/behaviorbot/update-docs - -# Comment to be posted to on PRs that don't update documentation -updateDocsComment: > - Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would create a [changelog](https://github.com/owncloud/ocis-graph/blob/master/changelog/README.md) item based on your changes. -updateDocsWhiteList: - - Tests-only - - tests-only - - Tests-Only - -updateDocsTargetFiles: - - changelog/unreleased/ diff --git a/graph/.github/issue_template.md b/graph/.github/issue_template.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/graph/.github/pull_request_template.md b/graph/.github/pull_request_template.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/graph/.github/settings.yml b/graph/.github/settings.yml deleted file mode 100644 index 469b6ecad0..0000000000 --- a/graph/.github/settings.yml +++ /dev/null @@ -1,98 +0,0 @@ ---- -repository: - name: ocis-graph - description: ':atom_symbol: Serve Graph API for oCIS' - homepage: https://owncloud.github.io/ocis-graph/ - topics: reva, ocis - - private: false - has_issues: true - has_projects: false - has_wiki: false - has_downloads: false - - default_branch: master - - allow_squash_merge: true - allow_merge_commit: true - allow_rebase_merge: true - -labels: - - name: bug - color: d73a4a - description: Something isn't working - - name: documentation - color: 0075ca - description: Improvements or additions to documentation - - name: duplicate - color: cfd3d7 - description: This issue or pull request already exists - - name: enhancement - color: a2eeef - description: New feature or request - - name: good first issue - color: 7057ff - description: Good for newcomers - - name: help wanted - color: 008672 - description: Extra attention is needed - - name: invalid - color: e4e669 - description: This doesn't seem right - - name: question - color: d876e3 - description: Further information is requested - - name: wontfix - color: ffffff - description: This will not be worked on - - name: effort/trivial - color: c2e0c6 - description: Required effort to finish task - - name: effort/0.25d - color: c2e0c6 - description: Required effort to finish task - - name: effort/0.5d - color: c2e0c6 - description: Required effort to finish task - - name: effort/1d - color: c2e0c6 - description: Required effort to finish task - - name: effort/2d - color: c2e0c6 - description: Required effort to finish task - - name: effort/4d - color: c2e0c6 - description: Required effort to finish task - - name: effort/5d - color: c2e0c6 - description: Required effort to finish task - - name: effort/10d - color: c2e0c6 - description: Required effort to finish task - -teams: - - name: ci - permission: admin - - name: employees - permission: push - -branches: - - name: master - protection: - required_pull_request_reviews: - required_approving_review_count: 1 - dismiss_stale_reviews: false - require_code_owner_reviews: false - dismissal_restrictions: {} - required_status_checks: - strict: true - contexts: - - continuous-integration/drone/pr - enforce_admins: false - restrictions: - users: [] - teams: - - ci - - employees - -... diff --git a/graph/.gitignore b/graph/.gitignore deleted file mode 100644 index 88846a9f3c..0000000000 --- a/graph/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -coverage.out - -/bin -/dist diff --git a/graph/CHANGELOG.md b/graph/CHANGELOG.md deleted file mode 100644 index 25b3752bfe..0000000000 --- a/graph/CHANGELOG.md +++ /dev/null @@ -1,33 +0,0 @@ -# Changelog for unreleased - -The following sections list the changes for unreleased. - -## Summary - - * Fix #32: Build docker images with alpine:latest instead of alpine:edge - * Chg #7: Initial release of basic version - * Enh #27: Configuration - -## Details - - * Bugfix #32: Build docker images with alpine:latest instead of alpine:edge - - ARM builds were failing when built on alpine:edge, so we switched to alpine:latest instead. - - https://github.com/owncloud/ocis-graph/pull/32 - - * Change #7: Initial release of basic version - - Just prepare an initial basic version to serve a graph world API that can be used by Phoenix or - other extensions. - - https://github.com/owncloud/ocis-graph/issues/7 - - * Enhancement #27: Configuration - - Extensions should be responsible of configuring themselves. We use Viper for config loading - from default paths. Environment variables **WILL** take precedence over config files. - - https://github.com/owncloud/ocis-graph/pull/27 - - diff --git a/graph/Makefile b/graph/Makefile index 3a9531542b..4f153de6ec 100644 --- a/graph/Makefile +++ b/graph/Makefile @@ -1,6 +1,6 @@ SHELL := bash -NAME := ocis-graph -IMPORT := github.com/owncloud/$(NAME) +NAME := graph +IMPORT := github.com/owncloud/ocis/$(NAME) BIN := bin DIST := dist @@ -45,6 +45,7 @@ ifndef DATE endif LDFLAGS += -s -w -X "$(IMPORT)/pkg/version.String=$(VERSION)" -X "$(IMPORT)/pkg/version.Date=$(DATE)" +DEBUG_LDFLAGS += -X "$(IMPORT)/pkg/version.String=$(VERSION)" -X "$(IMPORT)/pkg/version.Date=$(DATE)" GCFLAGS += all=-N -l .PHONY: all @@ -59,6 +60,10 @@ clean: go clean -i ./... rm -rf $(BIN) $(DIST) +.PHONY: go-mod-tidy +go-mod-tidy: + @go mod tidy + .PHONY: fmt fmt: gofmt -s -w $(SOURCES) @@ -87,6 +92,11 @@ changelog: test: go run github.com/haya14busa/goverage -v -coverprofile coverage.out $(PACKAGES) +.PHONY: go-coverage +go-coverage: + @if [ ! -f coverage.out ]; then $(MAKE) test &>/dev/null; fi; + @go tool cover -func coverage.out | tail -1 | grep -Eo "[0-9]+\.[0-9]+" + .PHONY: install install: $(SOURCES) go install -v -tags '$(TAGS)' -ldflags '$(LDFLAGS)' ./cmd/$(NAME) @@ -98,7 +108,7 @@ $(BIN)/$(EXECUTABLE): $(SOURCES) $(GOBUILD) -v -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $@ ./cmd/$(NAME) $(BIN)/$(EXECUTABLE)-debug: $(SOURCES) - $(GOBUILD) -v -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -gcflags '$(GCFLAGS)' -o $@ ./cmd/$(NAME) + $(GOBUILD) -v -tags '$(TAGS)' -ldflags '$(DEBUG_LDFLAGS)' -gcflags '$(GCFLAGS)' -o $@ ./cmd/$(NAME) .PHONY: release release: release-dirs release-linux release-windows release-darwin release-copy release-check @@ -130,9 +140,9 @@ release-check: .PHONY: release-finish release-finish: release-copy release-check -.PHONY: docs -docs: - cd docs; hugo +.PHONY: config-docs-generate +config-docs-generate: + go run github.com/owncloud/flaex >| ../docs/extensions/$(NAME)/configuration.md .PHONY: watch watch: diff --git a/graph/README.md b/graph/README.md deleted file mode 100644 index fc4949048b..0000000000 --- a/graph/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# ownCloud Infinite Scale: Graph - -[![Build Status](https://cloud.drone.io/api/badges/owncloud/ocis-graph/status.svg)](https://cloud.drone.io/owncloud/ocis-graph) -[![Gitter chat](https://badges.gitter.im/cs3org/reva.svg)](https://gitter.im/cs3org/reva) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/6f1eaaa399294d959ef7b3b10deed41d)](https://www.codacy.com/manual/owncloud/ocis-graph?utm_source=github.com&utm_medium=referral&utm_content=owncloud/ocis-graph&utm_campaign=Badge_Grade) -[![Go Doc](https://godoc.org/github.com/owncloud/ocis-graph?status.svg)](http://godoc.org/github.com/owncloud/ocis-graph) -[![Go Report](http://goreportcard.com/badge/github.com/owncloud/ocis-graph)](http://goreportcard.com/report/github.com/owncloud/ocis-graph) -[![](https://images.microbadger.com/badges/image/owncloud/ocis-graph.svg)](http://microbadger.com/images/owncloud/ocis-graph "Get your own image badge on microbadger.com") - -**This project is under heavy development, it's not in a working state yet!** - -## Install - -You can download prebuilt binaries from the GitHub releases or from our [download mirrors](http://download.owncloud.com/ocis/graph/). For instructions how to install this on your platform you should take a look at our [documentation](https://owncloud.github.io/ocis-graph/) - -## Development - -Make sure you have a working Go environment, for further reference or a guide take a look at the [install instructions](http://golang.org/doc/install.html). This project requires Go >= v1.13. - -```console -git clone https://github.com/owncloud/ocis-graph.git -cd ocis-graph - -make generate build - -./bin/ocis-graph -h -``` - -## Security - -If you find a security issue please contact security@owncloud.com first. - -## Contributing - -Fork -> Patch -> Push -> Pull Request - -## License - -Apache-2.0 - -## Copyright - -```console -Copyright (c) 2019 ownCloud GmbH -```