From 4a7f92c824ac2337c6cf38d2017bf2610f675e79 Mon Sep 17 00:00:00 2001 From: YuLuo Date: Wed, 12 Jun 2024 17:43:54 +0800 Subject: [PATCH] feat: add docs stie for api-testing (#469) Signed-off-by: yuluo-yx --- .github/markdown_lint_config.json | 54 ++++ .github/workflows/docs.yaml | 99 ++++++ .github/workflows/md-link-check.yml | 44 --- .dockerignore => docs/site/.dockerignore | 0 docs/site/.gitignore | 5 + docs/site/.nvmrc | 1 + docs/site/Dockerfile | 4 + docs/site/assets/icons/logo.png | Bin 0 -> 11151 bytes docs/site/assets/icons/logo.svg | 210 +++++++++++++ docs/site/assets/scss/_variables_project.scss | 9 + docs/site/config.yaml | 15 + docs/site/content/en/_index.md | 16 + docs/site/content/en/about/index.md | 21 ++ .../en/contributions/CODE_OF_CONDUCT.md | 35 +++ .../content/en/contributions/CONTRIBUTING.md | 101 +++++++ .../site/content/en/contributions/SECURITY.md | 24 ++ docs/site/content/en/contributions/_index.md | 8 + .../content/en/contributions/design/Todo.md | 7 + .../content/en/contributions/design/_index.md | 5 + docs/site/content/en/contributions/roadmap.md | 7 + docs/site/content/en/latest/_index.md | 18 ++ docs/site/content/en/latest/api/_index.md | 5 + .../content/en/latest/api/extension_types.md | 5 + docs/site/content/en/latest/install/_index.md | 5 + .../en/latest/install/install-locally.md | 8 + .../site/content/en/latest/releases/_index.md | 5 + .../site/content/en/latest/releases/v0.1.0.md | 8 + docs/site/content/en/latest/tasks/_index.md | 5 + .../content/en/latest/tasks}/grpc-manual.md | 5 +- .../content/en/latest/tasks}/mock-server.md | 5 + .../content/en/latest/tasks}/prometheus.md | 4 +- .../content/en/latest/tasks/quickstart.md | 7 + .../content/en/latest/tasks}/secure.md | 4 +- docs/site/content/en/news/_index.md | 12 + docs/site/content/en/news/blogs/_index.md | 8 + .../content/en/news/presentations/_index.md | 8 + docs/site/content/en/news/releases/_index.md | 23 ++ docs/site/content/en/search.md | 4 + docs/site/content/en/v0.0.1/_index.md | 18 ++ docs/site/content/en/v0.0.1/api/_index.md | 5 + .../content/en/v0.0.1/api/extension_types.md | 5 + docs/site/content/en/v0.0.1/install/_index.md | 5 + .../en/v0.0.1/install/install-locally.md | 8 + .../site/content/en/v0.0.1/releases/_index.md | 5 + .../site/content/en/v0.0.1/releases/v0.1.0.md | 8 + docs/site/content/en/v0.0.1/tasks/_index.md | 5 + .../content/en/v0.0.1/tasks/quickstart.md | 7 + docs/site/content/zh/_index.md | 16 + docs/site/content/zh/about/index.md | 23 ++ .../zh/contributions/CONTRIBUTING-ZH.md | 101 +++++++ docs/site/content/zh/contributions/_index.md | 8 + .../content/zh/contributions/design/Goals.md | 7 + .../content/zh/contributions/design/_index.md | 5 + .../contributions/design/security-policy.md | 7 + docs/site/content/zh/contributions/roadmap.md | 7 + .../content/zh/latest/_index.md} | 17 ++ docs/site/content/zh/latest/api/_index.md | 5 + .../content/zh/latest/api/extension_types.md | 5 + docs/site/content/zh/latest/install/_index.md | 5 + .../zh/latest/install/install-helm.md} | 5 + .../zh/latest/install/install-local.md | 6 + .../site/content/zh/latest/releases/_index.md | 5 + .../latest/releases}/release-note-v0.0.12.md | 4 + .../latest/releases}/release-note-v0.0.13.md | 4 + .../latest/releases}/release-note-v0.0.14.md | 4 + .../latest/releases}/release-note-v0.0.15.md | 4 + .../site/content/zh/latest/releases/v0.0.1.md | 8 + docs/site/content/zh/latest/tasks/_index.md | 5 + .../zh/latest/tasks}/grpc-manual-zh.md | 6 +- .../content/zh/latest/tasks/mock-server.md | 17 ++ .../content/zh/latest/tasks/quickstart.md | 9 + .../content/zh/latest/tasks}/secure-zh.md | 4 +- docs/site/content/zh/news/_index.md | 12 + docs/site/content/zh/news/blogs/_index.md | 8 + .../zh/news/blogs}/glcc-2023-announce.md | 5 + .../content/zh/news/presentations/_index.md | 8 + docs/site/content/zh/news/releases/_index.md | 25 ++ docs/site/content/zh/search.md | 4 + docs/site/data/adopters.yaml | 2 + docs/site/docker-compose.yaml | 13 + docs/site/go.mod | 9 + docs/site/go.sum | 22 ++ docs/site/hugo.toml | 284 ++++++++++++++++++ docs/site/layouts/404.html | 6 + docs/site/layouts/shortcodes/adopters.html | 84 ++++++ docs/site/package.json | 38 +++ docs/site/static/favicons/favicons.ico | Bin 0 -> 11151 bytes docs/site/static/favicons/site.webmanifest | 1 + docs/site/static/img/logo.png | Bin 0 -> 11151 bytes docs/site/static/logos/airspacelink.svg | 1 + docs/site/static/logos/logo.png | Bin 0 -> 11151 bytes tools/CODE_OF_CONDUCT.md | 29 ++ tools/CONTRIBUTING.md | 95 ++++++ tools/SECURITY.md | 18 ++ tools/linter/golangci-lint/.golangci.yml | 4 +- tools/make/docs.mk | 37 ++- 96 files changed, 1801 insertions(+), 61 deletions(-) create mode 100644 .github/markdown_lint_config.json create mode 100644 .github/workflows/docs.yaml delete mode 100644 .github/workflows/md-link-check.yml rename .dockerignore => docs/site/.dockerignore (100%) create mode 100644 docs/site/.gitignore create mode 100644 docs/site/.nvmrc create mode 100644 docs/site/Dockerfile create mode 100644 docs/site/assets/icons/logo.png create mode 100644 docs/site/assets/icons/logo.svg create mode 100644 docs/site/assets/scss/_variables_project.scss create mode 100644 docs/site/config.yaml create mode 100644 docs/site/content/en/_index.md create mode 100644 docs/site/content/en/about/index.md create mode 100644 docs/site/content/en/contributions/CODE_OF_CONDUCT.md create mode 100644 docs/site/content/en/contributions/CONTRIBUTING.md create mode 100644 docs/site/content/en/contributions/SECURITY.md create mode 100644 docs/site/content/en/contributions/_index.md create mode 100644 docs/site/content/en/contributions/design/Todo.md create mode 100644 docs/site/content/en/contributions/design/_index.md create mode 100644 docs/site/content/en/contributions/roadmap.md create mode 100644 docs/site/content/en/latest/_index.md create mode 100644 docs/site/content/en/latest/api/_index.md create mode 100644 docs/site/content/en/latest/api/extension_types.md create mode 100644 docs/site/content/en/latest/install/_index.md create mode 100644 docs/site/content/en/latest/install/install-locally.md create mode 100644 docs/site/content/en/latest/releases/_index.md create mode 100644 docs/site/content/en/latest/releases/v0.1.0.md create mode 100644 docs/site/content/en/latest/tasks/_index.md rename docs/{ => site/content/en/latest/tasks}/grpc-manual.md (97%) rename docs/{ => site/content/en/latest/tasks}/mock-server.md (83%) rename docs/{ => site/content/en/latest/tasks}/prometheus.md (93%) create mode 100644 docs/site/content/en/latest/tasks/quickstart.md rename docs/{ => site/content/en/latest/tasks}/secure.md (98%) create mode 100644 docs/site/content/en/news/_index.md create mode 100644 docs/site/content/en/news/blogs/_index.md create mode 100644 docs/site/content/en/news/presentations/_index.md create mode 100644 docs/site/content/en/news/releases/_index.md create mode 100644 docs/site/content/en/search.md create mode 100644 docs/site/content/en/v0.0.1/_index.md create mode 100644 docs/site/content/en/v0.0.1/api/_index.md create mode 100644 docs/site/content/en/v0.0.1/api/extension_types.md create mode 100644 docs/site/content/en/v0.0.1/install/_index.md create mode 100644 docs/site/content/en/v0.0.1/install/install-locally.md create mode 100644 docs/site/content/en/v0.0.1/releases/_index.md create mode 100644 docs/site/content/en/v0.0.1/releases/v0.1.0.md create mode 100644 docs/site/content/en/v0.0.1/tasks/_index.md create mode 100644 docs/site/content/en/v0.0.1/tasks/quickstart.md create mode 100644 docs/site/content/zh/_index.md create mode 100644 docs/site/content/zh/about/index.md create mode 100644 docs/site/content/zh/contributions/CONTRIBUTING-ZH.md create mode 100644 docs/site/content/zh/contributions/_index.md create mode 100644 docs/site/content/zh/contributions/design/Goals.md create mode 100644 docs/site/content/zh/contributions/design/_index.md create mode 100644 docs/site/content/zh/contributions/design/security-policy.md create mode 100644 docs/site/content/zh/contributions/roadmap.md rename docs/{introduce-zh.md => site/content/zh/latest/_index.md} (93%) create mode 100644 docs/site/content/zh/latest/api/_index.md create mode 100644 docs/site/content/zh/latest/api/extension_types.md create mode 100644 docs/site/content/zh/latest/install/_index.md rename docs/{helm.md => site/content/zh/latest/install/install-helm.md} (90%) create mode 100644 docs/site/content/zh/latest/install/install-local.md create mode 100644 docs/site/content/zh/latest/releases/_index.md rename docs/{ => site/content/zh/latest/releases}/release-note-v0.0.12.md (98%) rename docs/{ => site/content/zh/latest/releases}/release-note-v0.0.13.md (98%) rename docs/{ => site/content/zh/latest/releases}/release-note-v0.0.14.md (98%) rename docs/{ => site/content/zh/latest/releases}/release-note-v0.0.15.md (98%) create mode 100644 docs/site/content/zh/latest/releases/v0.0.1.md create mode 100644 docs/site/content/zh/latest/tasks/_index.md rename docs/{ => site/content/zh/latest/tasks}/grpc-manual-zh.md (97%) create mode 100644 docs/site/content/zh/latest/tasks/mock-server.md create mode 100644 docs/site/content/zh/latest/tasks/quickstart.md rename docs/{ => site/content/zh/latest/tasks}/secure-zh.md (97%) create mode 100644 docs/site/content/zh/news/_index.md create mode 100644 docs/site/content/zh/news/blogs/_index.md rename docs/{ => site/content/zh/news/blogs}/glcc-2023-announce.md (97%) create mode 100644 docs/site/content/zh/news/presentations/_index.md create mode 100644 docs/site/content/zh/news/releases/_index.md create mode 100644 docs/site/content/zh/search.md create mode 100644 docs/site/data/adopters.yaml create mode 100644 docs/site/docker-compose.yaml create mode 100644 docs/site/go.mod create mode 100644 docs/site/go.sum create mode 100644 docs/site/hugo.toml create mode 100644 docs/site/layouts/404.html create mode 100644 docs/site/layouts/shortcodes/adopters.html create mode 100644 docs/site/package.json create mode 100644 docs/site/static/favicons/favicons.ico create mode 100644 docs/site/static/favicons/site.webmanifest create mode 100644 docs/site/static/img/logo.png create mode 100644 docs/site/static/logos/airspacelink.svg create mode 100644 docs/site/static/logos/logo.png create mode 100644 tools/CODE_OF_CONDUCT.md create mode 100644 tools/CONTRIBUTING.md create mode 100644 tools/SECURITY.md diff --git a/.github/markdown_lint_config.json b/.github/markdown_lint_config.json new file mode 100644 index 0000000..6a18ccc --- /dev/null +++ b/.github/markdown_lint_config.json @@ -0,0 +1,54 @@ +{ + "MD001": true, + "MD002": false, + "MD003": false, + "MD004": false, + "MD005": false, + "MD006": false, + "MD007": false, + "MD008": false, + "MD009": false, + "MD010": false, + "MD011": false, + "MD012": false, + "MD013": false, + "MD014": false, + "MD015": false, + "MD016": false, + "MD017": false, + "MD018": false, + "MD019": false, + "MD020": false, + "MD021": false, + "MD022": false, + "MD023": false, + "MD024": false, + "MD025": false, + "MD026": false, + "MD027": false, + "MD028": false, + "MD029": false, + "MD030": false, + "MD031": true, + "MD032": false, + "MD033": false, + "MD034": false, + "MD035": false, + "MD036": false, + "MD037": true, + "MD038": true, + "MD039": false, + "MD040": false, + "MD041": false, + "MD042": false, + "MD043": false, + "MD044": false, + "MD045": false, + "MD046": false, + "MD047": false, + "MD048": false, + "MD049": false, + "MD050": false, + "MD051": false + } + \ No newline at end of file diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml new file mode 100644 index 0000000..a608d8e --- /dev/null +++ b/.github/workflows/docs.yaml @@ -0,0 +1,99 @@ +name: Hugo Docs +on: + push: + branches: + - "master" + paths: + - 'docs/site/**' + - 'tools/make/docs.mk' + pull_request: + branches: + - "main" + paths: + - 'docs/site/**' + - 'tools/make/docs.mk' + +permissions: + contents: read + +jobs: + docs-lint: + runs-on: ubuntu-22.04 + steps: + - name: Check out code + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + ref: ${{ github.event.pull_request.head.sha }} + + - uses: ./tools/github-actions/setup-deps + + - name: Run markdown linter + uses: nosborn/github-action-markdown-cli@9b5e871c11cc0649c5ac2526af22e23525fa344d # v3.3.0 + with: + files: docs/site/content/* + config_file: ".github/markdown_lint_config.json" + + - name: Install linkinator + run: npm install -g linkinator@6.0.4 + + - name: Check links + run: make docs docs-check-links + + docs-build: + runs-on: ubuntu-latest + needs: docs-lint + permissions: + contents: write + steps: + - name: Git checkout + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + submodules: true + ref: ${{ github.event.pull_request.head.sha }} + + - uses: ./tools/github-actions/setup-deps + + - name: Setup Hugo + uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3.0.0 + with: + hugo-version: 'latest' + extended: true + + - name: Setup Node + uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.1.0 + with: + node-version: '18' + + - name: Install Site Dependencies and Build Site + run: make docs docs-check-links + + # Upload docs for GitHub Pages + - name: Upload GitHub Pages artifact + uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1 + with: + # Path of the directory containing the static assets. + path: docs/site/public + # Duration after which artifact will expire in days. + # retention-days: # optional, default is 1 + + # This workflow contains a single job called "build" + docs-publish: + if: github.event_name == 'push' + runs-on: ubuntu-latest + needs: docs-build + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + deployments: write + id-token: write # to verify the deployment originates from an appropriate source + + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5 diff --git a/.github/workflows/md-link-check.yml b/.github/workflows/md-link-check.yml deleted file mode 100644 index ee2b924..0000000 --- a/.github/workflows/md-link-check.yml +++ /dev/null @@ -1,44 +0,0 @@ -# This is a basic workflow to help you get started with Actions - -name: Check broken links - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [master] - pull_request: - branches: [master] - schedule: - # Run everyday at 9:00 AM (See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07) - - cron: "0 5 * * *" - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "build" - check: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "18" - - - name: markdown-link-check - uses: gaurav-nelson/github-action-markdown-link-check@v1 - with: - use-quiet-mode: "yes" - config-file: "checklink_config.json" - max-depth: 3 - - - name: Archive Broken Links List - uses: actions/upload-artifact@v3 - if: always() - with: - name: broken-links.json - path: /brokenLinks.json - retention-days: 5 \ No newline at end of file diff --git a/.dockerignore b/docs/site/.dockerignore similarity index 100% rename from .dockerignore rename to docs/site/.dockerignore diff --git a/docs/site/.gitignore b/docs/site/.gitignore new file mode 100644 index 0000000..40b67f4 --- /dev/null +++ b/docs/site/.gitignore @@ -0,0 +1,5 @@ +/public +resources/ +node_modules/ +package-lock.json +.hugo_build.lock \ No newline at end of file diff --git a/docs/site/.nvmrc b/docs/site/.nvmrc new file mode 100644 index 0000000..b009dfb --- /dev/null +++ b/docs/site/.nvmrc @@ -0,0 +1 @@ +lts/* diff --git a/docs/site/Dockerfile b/docs/site/Dockerfile new file mode 100644 index 0000000..c976341 --- /dev/null +++ b/docs/site/Dockerfile @@ -0,0 +1,4 @@ +FROM klakegg/hugo:ext-alpine@sha256:536dd4805d0493ee13bf1f3df3852ed1f26d1625983507c8c56242fc029b44c7 + +RUN apk add git && \ + git config --global --add safe.directory /src diff --git a/docs/site/assets/icons/logo.png b/docs/site/assets/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c91a159ec1ec85b32c21bab2b6321bc20bab5265 GIT binary patch literal 11151 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 + + + diff --git a/docs/site/assets/scss/_variables_project.scss b/docs/site/assets/scss/_variables_project.scss new file mode 100644 index 0000000..a3b6991 --- /dev/null +++ b/docs/site/assets/scss/_variables_project.scss @@ -0,0 +1,9 @@ +/* + +Add styles or override variables from the theme here. + +*/ + +$primary: #1e71ec; +$secondary: #ffffff; +$dark: #4a9ff5; diff --git a/docs/site/config.yaml b/docs/site/config.yaml new file mode 100644 index 0000000..9070e38 --- /dev/null +++ b/docs/site/config.yaml @@ -0,0 +1,15 @@ +# THIS IS A TEST CONFIG ONLY! +# FOR THE CONFIGURATION OF YOUR SITE USE hugo.yaml. +# +# As of Docsy 0.7.0, Hugo 0.110.0 or later must be used. +# +# The sole purpose of this config file is to detect Hugo-module builds that use +# an older version of Hugo. +# +# DO NOT add any config parameters to this file. You can safely delete this file +# if your project is using the required Hugo version. + +module: + hugoVersion: + extended: true + min: 0.110.0 diff --git a/docs/site/content/en/_index.md b/docs/site/content/en/_index.md new file mode 100644 index 0000000..74b4fe7 --- /dev/null +++ b/docs/site/content/en/_index.md @@ -0,0 +1,16 @@ +--- +title: API Testing +--- + +{{< blocks/cover title="Welcome to API Testing!" image_anchor="top" height="full" >}} + + GET STARTED + + + CONTRIBUTING + +

YAML based API testing tool. interface debug and test tools.

+ +{{< blocks/link-down color="white" >}} +

todo add relative content

+{{< /blocks/cover >}} diff --git a/docs/site/content/en/about/index.md b/docs/site/content/en/about/index.md new file mode 100644 index 0000000..8bf999a --- /dev/null +++ b/docs/site/content/en/about/index.md @@ -0,0 +1,21 @@ +--- +title: About API Testing +linkTitle: About +--- + +{{% blocks/cover title="About API Testing" height="auto" %}} + +API Testing is an open source project for interface debug and test tools. + +Read on to find out more, or visit our [documentation](/latest/) to get started! +{{% /blocks/cover %}} + +{{% blocks/section color="black" %}} + +## Objectives + +--- + +// TBD. + +{{% /blocks/section %}} diff --git a/docs/site/content/en/contributions/CODE_OF_CONDUCT.md b/docs/site/content/en/contributions/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..920e60b --- /dev/null +++ b/docs/site/content/en/contributions/CODE_OF_CONDUCT.md @@ -0,0 +1,35 @@ +--- +title: "Contributor Code of Conduct" +weight: -1 +description: "This section records Contributor Code of Conduct of API Testing." +--- + +## Contributor Code of Conduct + +As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery + +- Personal attacks + +- Trolling or insulting/derogatory comments + +- Public or private harassment + +- Publishing other’s private information, such as physical or electronic addresses, without explicit permission + +- Other unethical or unprofessional conduct + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team. + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project maintainer. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Maintainers are obligated to maintain confidentiality with regard to the reporter of an incident. + +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org/), version 1.3.0, available at [contributor-covenant.org/version/1/3/0/](http://contributor-covenant.org/version/1/3/0/) diff --git a/docs/site/content/en/contributions/CONTRIBUTING.md b/docs/site/content/en/contributions/CONTRIBUTING.md new file mode 100644 index 0000000..a5a4c95 --- /dev/null +++ b/docs/site/content/en/contributions/CONTRIBUTING.md @@ -0,0 +1,101 @@ +--- +title: "Contributing" +weight: -1 +description: "This section contributing of API Testing." +--- + +> English | [中文](CONTRIBUTING-ZH.md) + +Please join us to improve this project. + +The backend is written by [Golang](https://go.dev/), and the front-end is written by [Vue](https://vuejs.org/). + +## For beginner + +You might need to know the following tech before get started. + +| Name | Domain | +|-----------------------------------------------------------------------------|------------------------------------------------------------------------| +| [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) Protocol | Core | +| [RESTful](https://en.wikipedia.org/wiki/REST) | Core | +| [gRPC](https://grpc.io/) | `gRPC` runner extension | +| [Prometheus](https://prometheus.io/) | Application monitor | +| [Cobra](https://github.com/spf13/cobra) | The Go CLI framework | +| [Element Plus](https://element-plus.org/) | The front-end framework | +| [Docker](https://www.docker.com/get-started/) | The container image build | +| [Helm chart](https://helm.sh/) | The [Kubernetes](https://kubernetes.io/docs/home/) application package | +| [GitHub Actions](https://docs.github.com/en/actions) | The continuous integration | +| [make](https://www.gnu.org/software/make/) | The automated Build Tools | +| [Docs Guide](https://github.com/LinuxSuRen/api-testing.git) | Documentation Guidelines | + +## Setup development environment + +> This project uses `make` as a build tool and has a very powerful make command system. +> You can see all the available commands by running `make help`. + +It's highly recommended you to configure the git pre-commit hook. It will force to run unit tests before commit. +Run the following command: + +```shell +make install-precheck +``` + +## Print the code of lines: + +```shell +git ls-files | xargs cloc +``` + +## pprof + +``` +go tool pprof -http=:9999 http://localhost:8080/debug/pprof/heap +``` + +Other usage of this: +* `/debug/pprof/heap?gc=1` +* `/debug/pprof/heap?seconds=10` +* `/debug/pprof/goroutine/?debug=0` + +## SkyWalking + +```shell +docker run -p 12800:12800 -p 9412:9412 docker.io/apache/skywalking-oap-server:9.0.0 +docker run -p 8080:8080 -e SW_OAP_ADDRESS=http://172.11.0.6:12800 -e SW_ZIPKIN_ADDRESS=http://172.11.0.6:9412 docker.io/apache/skywalking-ui:9.0.0 + +make build + +export SW_AGENT_NAME=atest +export SW_AGENT_REPORTER_GRPC_BACKEND_SERVICE=172.11.0.6:30689 +export SW_AGENT_PLUGIN_CONFIG_HTTP_SERVER_COLLECT_PARAMETERS=true +export SW_AGENT_METER_COLLECT_INTERVAL=3 +export SW_AGENT_LOG_TYPE=std +export SW_AGENT_REPORTER_DISCARD=true +./bin/atest server --local-storage 'bin/*.yaml' --http-port 8082 --port 7072 --console-path console/atest-ui/dist/ +``` + +Run SkyWalking with BanYanDB: + +```shell +docker run -p 17912:17912 -p 17913:17913 apache/skywalking-banyandb:latest standalone + +docker run -p 12800:12800 -p 9412:9412 \ + -e SW_STORAGE=banyandb \ + -e SW_STORAGE_BANYANDB_HOST=192.168.1.98 \ + docker.io/apache/skywalking-oap-server +``` + +## First contribution + +For developers contributing code to this project for the first time, you should run the following command in your local development environment: + +```shell +make test +``` + +This will help you to check for and fix any bugs that you encounter at commit time, as well as reduce the complexity of the review. + +## FAQ + +* Got sum missing match error of go. + * Run command: `go clean -modcache && go mod tidy` diff --git a/docs/site/content/en/contributions/SECURITY.md b/docs/site/content/en/contributions/SECURITY.md new file mode 100644 index 0000000..8d28ddb --- /dev/null +++ b/docs/site/content/en/contributions/SECURITY.md @@ -0,0 +1,24 @@ +--- +title: "Security" +weight: -1 +description: "This section security of API Testing." +--- + +## Reporting Security Issues + +The API Testing commnity takes a rigorous standpoint in annihilating the security issues in its software projects. API Testing is highly sensitive and forthcoming to issues pertaining to its features and functionality. + +## REPORTING VULNERABILITY + +If you have apprehensions regarding API Testing's security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the api-testing Security Team by dropping a mail at [api-testing-security@googlegroups.com](mailto:api-testing-security@googlegroups.com). In the mail, specify the description of the issue or potential threat. You are also urged to recommend the way to reproduce and replicate the issue. The API Testing community will get back to you after assessing and analysing the findings. + +PLEASE PAY ATTENTION to report the security issue on the security email before disclosing it on public domain. + +## VULNERABILITY HANDLING + +An overview of the vulnerability handling process is: + +The reporter reports the vulnerability privately to API Testing community. +The appropriate project's security team works privately with the reporter to resolve the vulnerability. +A new release of the API Testing product concerned is made that includes the fix. +The vulnerability is publically announced. diff --git a/docs/site/content/en/contributions/_index.md b/docs/site/content/en/contributions/_index.md new file mode 100644 index 0000000..fc9a051 --- /dev/null +++ b/docs/site/content/en/contributions/_index.md @@ -0,0 +1,8 @@ ++++ +title = "Get Involved" +description = "This section includes contents related to Contributions" +linktitle = "Get Involved" + +[[cascade]] +type = "docs" ++++ \ No newline at end of file diff --git a/docs/site/content/en/contributions/design/Todo.md b/docs/site/content/en/contributions/design/Todo.md new file mode 100644 index 0000000..2def771 --- /dev/null +++ b/docs/site/content/en/contributions/design/Todo.md @@ -0,0 +1,7 @@ +--- +title: "Todo Add Design" +weight: -100 +description: Todo. +--- + +// TBD diff --git a/docs/site/content/en/contributions/design/_index.md b/docs/site/content/en/contributions/design/_index.md new file mode 100644 index 0000000..aa57d52 --- /dev/null +++ b/docs/site/content/en/contributions/design/_index.md @@ -0,0 +1,5 @@ +--- +title: "Design" +weight: -100 +description: This section includes Designs of API Testing. +--- diff --git a/docs/site/content/en/contributions/roadmap.md b/docs/site/content/en/contributions/roadmap.md new file mode 100644 index 0000000..788ba28 --- /dev/null +++ b/docs/site/content/en/contributions/roadmap.md @@ -0,0 +1,7 @@ +--- +title: "Roadmap" +weight: -1 +description: "This section records the roadmap of API Testing." +--- + +// TBD diff --git a/docs/site/content/en/latest/_index.md b/docs/site/content/en/latest/_index.md new file mode 100644 index 0000000..c337012 --- /dev/null +++ b/docs/site/content/en/latest/_index.md @@ -0,0 +1,18 @@ ++++ +title = "Welcome to API Testing" +linktitle = "Documentation" +description = "API Testing Documents" + +[[cascade]] +type = "docs" ++++ + +{{% alert title="Note" color="primary" %}} + +This project is under **active** development. Many features are not complete. We would love for you to [Get Involved](/contributions)! + +{{% /alert %}} + +// TBD. + +## Ready to get started? diff --git a/docs/site/content/en/latest/api/_index.md b/docs/site/content/en/latest/api/_index.md new file mode 100644 index 0000000..deb2bf1 --- /dev/null +++ b/docs/site/content/en/latest/api/_index.md @@ -0,0 +1,5 @@ +--- +title: "API" +description: This section includes APIs of API Testing. +weight: 80 +--- diff --git a/docs/site/content/en/latest/api/extension_types.md b/docs/site/content/en/latest/api/extension_types.md new file mode 100644 index 0000000..430f78d --- /dev/null +++ b/docs/site/content/en/latest/api/extension_types.md @@ -0,0 +1,5 @@ ++++ +title = "API Reference" ++++ + +// TBD. diff --git a/docs/site/content/en/latest/install/_index.md b/docs/site/content/en/latest/install/_index.md new file mode 100644 index 0000000..133f1ff --- /dev/null +++ b/docs/site/content/en/latest/install/_index.md @@ -0,0 +1,5 @@ +--- +title: "Installation" +description: This section includes installation related contents of API Testing. +weight: 70 +--- diff --git a/docs/site/content/en/latest/install/install-locally.md b/docs/site/content/en/latest/install/install-locally.md new file mode 100644 index 0000000..6c2f755 --- /dev/null +++ b/docs/site/content/en/latest/install/install-locally.md @@ -0,0 +1,8 @@ ++++ +title = "Install with Locally" +weight = -99 ++++ + +// TBD + +Install API Testing. diff --git a/docs/site/content/en/latest/releases/_index.md b/docs/site/content/en/latest/releases/_index.md new file mode 100644 index 0000000..cc0b219 --- /dev/null +++ b/docs/site/content/en/latest/releases/_index.md @@ -0,0 +1,5 @@ +--- +title: "Releases" +weight: 90 +description: This section includes Releases of API Testing. +--- diff --git a/docs/site/content/en/latest/releases/v0.1.0.md b/docs/site/content/en/latest/releases/v0.1.0.md new file mode 100644 index 0000000..b69c238 --- /dev/null +++ b/docs/site/content/en/latest/releases/v0.1.0.md @@ -0,0 +1,8 @@ +--- +title: "v0.1.0" +publishdate: 2022-05-16 +--- + +Date: 2024 06 01 + +// TBD diff --git a/docs/site/content/en/latest/tasks/_index.md b/docs/site/content/en/latest/tasks/_index.md new file mode 100644 index 0000000..dd1d649 --- /dev/null +++ b/docs/site/content/en/latest/tasks/_index.md @@ -0,0 +1,5 @@ +--- +title: "Tasks" +weight: 2 +description: Learn API Testing hands-on through tasks +--- diff --git a/docs/grpc-manual.md b/docs/site/content/en/latest/tasks/grpc-manual.md similarity index 97% rename from docs/grpc-manual.md rename to docs/site/content/en/latest/tasks/grpc-manual.md index a8df135..cdaa94f 100644 --- a/docs/grpc-manual.md +++ b/docs/site/content/en/latest/tasks/grpc-manual.md @@ -1,4 +1,7 @@ -# gRPC testsuite writing manual ++++ +title = "gRPC testsuite writing manual" +weight = -99 ++++ This document will introduce how to write testsuite for the gRPC API of `api-testing`. diff --git a/docs/mock-server.md b/docs/site/content/en/latest/tasks/mock-server.md similarity index 83% rename from docs/mock-server.md rename to docs/site/content/en/latest/tasks/mock-server.md index 175e12a..f89c2bf 100644 --- a/docs/mock-server.md +++ b/docs/site/content/en/latest/tasks/mock-server.md @@ -1,3 +1,8 @@ ++++ +title = "Mock server get started" +weight = -99 ++++ + ## Get started You can start a mock server of [container registry](https://distribution.github.io/distribution/) with below command: diff --git a/docs/prometheus.md b/docs/site/content/en/latest/tasks/prometheus.md similarity index 93% rename from docs/prometheus.md rename to docs/site/content/en/latest/tasks/prometheus.md index 24816c4..ed8048d 100644 --- a/docs/prometheus.md +++ b/docs/site/content/en/latest/tasks/prometheus.md @@ -1,4 +1,6 @@ -## Pushing the test results into Prometheus ++++ +title = "Pushing the test results into Prometheus" ++++ You can use the following command to do it: diff --git a/docs/site/content/en/latest/tasks/quickstart.md b/docs/site/content/en/latest/tasks/quickstart.md new file mode 100644 index 0000000..b6a751e --- /dev/null +++ b/docs/site/content/en/latest/tasks/quickstart.md @@ -0,0 +1,7 @@ +--- +title: "Quickstart" +weight: 1 +description: Get started with API Testing in a few simple steps. +--- + +// TBD diff --git a/docs/secure.md b/docs/site/content/en/latest/tasks/secure.md similarity index 98% rename from docs/secure.md rename to docs/site/content/en/latest/tasks/secure.md index 55a7239..ce19056 100644 --- a/docs/secure.md +++ b/docs/site/content/en/latest/tasks/secure.md @@ -1,4 +1,6 @@ -# Secure ++++ +title = "Secure" ++++ Usually, when TLS certificate authentication is not used, the gRPC client and server communicate in plain text, and the information is easily eavesdropped or tampered by a third party. Therefore, it is recommended to use SSL/TLS to protect gRPC services in most cases. Currently, `atest` has implemented server-side TLS, and mutual TLS (mTLS) needs to wait for implementation. diff --git a/docs/site/content/en/news/_index.md b/docs/site/content/en/news/_index.md new file mode 100644 index 0000000..e6e8d8a --- /dev/null +++ b/docs/site/content/en/news/_index.md @@ -0,0 +1,12 @@ ++++ +title = "News" +linktitle = "News" +description = "API Testing News" + +[[cascade]] +type = "docs" ++++ + +This is the **News** section. It is organized into three categories: blogs, presentations and releases. + +The files in these directories will be listed in reverse chronological order. diff --git a/docs/site/content/en/news/blogs/_index.md b/docs/site/content/en/news/blogs/_index.md new file mode 100644 index 0000000..809de59 --- /dev/null +++ b/docs/site/content/en/news/blogs/_index.md @@ -0,0 +1,8 @@ ++++ +title = "Blogs" +description = "API Testing Blogs" +linktitle = "Blogs" + +[[cascade]] +type = "docs" ++++ diff --git a/docs/site/content/en/news/presentations/_index.md b/docs/site/content/en/news/presentations/_index.md new file mode 100644 index 0000000..584400c --- /dev/null +++ b/docs/site/content/en/news/presentations/_index.md @@ -0,0 +1,8 @@ ++++ +title = "Presentations" +description = "API Testing Presentations and activities." +linktitle = "Presentations" + +[[cascade]] +type = "docs" ++++ diff --git a/docs/site/content/en/news/releases/_index.md b/docs/site/content/en/news/releases/_index.md new file mode 100644 index 0000000..a3398db --- /dev/null +++ b/docs/site/content/en/news/releases/_index.md @@ -0,0 +1,23 @@ ++++ +title = "Posting Notice" +description = "API Testing posting notice" +linktitle = "Posting" + +[[cascade]] +type = "docs" ++++ + +This document provides details on API Testing releases. +API Testing follows the Semantic Version Control [v2.0.0 specification][] for release version control. +Since API Testing is a new project, minor versions are the only versions defined. +Additional release details, such as patch versions, will be created by API Testing maintainers at a future date. + +## Stable releases {#stable-releases} + + + +## Release management {#release-management}} + + + +## Release schedule} {#release-schedule} diff --git a/docs/site/content/en/search.md b/docs/site/content/en/search.md new file mode 100644 index 0000000..394feea --- /dev/null +++ b/docs/site/content/en/search.md @@ -0,0 +1,4 @@ +--- +title: Search Results +layout: search +--- diff --git a/docs/site/content/en/v0.0.1/_index.md b/docs/site/content/en/v0.0.1/_index.md new file mode 100644 index 0000000..c337012 --- /dev/null +++ b/docs/site/content/en/v0.0.1/_index.md @@ -0,0 +1,18 @@ ++++ +title = "Welcome to API Testing" +linktitle = "Documentation" +description = "API Testing Documents" + +[[cascade]] +type = "docs" ++++ + +{{% alert title="Note" color="primary" %}} + +This project is under **active** development. Many features are not complete. We would love for you to [Get Involved](/contributions)! + +{{% /alert %}} + +// TBD. + +## Ready to get started? diff --git a/docs/site/content/en/v0.0.1/api/_index.md b/docs/site/content/en/v0.0.1/api/_index.md new file mode 100644 index 0000000..deb2bf1 --- /dev/null +++ b/docs/site/content/en/v0.0.1/api/_index.md @@ -0,0 +1,5 @@ +--- +title: "API" +description: This section includes APIs of API Testing. +weight: 80 +--- diff --git a/docs/site/content/en/v0.0.1/api/extension_types.md b/docs/site/content/en/v0.0.1/api/extension_types.md new file mode 100644 index 0000000..430f78d --- /dev/null +++ b/docs/site/content/en/v0.0.1/api/extension_types.md @@ -0,0 +1,5 @@ ++++ +title = "API Reference" ++++ + +// TBD. diff --git a/docs/site/content/en/v0.0.1/install/_index.md b/docs/site/content/en/v0.0.1/install/_index.md new file mode 100644 index 0000000..133f1ff --- /dev/null +++ b/docs/site/content/en/v0.0.1/install/_index.md @@ -0,0 +1,5 @@ +--- +title: "Installation" +description: This section includes installation related contents of API Testing. +weight: 70 +--- diff --git a/docs/site/content/en/v0.0.1/install/install-locally.md b/docs/site/content/en/v0.0.1/install/install-locally.md new file mode 100644 index 0000000..6c2f755 --- /dev/null +++ b/docs/site/content/en/v0.0.1/install/install-locally.md @@ -0,0 +1,8 @@ ++++ +title = "Install with Locally" +weight = -99 ++++ + +// TBD + +Install API Testing. diff --git a/docs/site/content/en/v0.0.1/releases/_index.md b/docs/site/content/en/v0.0.1/releases/_index.md new file mode 100644 index 0000000..cc0b219 --- /dev/null +++ b/docs/site/content/en/v0.0.1/releases/_index.md @@ -0,0 +1,5 @@ +--- +title: "Releases" +weight: 90 +description: This section includes Releases of API Testing. +--- diff --git a/docs/site/content/en/v0.0.1/releases/v0.1.0.md b/docs/site/content/en/v0.0.1/releases/v0.1.0.md new file mode 100644 index 0000000..b69c238 --- /dev/null +++ b/docs/site/content/en/v0.0.1/releases/v0.1.0.md @@ -0,0 +1,8 @@ +--- +title: "v0.1.0" +publishdate: 2022-05-16 +--- + +Date: 2024 06 01 + +// TBD diff --git a/docs/site/content/en/v0.0.1/tasks/_index.md b/docs/site/content/en/v0.0.1/tasks/_index.md new file mode 100644 index 0000000..dd1d649 --- /dev/null +++ b/docs/site/content/en/v0.0.1/tasks/_index.md @@ -0,0 +1,5 @@ +--- +title: "Tasks" +weight: 2 +description: Learn API Testing hands-on through tasks +--- diff --git a/docs/site/content/en/v0.0.1/tasks/quickstart.md b/docs/site/content/en/v0.0.1/tasks/quickstart.md new file mode 100644 index 0000000..b6a751e --- /dev/null +++ b/docs/site/content/en/v0.0.1/tasks/quickstart.md @@ -0,0 +1,7 @@ +--- +title: "Quickstart" +weight: 1 +description: Get started with API Testing in a few simple steps. +--- + +// TBD diff --git a/docs/site/content/zh/_index.md b/docs/site/content/zh/_index.md new file mode 100644 index 0000000..cf2e648 --- /dev/null +++ b/docs/site/content/zh/_index.md @@ -0,0 +1,16 @@ +--- +title: API Testing +--- + +{{< blocks/cover title="欢迎访问 API Testing!" image_anchor="top" height="full" >}} + + 开始使用 + + + 参与贡献 + +

开源接口调试 & 测试工具

+ +{{< blocks/link-down color="white" >}} +

todo 补充一些关联内容

+{{< /blocks/cover >}} diff --git a/docs/site/content/zh/about/index.md b/docs/site/content/zh/about/index.md new file mode 100644 index 0000000..0a5aaab --- /dev/null +++ b/docs/site/content/zh/about/index.md @@ -0,0 +1,23 @@ +--- +title: 关于 API Testing. +linkTitle: 关于 +--- + +{{% blocks/cover title="About API Testing" height="auto" %}} + +API Testing 是一个接口调试和测试工具的开源项目。 + +请继续阅读以了解更多信息,或访问我们的 [文档](/latest/) 开始使用! + +{{% /blocks/cover %}} + +{{% blocks/section color="black" %}} + +## Objectives + +--- + +// TBD. + +{{% /blocks/section %}} + diff --git a/docs/site/content/zh/contributions/CONTRIBUTING-ZH.md b/docs/site/content/zh/contributions/CONTRIBUTING-ZH.md new file mode 100644 index 0000000..8c517b5 --- /dev/null +++ b/docs/site/content/zh/contributions/CONTRIBUTING-ZH.md @@ -0,0 +1,101 @@ +--- +title: "贡献指南" +weight: -1 +description: "API Testing 贡献指南." +--- + +> 中文 | [English](CONTRIBUTING.md) + +请加入我们,共同完善这个项目。 + +后端由 [Golang](https://go.dev/) 编写,前端由 [Vue](https://vuejs.org/) 编写。 + +### 对于初学者 + +在开始之前,您可能需要了解以下技术: + +| Name | Domain | +|-----------------------------------------------------------------------------|------------------------------------------------------------------------| +| [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) Protocol | Core | +| [RESTful](https://en.wikipedia.org/wiki/REST) | Core | +| [gRPC](https://grpc.io/) | `gRPC` runner extension | +| [Prometheus](https://prometheus.io/) | Application monitor | +| [Cobra](https://github.com/spf13/cobra) | The Go CLI framework | +| [Element Plus](https://element-plus.org/) | The front-end framework | +| [Docker](https://www.docker.com/get-started/) | The container image build | +| [Helm chart](https://helm.sh/) | The [Kubernetes](https://kubernetes.io/docs/home/) application package | +| [GitHub Actions](https://docs.github.com/en/actions) | The continuous integration | +| [make](https://www.gnu.org/software/make/) | The automated Build Tools | +| [Docs Guide](https://github.com/LinuxSuRen/api-testing.git) | 文档编写指南 | + +## 设置开发环境 + +> 本项目使用 `make` 作为构建工具,并设计了非常强大的 make 指令系统。您可以通过运行 `make help` 查看所有可用的命令。 + +强烈建议您配置 `git pre-commit` 钩子。它会强制在提交前运行单元测试。 +运行以下命令: + +```shell +make install-precheck +``` + +## 打印各行代码: + +```shell +git ls-files | xargs cloc +``` + +## pprof + +```shell +go tool pprof -http=:9999 http://localhost:8080/debug/pprof/heap +``` + +其他用法: + +* `/debug/pprof/heap?gc=1` +* `/debug/pprof/heap?seconds=10` +* `/debug/pprof/goroutine/?debug=0` + +## SkyWalking + +```shell +docker run -p 12800:12800 -p 9412:9412 docker.io/apache/skywalking-oap-server:9.0.0 +docker run -p 8080:8080 -e SW_OAP_ADDRESS=http://172.11.0.6:12800 -e SW_ZIPKIN_ADDRESS=http://172.11.0.6:9412 docker.io/apache/skywalking-ui:9.0.0 + +make build + +export SW_AGENT_NAME=atest +export SW_AGENT_REPORTER_GRPC_BACKEND_SERVICE=172.11.0.6:30689 +export SW_AGENT_PLUGIN_CONFIG_HTTP_SERVER_COLLECT_PARAMETERS=true +export SW_AGENT_METER_COLLECT_INTERVAL=3 +export SW_AGENT_LOG_TYPE=std +export SW_AGENT_REPORTER_DISCARD=true +./bin/atest server --local-storage 'bin/*.yaml' --http-port 8082 --port 7072 --console-path console/atest-ui/dist/ +``` + +通过 BanYanDB 运行 SkyWalking: + +```shell +docker run -p 17912:17912 -p 17913:17913 apache/skywalking-banyandb:latest standalone + +docker run -p 12800:12800 -p 9412:9412 \ + -e SW_STORAGE=banyandb \ + -e SW_STORAGE_BANYANDB_HOST=192.168.1.98 \ + docker.io/apache/skywalking-oap-server +``` + +## 第一次贡献 + +对于第一次对此项目贡献代码的开发者,您应该在本地开发环境运行如下命令: + +```shell +make test +``` + +以确保通过项目测试,这会有助于您检查并解决在提交时遇到的错误,同时减少 review 的复杂度。 + +## FAQ + +* Got sum missing match error of go. + * 运行命令: `go clean -modcache && go mod tidy`. diff --git a/docs/site/content/zh/contributions/_index.md b/docs/site/content/zh/contributions/_index.md new file mode 100644 index 0000000..b9719c4 --- /dev/null +++ b/docs/site/content/zh/contributions/_index.md @@ -0,0 +1,8 @@ ++++ +title = "参与其中" +description = "本节包含与贡献相关的内容" +linktitle = "参与其中" + +[[cascade]] +type = "docs" ++++ \ No newline at end of file diff --git a/docs/site/content/zh/contributions/design/Goals.md b/docs/site/content/zh/contributions/design/Goals.md new file mode 100644 index 0000000..fe6f410 --- /dev/null +++ b/docs/site/content/zh/contributions/design/Goals.md @@ -0,0 +1,7 @@ +--- +title: "目标" +weight: -1 +description: "API Testing goals." +--- + +// TBD diff --git a/docs/site/content/zh/contributions/design/_index.md b/docs/site/content/zh/contributions/design/_index.md new file mode 100644 index 0000000..cb066d4 --- /dev/null +++ b/docs/site/content/zh/contributions/design/_index.md @@ -0,0 +1,5 @@ +--- +title: "设计" +weight: -100 +description: 这部分包含 API Testing 的设计细节. +--- diff --git a/docs/site/content/zh/contributions/design/security-policy.md b/docs/site/content/zh/contributions/design/security-policy.md new file mode 100644 index 0000000..c2e89d1 --- /dev/null +++ b/docs/site/content/zh/contributions/design/security-policy.md @@ -0,0 +1,7 @@ +--- +title: "安全策略" +weight: -2 +description: "API Testing 安全策略。" +--- + +// TBD diff --git a/docs/site/content/zh/contributions/roadmap.md b/docs/site/content/zh/contributions/roadmap.md new file mode 100644 index 0000000..f794398 --- /dev/null +++ b/docs/site/content/zh/contributions/roadmap.md @@ -0,0 +1,7 @@ +--- +title: "发展规划" +weight: -1 +description: "API Testing roadmap." +--- + +// TBD diff --git a/docs/introduce-zh.md b/docs/site/content/zh/latest/_index.md similarity index 93% rename from docs/introduce-zh.md rename to docs/site/content/zh/latest/_index.md index 3d91474..aea1793 100644 --- a/docs/introduce-zh.md +++ b/docs/site/content/zh/latest/_index.md @@ -1,3 +1,18 @@ ++++ +title = "欢迎访问 API Testing" +linktitle = "文档" +description = "API Testing 文档" + +[[cascade]] +type = "docs" ++++ + +{{% alert title="记录" color="primary" %}} + +该项目正在**积极**开发中,很多功能尚待补充,我们希望您[参与其中](contributions/)! + +{{% /alert %}} + API Testing 一个基于 YAML 文件的开源接口测试工具,同时支持运行在本地、服务端。 在选择工具时,可以从很多方面进行考量、对比,以下几点是该工具的特色或者优点: @@ -122,3 +137,5 @@ items: * 提供插件机制,增加对数据库等数据源的格式校验 最后期待您的反馈 https://github.com/LinuxSuRen/api-testing/issues + +## 准备好开始了吗? {#ready-to-get-started} diff --git a/docs/site/content/zh/latest/api/_index.md b/docs/site/content/zh/latest/api/_index.md new file mode 100644 index 0000000..793aac7 --- /dev/null +++ b/docs/site/content/zh/latest/api/_index.md @@ -0,0 +1,5 @@ +--- +title: "API" +description: 本节内容包含 API Testing 的 API。 +weight: 80 +--- diff --git a/docs/site/content/zh/latest/api/extension_types.md b/docs/site/content/zh/latest/api/extension_types.md new file mode 100644 index 0000000..2625c34 --- /dev/null +++ b/docs/site/content/zh/latest/api/extension_types.md @@ -0,0 +1,5 @@ ++++ +title = "API 引用" ++++ + +// TBD. diff --git a/docs/site/content/zh/latest/install/_index.md b/docs/site/content/zh/latest/install/_index.md new file mode 100644 index 0000000..259b5fc --- /dev/null +++ b/docs/site/content/zh/latest/install/_index.md @@ -0,0 +1,5 @@ +--- +title: 安装 +description: 本节包含关于安装 API Testing 的内容。 +weight: 70 +--- diff --git a/docs/helm.md b/docs/site/content/zh/latest/install/install-helm.md similarity index 90% rename from docs/helm.md rename to docs/site/content/zh/latest/install/install-helm.md index a016fd7..33d2123 100644 --- a/docs/helm.md +++ b/docs/site/content/zh/latest/install/install-helm.md @@ -1,3 +1,8 @@ ++++ +title = "通过 Helm 安装的方式使用 API Testing" +weight = -98 ++++ + You could install `api-testing` via Helm chart: ```shell diff --git a/docs/site/content/zh/latest/install/install-local.md b/docs/site/content/zh/latest/install/install-local.md new file mode 100644 index 0000000..b46ec97 --- /dev/null +++ b/docs/site/content/zh/latest/install/install-local.md @@ -0,0 +1,6 @@ ++++ +title = "通过本地安装的方式使用 API Testing" +weight = -99 ++++ + +// TBD diff --git a/docs/site/content/zh/latest/releases/_index.md b/docs/site/content/zh/latest/releases/_index.md new file mode 100644 index 0000000..ff01a44 --- /dev/null +++ b/docs/site/content/zh/latest/releases/_index.md @@ -0,0 +1,5 @@ +--- +title: "版本" +weight: 90 +description: 本节内容包含 API Testing 的版本概述。 +--- diff --git a/docs/release-note-v0.0.12.md b/docs/site/content/zh/latest/releases/release-note-v0.0.12.md similarity index 98% rename from docs/release-note-v0.0.12.md rename to docs/site/content/zh/latest/releases/release-note-v0.0.12.md index 4427c56..631ee0c 100644 --- a/docs/release-note-v0.0.12.md +++ b/docs/site/content/zh/latest/releases/release-note-v0.0.12.md @@ -1,3 +1,7 @@ ++++ +title = "v0.0.12" ++++ + `atest` 版本发布 v0.0.12 `atest` 是一款用 Golang 编写的、基于 YAML 格式的开源接口测试工具,可以方便地在本地、服务端、持续集成等场景中使用。 diff --git a/docs/release-note-v0.0.13.md b/docs/site/content/zh/latest/releases/release-note-v0.0.13.md similarity index 98% rename from docs/release-note-v0.0.13.md rename to docs/site/content/zh/latest/releases/release-note-v0.0.13.md index 5d718f4..5d0744e 100644 --- a/docs/release-note-v0.0.13.md +++ b/docs/site/content/zh/latest/releases/release-note-v0.0.13.md @@ -1,3 +1,7 @@ ++++ +title = "v0.0.13" ++++ + `atest` 版本发布 `v0.0.13` `atest` 是一款用 Golang 编写的、开源的接口测试工具。 diff --git a/docs/release-note-v0.0.14.md b/docs/site/content/zh/latest/releases/release-note-v0.0.14.md similarity index 98% rename from docs/release-note-v0.0.14.md rename to docs/site/content/zh/latest/releases/release-note-v0.0.14.md index 5333eb7..e8d6f33 100644 --- a/docs/release-note-v0.0.14.md +++ b/docs/site/content/zh/latest/releases/release-note-v0.0.14.md @@ -1,3 +1,7 @@ ++++ +title = "v0.0.14" ++++ + `atest` 版本发布 `v0.0.14` `atest` 是一款用 Golang 编写的、开源的接口测试工具。 diff --git a/docs/release-note-v0.0.15.md b/docs/site/content/zh/latest/releases/release-note-v0.0.15.md similarity index 98% rename from docs/release-note-v0.0.15.md rename to docs/site/content/zh/latest/releases/release-note-v0.0.15.md index 93ce19e..64154c3 100644 --- a/docs/release-note-v0.0.15.md +++ b/docs/site/content/zh/latest/releases/release-note-v0.0.15.md @@ -1,3 +1,7 @@ ++++ +title = "v0.0.15" ++++ + `atest` 发布 `v0.0.15` `atest` 是致力于帮助开发者持续保持高质量 API 的开源接口工具。 diff --git a/docs/site/content/zh/latest/releases/v0.0.1.md b/docs/site/content/zh/latest/releases/v0.0.1.md new file mode 100644 index 0000000..a76022a --- /dev/null +++ b/docs/site/content/zh/latest/releases/v0.0.1.md @@ -0,0 +1,8 @@ +--- +title: "v0.0.1" +publishdate: 2024-04-09 +--- + +日期:2024 年 6 月 1 日 + +// TBD diff --git a/docs/site/content/zh/latest/tasks/_index.md b/docs/site/content/zh/latest/tasks/_index.md new file mode 100644 index 0000000..5212c83 --- /dev/null +++ b/docs/site/content/zh/latest/tasks/_index.md @@ -0,0 +1,5 @@ +--- +title: "任务" +weight: 2 +description: 通过任务学习 API Testing 实践。 +--- diff --git a/docs/grpc-manual-zh.md b/docs/site/content/zh/latest/tasks/grpc-manual-zh.md similarity index 97% rename from docs/grpc-manual-zh.md rename to docs/site/content/zh/latest/tasks/grpc-manual-zh.md index bf4128a..a7ba04d 100644 --- a/docs/grpc-manual-zh.md +++ b/docs/site/content/zh/latest/tasks/grpc-manual-zh.md @@ -1,10 +1,12 @@ -# gRPC测试用例编写指南 ++++ +title = "gRPC测试用例编写指南" ++++ 本文档将介绍如何编写`api-testing`的 gRPC API 的测试用例。 阅读本文档之前,您需要先安装并配置好`api-testing`,具体操作可以参考[官方文档](./README.md)。如果您已经完成了这些步骤,可以继续阅读本文档的后续部分。 -## 创建测试项目 +## 创建测试项目 创建一个基于服务反射的 gRPC 测试用例仅需在 yaml 文件的`spec`路径下加入以下内容: diff --git a/docs/site/content/zh/latest/tasks/mock-server.md b/docs/site/content/zh/latest/tasks/mock-server.md new file mode 100644 index 0000000..2e10ccb --- /dev/null +++ b/docs/site/content/zh/latest/tasks/mock-server.md @@ -0,0 +1,17 @@ ++++ +title = "Mock Server 功能使用" ++++ + +## Get started + +您可以通过执行下面的命令 mock 一个容器仓库服务[container registry](https://distribution.github.io/distribution/): + +```shell +atest mock --prefix / mock/image-registry.yaml +``` + +之后,您可以通过使用如下的命令使用 mock 功能。 + +```shell +docker pull localhost:6060/repo/name:tag +``` diff --git a/docs/site/content/zh/latest/tasks/quickstart.md b/docs/site/content/zh/latest/tasks/quickstart.md new file mode 100644 index 0000000..0ad0420 --- /dev/null +++ b/docs/site/content/zh/latest/tasks/quickstart.md @@ -0,0 +1,9 @@ +--- +title: "快速入门" +weight: 1 +description: 只需几个简单的步骤即可开始使用 API Testing。 +--- + +本指南将帮助您通过几个简单的步骤开始使用 API Testing。 + +// TBD diff --git a/docs/secure-zh.md b/docs/site/content/zh/latest/tasks/secure-zh.md similarity index 97% rename from docs/secure-zh.md rename to docs/site/content/zh/latest/tasks/secure-zh.md index c2eee33..6e65b24 100644 --- a/docs/secure-zh.md +++ b/docs/site/content/zh/latest/tasks/secure-zh.md @@ -1,4 +1,6 @@ -# 关于安全 ++++ +title = "关于安全" ++++ 通常在不使用 TLS 证书认证时,gRPC 客户端与服务端之间进行的是明文通信,信息易被第三方监听或篡改。所以大多数情况下均推荐使用 SSL/TLS 保护 gRPC 服务。目前`atest`已实现服务端 TLS,双向 TLS(mTLS) 需等待后续实现。 diff --git a/docs/site/content/zh/news/_index.md b/docs/site/content/zh/news/_index.md new file mode 100644 index 0000000..9f07d99 --- /dev/null +++ b/docs/site/content/zh/news/_index.md @@ -0,0 +1,12 @@ ++++ +title = "新闻" +linktitle = "新闻" +description = "有关 API Testing 的新闻" + +[[cascade]] +type = "docs" ++++ + +这是**新闻**部分。它分为三个类别:博客、演讲和发布。 + +这些目录中的文件将按时间倒序列出。 diff --git a/docs/site/content/zh/news/blogs/_index.md b/docs/site/content/zh/news/blogs/_index.md new file mode 100644 index 0000000..f50dbcc --- /dev/null +++ b/docs/site/content/zh/news/blogs/_index.md @@ -0,0 +1,8 @@ ++++ +title = "博客" +description = "关于 API Testing 的博客" +linktitle = "博客" + +[[cascade]] +type = "docs" ++++ diff --git a/docs/glcc-2023-announce.md b/docs/site/content/zh/news/blogs/glcc-2023-announce.md similarity index 97% rename from docs/glcc-2023-announce.md rename to docs/site/content/zh/news/blogs/glcc-2023-announce.md index 06e2f44..572ecb0 100644 --- a/docs/glcc-2023-announce.md +++ b/docs/site/content/zh/news/blogs/glcc-2023-announce.md @@ -1,3 +1,8 @@ ++++ +title = "很荣幸与屈晗煜在 GitLink 编程夏令营(GLCC)活动中协作" +weight = -99 ++++ + 很荣幸与屈晗煜在 GitLink 编程夏令营(GLCC)活动中协作 作为一名软件工程师,天然有着追求代码质量的执念。相信很多人对代码的优雅、质量有着自己的认识,业界也有不少的共识,其中有一条我认为是非常重要的——代码可测试。 diff --git a/docs/site/content/zh/news/presentations/_index.md b/docs/site/content/zh/news/presentations/_index.md new file mode 100644 index 0000000..9a5fbc2 --- /dev/null +++ b/docs/site/content/zh/news/presentations/_index.md @@ -0,0 +1,8 @@ ++++ +title = "演讲" +description = "有关 API Testing 的演讲、讲座和活动" +linktitle = "演讲" + +[[cascade]] +type = "docs" ++++ diff --git a/docs/site/content/zh/news/releases/_index.md b/docs/site/content/zh/news/releases/_index.md new file mode 100644 index 0000000..af1c463 --- /dev/null +++ b/docs/site/content/zh/news/releases/_index.md @@ -0,0 +1,25 @@ ++++ +title = "发布公告" +description = "API Testing 发布公告" +linktitle = "发布" + +[[cascade]] +type = "docs" ++++ + +本文档提供了 API Testing 版本的详细信息。 +API Testing 遵循语义版本控制 [v2.0.0 规范][]进行发布版本控制。 +由于 API Testing 是一个新项目,因此次要版本是唯一被定义的版本。 +API Testing 维护人员在未来的某个日期将建立额外的发布详细信息,例如补丁版本。 + +## 稳定版本 {#stable-releases} + + + +## 发布管理 {#release-management} + + + +## 发布时间表 {#release-schedule} + + diff --git a/docs/site/content/zh/search.md b/docs/site/content/zh/search.md new file mode 100644 index 0000000..5bd7efa --- /dev/null +++ b/docs/site/content/zh/search.md @@ -0,0 +1,4 @@ +--- +title: 搜索结果 +layout: search +--- diff --git a/docs/site/data/adopters.yaml b/docs/site/data/adopters.yaml new file mode 100644 index 0000000..ebd0b9b --- /dev/null +++ b/docs/site/data/adopters.yaml @@ -0,0 +1,2 @@ +adopters: + # todo diff --git a/docs/site/docker-compose.yaml b/docs/site/docker-compose.yaml new file mode 100644 index 0000000..e8f211a --- /dev/null +++ b/docs/site/docker-compose.yaml @@ -0,0 +1,13 @@ +version: "3.3" + +services: + + site: + image: docsy/docsy-example + build: + context: . + command: server + ports: + - "1313:1313" + volumes: + - .:/src diff --git a/docs/site/go.mod b/docs/site/go.mod new file mode 100644 index 0000000..5850543 --- /dev/null +++ b/docs/site/go.mod @@ -0,0 +1,9 @@ +module github.com/google/docsy-example + +go 1.22.1 + +require ( + github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2 // indirect + github.com/google/docsy v0.7.1 // indirect + github.com/twbs/bootstrap v5.2.3+incompatible // indirect +) diff --git a/docs/site/go.sum b/docs/site/go.sum new file mode 100644 index 0000000..e1d4ad4 --- /dev/null +++ b/docs/site/go.sum @@ -0,0 +1,22 @@ +github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f h1:bvkUptSRPZBr3Kxuk+bnWCEmQ5MtEJX5fjezyV0bC3g= +github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= +github.com/FortAwesome/Font-Awesome v0.0.0-20221115183454-96cafbd73ec4 h1:xfr9SidRCMEh4A8fdkLhFPcHAVbrdv3Ua0Jp/nSmhhQ= +github.com/FortAwesome/Font-Awesome v0.0.0-20221115183454-96cafbd73ec4/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= +github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2 h1:Uv1z5EqCfmiK4IHUwT0m3h/u/WCk+kpRfxvAZhpC7Gc= +github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= +github.com/google/docsy v0.5.1 h1:D/ZdFKiE29xM/gwPwQzmkyXhcbQGkReRS6aGrF7lnYk= +github.com/google/docsy v0.5.1/go.mod h1:maoUAQU5H/d+FrZIB4xg1EVWAx7RyFMGSDJyWghm31E= +github.com/google/docsy v0.6.0 h1:43bVF18t2JihAamelQjjGzx1vO2ljCilVrBgetCA8oI= +github.com/google/docsy v0.6.0/go.mod h1:VKKLqD8PQ7AglJc98yBorATfW7GrNVsn0kGXVYF6G+M= +github.com/google/docsy v0.7.0 h1:JaeZ0/KufX/BJ3SyATb/fmZa1DFI7o5d9KU+i6+lLJY= +github.com/google/docsy v0.7.0/go.mod h1:5WhIFchr5BfH6agjcInhpLRz7U7map0bcmKSpcrg6BE= +github.com/google/docsy v0.7.1 h1:DUriA7Nr3lJjNi9Ulev1SfiG1sUYmvyDeU4nTp7uDxY= +github.com/google/docsy v0.7.1/go.mod h1:JCmE+c+izhE0Rvzv3y+AzHhz1KdwlA9Oj5YBMklJcfc= +github.com/google/docsy/dependencies v0.5.1/go.mod h1:EDGc2znMbGUw0RW5kWwy2oGgLt0iVXBmoq4UOqstuNE= +github.com/google/docsy/dependencies v0.6.0/go.mod h1:EDGc2znMbGUw0RW5kWwy2oGgLt0iVXBmoq4UOqstuNE= +github.com/google/docsy/dependencies v0.7.0/go.mod h1:gihhs5gmgeO+wuoay4FwOzob+jYJVyQbNaQOh788lD4= +github.com/google/docsy/dependencies v0.7.1/go.mod h1:gihhs5gmgeO+wuoay4FwOzob+jYJVyQbNaQOh788lD4= +github.com/twbs/bootstrap v4.6.2+incompatible h1:TDa+R51BTiy1wEHSYjmqDb8LxNl/zaEjAOpRE9Hwh/o= +github.com/twbs/bootstrap v4.6.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= +github.com/twbs/bootstrap v5.2.3+incompatible h1:lOmsJx587qfF7/gE7Vv4FxEofegyJlEACeVV+Mt7cgc= +github.com/twbs/bootstrap v5.2.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= diff --git a/docs/site/hugo.toml b/docs/site/hugo.toml new file mode 100644 index 0000000..05e0a68 --- /dev/null +++ b/docs/site/hugo.toml @@ -0,0 +1,284 @@ +baseURL = "/" +title = "API Testing" + +# Language settings +contentDir = "content" +defaultContentLanguage = "zh" +defaultContentLanguageInSubdir = false +# Useful when translating. +enableMissingTranslationPlaceholders = true + +enableRobotsTXT = true + +# Will give values to .Lastmod etc. +enableGitInfo = true + +# Comment out to enable taxonomies in Docsy +# disableKinds = ["taxonomy", "taxonomyTerm"] + +# You can add your own taxonomies +[taxonomies] +tag = "tags" +category = "categories" + +[params.taxonomy] +# set taxonomyCloud = [] to hide taxonomy clouds +taxonomyCloud = ["tags", "categories"] + +# If used, must have same length as taxonomyCloud +taxonomyCloudTitle = ["Tag Cloud", "Categories"] + +# set taxonomyPageHeader = [] to hide taxonomies on the page headers +taxonomyPageHeader = ["tags", "categories"] + +# Highlighting config +pygmentsCodeFences = true +pygmentsUseClasses = false +# Use the new Chroma Go highlighter in Hugo. +pygmentsUseClassic = false +#pygmentsOptions = "linenos=table" +# See https://help.farbox.com/pygments.html +pygmentsStyle = "tango" + +# Configure how URLs look like per section. +[permalinks] +blog = "/:section/:year/:month/:day/:slug/" + +# Image processing configuration. +[imaging] +resampleFilter = "CatmullRom" +quality = 75 +anchor = "smart" + +[services] +[services.googleAnalytics] +# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback]. +id = "UA-00000000-0" + +# Language configuration + +[languages] + + [languages.zh] + contentDir = "content/zh" + languageName = "中文" + # Weight used for sorting. + weight = 1 + [languages.zh.params] + title = "API Testing" + description = "开源的接口调试 & 测试工具" + + [languages.en] + contentDir = "content/en" + languageName ="English" + # Weight used for sorting. + weight = 2 + [languages.en.params] + title = "API Testing" + description = "YAML based API testing tool. Open source interface debug and test tools." + +[markup] + [markup.goldmark] + [markup.goldmark.parser.attribute] + block = true + [markup.goldmark.renderer] + unsafe = true + [markup.highlight] + # See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html + style = "tango" + # Uncomment if you want your chosen highlight style used for code blocks without a specified language + # guessSyntax = "true" + +# Everything below this are Site Params + +# Comment out if you don't want the "print entire section" link enabled. +[outputs] +section = ["HTML", "print", "RSS"] + +[params] +copyright = "The API Testing Authors" + + +# First one is picked as the Twitter card image if not set on page. +# images = ["images/project-illustration.png"] + +# Menu title if your navbar has a versions selector to access old versions of your site. +# This menu appears only if you have at least one [params.versions] set. +version_menu = "Versions" + +# Flag used in the "version-banner" partial to decide whether to display a +# banner on every page indicating that this is an archived version of the docs. +# Set this flag to "true" if you want to display the banner. +archived_version = false + +# The version number for the version of the docs represented in this doc set. +# Used in the "version-banner" partial to display a version number for the +# current doc set. +version = "latest" + +# A link to latest version of the docs. Used in the "version-banner" partial to +# point people to the main doc site. +url_latest_version = "https://api-testing.io" + +# Repository configuration (URLs for in-page links to opening issues and suggesting changes) +github_repo = "https://github.com/LinuxSuRen/api-testing/" +# An optional link to a related project repo. For example, the sibling repository where your product code lives. +github_project_repo = "https://github.com/LinuxSuRen/api-testing/" + +# Specify a value here if your content directory is not in your repo's root directory +github_subdir = "/site/" + +# Uncomment this if your GitHub repo does not have "main" as the default branch, +# or specify a new value if you want to reference another branch in your GitHub links +github_branch= "main" + +# Google Custom Search Engine ID. Remove or comment out to disable search. +# gcs_engine_id = "d72aa9b2712488cc3" + +# Enable Algolia DocSearch +algolia_docsearch = false + +# Enable Lunr.js offline search +offlineSearch = true + +# Enable syntax highlighting and copy buttons on code blocks with Prism +prism_syntax_highlighting = false + +# User interface configuration +[params.ui] +# Set to true to disable breadcrumb navigation. +breadcrumb_disable = false +# Set to true to disable the About link in the site footer +footer_about_disable = false +# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar +navbar_logo = true +# Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage. +navbar_translucent_over_cover_disable = false +# Enable to show the side bar menu in its compact state. +sidebar_menu_compact = true +# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled) +sidebar_search_disable = false +# Show expand/collapse icon for sidebar sections +sidebar_menu_foldable = true + +# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events. +# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set. +# If you want this feature, but occasionally need to remove the "Feedback" section from a single page, +# add "hide_feedback: true" to the page's front matter. +[params.ui.feedback] +enable = true +# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful). +yes = 'Glad to hear it! Please tell us how we can improve.' +no = 'Sorry to hear that. Please tell us how we can improve.' + +# Adds a reading time to the top of each doc. +# If you want this feature, but occasionally need to remove the Reading time from a single page, +# add "hide_readingtime: true" to the page's front matter +[params.ui.readingtime] +enable = true + +# hugo module configuration + +[module] + # uncomment line below for temporary local development of module + # replacements = "github.com/LinuxSuRen/api-testing -> ../../docsy" + [module.hugoVersion] + extended = true + min = "0.110.0" + [[module.imports]] + path = "github.com/google/docsy" + disable = false + [[module.imports]] + path = "github.com/google/docsy/dependencies" + disable = false + +[params.links] + # End user relevant links. These will show up on left side of footer and in the community page if you have one. + [[params.links.user]] + name = "User mailing list" + url = "https://groups.google.com/g/api-testing-tech" + icon = "fa fa-envelope" + desc = "Discussion and help from your fellow users" + [[params.links.user]] + name ="Twitter" + url = "https://twitter.com/apitesting" + icon = "fab fa-twitter" + desc = "Follow us on Twitter to get the latest news!" + # Developer relevant links. These will show up on right side of footer and in the community page if you have one. + [[params.links.developer]] + name = "GitHub" + url = "https://github.com/LinuxSuRen/api-testing" + icon = "fab fa-github" + desc = "Development takes place here!" + [[params.links.developer]] + name = "Slack" + url = "https://apitesting.slack.com/archives/C03E6NHLESV" + icon = "fab fa-slack" + desc = "Chat with other project developers" + + # i18n for Chinese + [[languages.zh.params.links.user]] + name = "邮件列表" + url = "https://groups.google.com/g/api-testing-tech" + icon = "fa fa-envelope" + desc = "来自其他用户的讨论和帮助" + [[languages.zh.params.links.user]] + name ="推特" + url = "https://twitter.com/apitesting" + icon = "fab fa-twitter" + desc = "在 Twitter 上关注我们以获取最新消息!" + [[languages.zh.params.links.developer]] + name = "GitHub" + url = "https://github.com/LinuxSuRen/api-testing" + icon = "fab fa-github" + desc = "在这里进行开发!" + [[languages.zh.params.links.developer]] + name = "Slack" + url = "https://apitesting.slack.com/archives/C03E6NHLESV" + icon = "fab fa-slack" + desc = "与其他项目开发人员沟通" + +[menu] + [[menu.main]] + name = "Contributions" + weight = -98 + url = "/contributions" + [[menu.main]] + name = "About" + weight = -100 + url = "/about" + [[menu.main]] + name = "News" + weight = -101 + url = "/news" + [[menu.main]] + name = "Documentation" + weight = -102 + url = "/v0.0.1" + + # i18n for Chinese + [[languages.zh.menu.main]] + name = "贡献" + weight = -98 + url = "/contributions" + [[languages.zh.menu.main]] + name = "关于" + weight = -100 + url = "/about" + [[languages.zh.menu.main]] + name = "新闻" + weight = -101 + url = "/news" + [[languages.zh.menu.main]] + name = "文档" + weight = -102 + url = "/latest" + +[[params.versions]] + version = "latest" + url = "/latest" + +[[params.versions]] + version = "v0.0.1" + url = "/v0.0.1" + \ No newline at end of file diff --git a/docs/site/layouts/404.html b/docs/site/layouts/404.html new file mode 100644 index 0000000..d32828c --- /dev/null +++ b/docs/site/layouts/404.html @@ -0,0 +1,6 @@ +{{ define "main" -}} +
+

Not found

+

Oops! This page doesn't exist. Try going back to the home page.

+
+{{- end }} diff --git a/docs/site/layouts/shortcodes/adopters.html b/docs/site/layouts/shortcodes/adopters.html new file mode 100644 index 0000000..d12f706 --- /dev/null +++ b/docs/site/layouts/shortcodes/adopters.html @@ -0,0 +1,84 @@ +{{ $adopters := .Site.Data.adopters.adopters }} +
+

Our Adopters

+
+ {{ range $adopters }} + + {{ .name }} logo +
+

{{ .description }}

+
+
+ {{ end }} +
+
+ + diff --git a/docs/site/package.json b/docs/site/package.json new file mode 100644 index 0000000..499d153 --- /dev/null +++ b/docs/site/package.json @@ -0,0 +1,38 @@ +{ + "name": "docsy-example-site", + "version": "0.7.1", + "description": "Example site that uses Docsy theme for technical documentation.", + "repository": "github:google/docsy-example", + "homepage": "https://example.docsy.dev", + "author": "Docsy Authors", + "license": "Apache-2.0", + "bugs": "https://github.com/google/docsy-example/issues", + "spelling": "cSpell:ignore HTMLTEST precheck postbuild -", + "scripts": { + "_build": "npm run _hugo-dev", + "_check:links": "echo IMPLEMENTATION PENDING for check-links; echo", + "_hugo": "hugo --cleanDestinationDir", + "_hugo-dev": "npm run _hugo -- -e dev -DFE --baseURL http://localhost --bind 0.0.0.0", + "_serve": "npm run _hugo-dev -- --minify serve", + "build:preview": "npm run _hugo-dev -- --minify --baseURL \"${DEPLOY_PRIME_URL:-/}\"", + "build:production": "npm run _hugo -- --minify", + "build": "npm run _build", + "check:links:all": "HTMLTEST_ARGS= npm run _check:links", + "check:links": "npm run _check:links", + "clean": "rm -Rf public/* resources", + "make:public": "git init -b main public", + "precheck:links:all": "npm run build", + "precheck:links": "npm run build", + "postbuild:preview": "npm run _check:links", + "postbuild:production": "npm run _check:links", + "serve": "npm run _serve", + "test": "npm run check:links", + "update:pkg:dep": "npm install --save-dev autoprefixer@latest postcss-cli@latest", + "update:pkg:hugo": "npm install --save-dev --save-exact hugo-extended@latest" + }, + "devDependencies": { + "autoprefixer": "^10.4.14", + "hugo-extended": "0.123.8", + "postcss-cli": "^10.1.0" + } +} diff --git a/docs/site/static/favicons/favicons.ico b/docs/site/static/favicons/favicons.ico new file mode 100644 index 0000000000000000000000000000000000000000..c91a159ec1ec85b32c21bab2b6321bc20bab5265 GIT binary patch literal 11151 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 \ No newline at end of file diff --git a/docs/site/static/logos/logo.png b/docs/site/static/logos/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c91a159ec1ec85b32c21bab2b6321bc20bab5265 GIT binary patch literal 11151 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 English | [中文](CONTRIBUTING-ZH.md) + +Please join us to improve this project. + +The backend is written by [Golang](https://go.dev/), and the front-end is written by [Vue](https://vuejs.org/). + +## For beginner + +You might need to know the following tech before get started. + +| Name | Domain | +|-----------------------------------------------------------------------------|------------------------------------------------------------------------| +| [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) Protocol | Core | +| [RESTful](https://en.wikipedia.org/wiki/REST) | Core | +| [gRPC](https://grpc.io/) | `gRPC` runner extension | +| [Prometheus](https://prometheus.io/) | Application monitor | +| [Cobra](https://github.com/spf13/cobra) | The Go CLI framework | +| [Element Plus](https://element-plus.org/) | The front-end framework | +| [Docker](https://www.docker.com/get-started/) | The container image build | +| [Helm chart](https://helm.sh/) | The [Kubernetes](https://kubernetes.io/docs/home/) application package | +| [GitHub Actions](https://docs.github.com/en/actions) | The continuous integration | +| [make](https://www.gnu.org/software/make/) | The automated Build Tools | +| [Docs Guide](https://github.com/LinuxSuRen/api-testing.git) | Documentation Guidelines | + +## Setup development environment + +> This project uses `make` as a build tool and has a very powerful make command system. +> You can see all the available commands by running `make help`. + +It's highly recommended you to configure the git pre-commit hook. It will force to run unit tests before commit. +Run the following command: + +```shell +make install-precheck +``` + +## Print the code of lines: + +```shell +git ls-files | xargs cloc +``` + +## pprof + +``` +go tool pprof -http=:9999 http://localhost:8080/debug/pprof/heap +``` + +Other usage of this: +* `/debug/pprof/heap?gc=1` +* `/debug/pprof/heap?seconds=10` +* `/debug/pprof/goroutine/?debug=0` + +## SkyWalking + +```shell +docker run -p 12800:12800 -p 9412:9412 docker.io/apache/skywalking-oap-server:9.0.0 +docker run -p 8080:8080 -e SW_OAP_ADDRESS=http://172.11.0.6:12800 -e SW_ZIPKIN_ADDRESS=http://172.11.0.6:9412 docker.io/apache/skywalking-ui:9.0.0 + +make build + +export SW_AGENT_NAME=atest +export SW_AGENT_REPORTER_GRPC_BACKEND_SERVICE=172.11.0.6:30689 +export SW_AGENT_PLUGIN_CONFIG_HTTP_SERVER_COLLECT_PARAMETERS=true +export SW_AGENT_METER_COLLECT_INTERVAL=3 +export SW_AGENT_LOG_TYPE=std +export SW_AGENT_REPORTER_DISCARD=true +./bin/atest server --local-storage 'bin/*.yaml' --http-port 8082 --port 7072 --console-path console/atest-ui/dist/ +``` + +Run SkyWalking with BanYanDB: + +```shell +docker run -p 17912:17912 -p 17913:17913 apache/skywalking-banyandb:latest standalone + +docker run -p 12800:12800 -p 9412:9412 \ + -e SW_STORAGE=banyandb \ + -e SW_STORAGE_BANYANDB_HOST=192.168.1.98 \ + docker.io/apache/skywalking-oap-server +``` + +## First contribution + +For developers contributing code to this project for the first time, you should run the following command in your local development environment: + +```shell +make test +``` + +This will help you to check for and fix any bugs that you encounter at commit time, as well as reduce the complexity of the review. + +## FAQ + +* Got sum missing match error of go. + * Run command: `go clean -modcache && go mod tidy` diff --git a/tools/SECURITY.md b/tools/SECURITY.md new file mode 100644 index 0000000..b00fd90 --- /dev/null +++ b/tools/SECURITY.md @@ -0,0 +1,18 @@ +## Reporting Security Issues + +The API Testing commnity takes a rigorous standpoint in annihilating the security issues in its software projects. API Testing is highly sensitive and forthcoming to issues pertaining to its features and functionality. + +## REPORTING VULNERABILITY + +If you have apprehensions regarding API Testing's security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the api-testing Security Team by dropping a mail at [api-testing-security@googlegroups.com](mailto:api-testing-security@googlegroups.com). In the mail, specify the description of the issue or potential threat. You are also urged to recommend the way to reproduce and replicate the issue. The API Testing community will get back to you after assessing and analysing the findings. + +PLEASE PAY ATTENTION to report the security issue on the security email before disclosing it on public domain. + +## VULNERABILITY HANDLING + +An overview of the vulnerability handling process is: + +The reporter reports the vulnerability privately to API Testing community. +The appropriate project's security team works privately with the reporter to resolve the vulnerability. +A new release of the API Testing product concerned is made that includes the fix. +The vulnerability is publically announced. diff --git a/tools/linter/golangci-lint/.golangci.yml b/tools/linter/golangci-lint/.golangci.yml index 267fbc4..885746e 100644 --- a/tools/linter/golangci-lint/.golangci.yml +++ b/tools/linter/golangci-lint/.golangci.yml @@ -43,7 +43,7 @@ linters-settings: # Contains all imports that could not be matched to another section type. - default # Groups all imports with the specified Prefix. - - prefix(github.com/envoyproxy/gateway) + - prefix(github.com/LinuxSuRen/api-testing) gofmt: simplify: true goheader: @@ -58,7 +58,7 @@ linters-settings: goimports: # put imports beginning with prefix after 3rd-party packages; # it's a comma-separated list of prefixes - local-prefixes: github.com/envoyproxy/gateway/ + local-prefixes: github.com/LinuxSuRen/api-testing/ govet: enable-all: true disable: diff --git a/tools/make/docs.mk b/tools/make/docs.mk index 044b80d..69a1cb6 100644 --- a/tools/make/docs.mk +++ b/tools/make/docs.mk @@ -2,21 +2,20 @@ # # All make targets related to docs are defined in this file. +DOCS_OUTPUT_DIR := site/public + ##@ Docs -.PHONY: clean -clean: ## Remove all files that are created during builds. -clean: docs.clean +.PHONY: docs +docs: docs.clean + @$(LOG_TARGET) + cd $(ROOT_DIR)/docs/site && npm install + cd $(ROOT_DIR)/docs/site && npm run build:production .PHONY: check-links check-links: ## Check for broken links in the docs. check-links: docs-check-links - -# Clean docs dir. -.PHONY: docs.clean -docs.clean: - @$(LOG_TARGET) - rm -rf $(DOCS_OUTPUT_DIR) + .PHONY: docs-check-links docs-check-links: @@ -24,3 +23,23 @@ docs-check-links: # Check for broken links npm install -g linkinator@6.0.4 linkinator docs -r --concurrency 25 -s "github.com" + +# Docs site, make by hexo. + +.PHONY: docs-serve +docs-serve: ## Start API Testing Site Locally. + @$(LOG_TARGET) + cd $(ROOT_DIR)/docs/site && npm run serve + +.PHONY: docs-clean +docs-clean: ## Remove all files that are created during builds. +docs-clean: docs.clean + +.PHONY: docs.clean +docs.clean: + @$(LOG_TARGET) + rm -rf $(DOCS_OUTPUT_DIR) + rm -rf docs/site/node_modules + rm -rf docs/site/resources + rm -f docs/site/package-lock.json + rm -f docs/site/.hugo_build.lock