mirror of https://github.com/vapor/docs.git
Compare commits
6 Commits
5388757991
...
88f9863487
| Author | SHA1 | Date |
|---|---|---|
|
|
88f9863487 | |
|
|
d6eb192bd8 | |
|
|
a2977762e1 | |
|
|
68f2a91630 | |
|
|
12b0114882 | |
|
|
d42ceb9153 |
|
|
@ -0,0 +1,218 @@
|
|||
# Vapor Release Notes
|
||||
|
||||
Because it is hard, if not impossible to keep the documentation up-to-date constantly, here you will find release notes of various different packages linked to the Vapor ecosystem.
|
||||
|
||||
## [vapor](https://github.com/vapor/vapor)
|
||||
[**{{VAPOR_RELEASE}}**](https://github.com/vapor/vapor/releases/tag/{{VAPOR_ID}})
|
||||
|
||||
{{VAPOR_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent](https://github.com/vapor/fluent)
|
||||
[**{{FLUENT_RELEASE}}**](https://github.com/vapor/fluent/releases/tag/{{FLUENT_ID}})
|
||||
|
||||
{{FLUENT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-kit](https://github.com/vapor/fluent-kit)
|
||||
[**{{FLUENT_KIT_RELEASE}}**](https://github.com/vapor/fluent-kit/releases/tag/{{FLUENT_KIT_ID}})
|
||||
|
||||
{{FLUENT_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [leaf](https://github.com/vapor/leaf)
|
||||
[**{{LEAF_RELEASE}}**](https://github.com/vapor/leaf/releases/tag/{{LEAF_ID}})
|
||||
|
||||
{{LEAF_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [leaf-kit](https://github.com/vapor/leaf-kit)
|
||||
[**{{LEAF_KIT_RELEASE}}**](https://github.com/vapor/leaf-kit/releases/tag/{{LEAF_KIT_ID}})
|
||||
|
||||
{{LEAF_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-postgres-driver](https://github.com/vapor/fluent-postgres-driver)
|
||||
[**{{FLUENT_POSTGRES_DRIVER_RELEASE}}**](https://github.com/vapor/fluent-postgres-driver/releases/tag/{{FLUENT_POSTGRES_DRIVER_ID}})
|
||||
|
||||
{{FLUENT_POSTGRES_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-mysql-driver](https://github.com/vapor/fluent-mysql-driver)
|
||||
[**{{FLUENT_MYSQL_DRIVER_RELEASE}}**](https://github.com/vapor/fluent-mysql-driver/releases/tag/{{FLUENT_MYSQL_DRIVER_ID}})
|
||||
|
||||
{{FLUENT_MYSQL_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-sqlite-driver](https://github.com/vapor/fluent-sqlite-driver)
|
||||
[**{{FLUENT_SQLITE_DRIVER_RELEASE}}**](https://github.com/vapor/fluent-sqlite-driver/releases/tag/{{FLUENT_SQLITE_DRIVER_ID}})
|
||||
|
||||
{{FLUENT_SQLITE_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [fluent-mongo-driver](https://github.com/vapor/fluent-mongo-driver)
|
||||
[**{{FLUENT_MONGO_DRIVER_RELEASE}}**](https://github.com/vapor/fluent-mongo-driver/releases/tag/{{FLUENT_MONGO_DRIVER_ID}})
|
||||
|
||||
{{FLUENT_MONGO_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [postgres-nio](https://github.com/vapor/postgres-nio)
|
||||
[**{{POSTGRES_NIO_RELEASE}}**](https://github.com/vapor/postgres-nio/releases/tag/{{POSTGRES_NIO_ID}})
|
||||
|
||||
{{POSTGRES_NIO_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [mysql-nio](https://github.com/vapor/mysql-nio)
|
||||
[**{{MYSQL_NIO_RELEASE}}**](https://github.com/vapor/mysql-nio/releases/tag/{{MYSQL_NIO_ID}})
|
||||
|
||||
{{MYSQL_NIO_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [sqlite-nio](https://github.com/vapor/sqlite-nio)
|
||||
[**{{SQLITE_NIO_RELEASE}}**](https://github.com/vapor/sqlite-nio/releases/tag/{{SQLITE_NIO_ID}})
|
||||
|
||||
{{SQLITE_NIO_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [postgres-kit](https://github.com/vapor/postgres-kit)
|
||||
[**{{POSTGRES_KIT_RELEASE}}**](https://github.com/vapor/postgres-kit/releases/tag/{{POSTGRES_KIT_ID}})
|
||||
|
||||
{{POSTGRES_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [mysql-kit](https://github.com/vapor/mysql-kit)
|
||||
[**{{MYSQL_KIT_RELEASE}}**](https://github.com/vapor/mysql-kit/releases/tag/{{MYSQL_KIT_ID}})
|
||||
|
||||
{{MYSQL_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [sqlite-kit](https://github.com/vapor/sqlite-kit)
|
||||
[**{{SQLITE_KIT_RELEASE}}**](https://github.com/vapor/sqlite-kit/releases/tag/{{SQLITE_KIT_ID}})
|
||||
|
||||
{{SQLITE_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [sql-kit](https://github.com/vapor/sql-kit)
|
||||
[**{{SQL_KIT_RELEASE}}**](https://github.com/vapor/sql-kit/releases/tag/{{SQL_KIT_ID}})
|
||||
|
||||
{{SQL_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [apns](https://github.com/vapor/apns)
|
||||
[**{{APNS_RELEASE}}**](https://github.com/vapor/apns/releases/tag/{{APNS_ID}})
|
||||
|
||||
{{APNS_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [queues](https://github.com/vapor/queues)
|
||||
[**{{QUEUES_RELEASE}}**](https://github.com/vapor/queues/releases/tag/{{QUEUES_ID}})
|
||||
|
||||
{{QUEUES_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [queues-redis-driver](https://github.com/vapor/queues-redis-driver)
|
||||
[**{{QUEUES_REDIS_DRIVER_RELEASE}}**](https://github.com/vapor/queues-redis-driver/releases/tag/{{QUEUES_REDIS_DRIVER_ID}})
|
||||
|
||||
{{QUEUES_REDIS_DRIVER_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [redis](https://github.com/vapor/redis)
|
||||
[**{{REDIS_RELEASE}}**](https://github.com/vapor/redis/releases/tag/{{REDIS_ID}})
|
||||
|
||||
{{REDIS_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [jwt](https://github.com/vapor/jwt)
|
||||
[**{{JWT_RELEASE}}**](https://github.com/vapor/jwt/releases/tag/{{JWT_ID}})
|
||||
|
||||
{{JWT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [jwt-kit](https://github.com/vapor/jwt-kit)
|
||||
[**{{JWT_KIT_RELEASE}}**](https://github.com/vapor/jwt-kit/releases/tag/{{JWT_KIT_ID}})
|
||||
|
||||
{{JWT_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [websocket-kit](https://github.com/vapor/websocket-kit)
|
||||
[**{{WEBSOCKET_KIT_RELEASE}}**](https://github.com/vapor/websocket-kit/releases/tag/{{WEBSOCKET_KIT_ID}})
|
||||
|
||||
{{WEBSOCKET_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [routing-kit](https://github.com/vapor/routing-kit)
|
||||
[**{{ROUTING_KIT_RELEASE}}**](https://github.com/vapor/routing-kit/releases/tag/{{ROUTING_KIT_ID}})
|
||||
|
||||
{{ROUTING_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [console-kit](https://github.com/vapor/console-kit)
|
||||
[**{{CONSOLE_KIT_RELEASE}}**](https://github.com/vapor/console-kit/releases/tag/{{CONSOLE_KIT_ID}})
|
||||
|
||||
{{CONSOLE_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [async-kit](https://github.com/vapor/async-kit)
|
||||
[**{{ASYNC_KIT_RELEASE}}**](https://github.com/vapor/async-kit/releases/tag/{{ASYNC_KIT_ID}})
|
||||
|
||||
{{ASYNC_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [multipart-kit](https://github.com/vapor/multipart-kit)
|
||||
[**{{MULTIPART_KIT_RELEASE}}**](https://github.com/vapor/multipart-kit/releases/tag/{{MULTIPART_KIT_ID}})
|
||||
|
||||
{{MULTIPART_KIT_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [toolbox](https://github.com/vapor/toolbox)
|
||||
[**{{TOOLBOX_RELEASE}}**](https://github.com/vapor/toolbox/releases/tag/{{TOOLBOX_ID}})
|
||||
|
||||
{{TOOLBOX_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [core](https://github.com/vapor/core)
|
||||
[**{{CORE_RELEASE}}**](https://github.com/vapor/core/releases/tag/{{CORE_ID}})
|
||||
|
||||
{{CORE_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [swift-codecov-action](https://github.com/vapor/swift-codecov-action)
|
||||
[**{{SWIFT_CODECOV_ACTION_RELEASE}}**](https://github.com/vapor/swift-codecov-action/releases/tag/{{SWIFT_CODECOV_ACTION_ID}})
|
||||
|
||||
{{SWIFT_CODECOV_ACTION_DESCRIPTION}}
|
||||
|
||||
---
|
||||
|
||||
## [api-docs](https://github.com/vapor/api-docs)
|
||||
[**{{API_DOCS_RELEASE}}**](https://github.com/vapor/api-docs/releases/tag/{{API_DOCS_ID}})
|
||||
|
||||
{{API_DOCS_DESCRIPTION}}
|
||||
|
|
@ -6,6 +6,8 @@ on:
|
|||
push:
|
||||
branches:
|
||||
- main
|
||||
repository_dispatch:
|
||||
types: [deploy-trigger]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,287 @@
|
|||
name: Update Vapor Release Notes
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
on:
|
||||
schedule:
|
||||
# - cron: '0 0 * * *' # Daily at Midnight
|
||||
# - cron: '0 0 * * 0' # Weekly every Sunday at Midnight
|
||||
- cron: '0 0 */14 * 0' # Every two weeks on Sunday at Midnight
|
||||
# - cron: '0 0 1 * *' # Every first of the month at Midnight
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
fetch-release-notes:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- id: vapor_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/vapor
|
||||
|
||||
- id: fluent_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent
|
||||
|
||||
- id: fluent_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-kit
|
||||
|
||||
- id: leaf_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/leaf
|
||||
|
||||
- id: leaf_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/leaf-kit
|
||||
|
||||
- id: fluent_postgres_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-postgres-driver
|
||||
|
||||
- id: fluent_mysql_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-mysql-driver
|
||||
|
||||
- id: fluent_sqlite_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-sqlite-driver
|
||||
|
||||
- id: fluent_mongo_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/fluent-mongo-driver
|
||||
|
||||
- id: postgres_nio_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/postgres-nio
|
||||
|
||||
- id: mysql_nio_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/mysql-nio
|
||||
|
||||
- id: sqlite_nio_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/sqlite-nio
|
||||
|
||||
- id: postgres_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/postgres-kit
|
||||
|
||||
- id: mysql_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/mysql-kit
|
||||
|
||||
- id: sqlite_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/sqlite-kit
|
||||
|
||||
- id: sql_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/sql-kit
|
||||
|
||||
- id: apns_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/apns
|
||||
|
||||
- id: queues_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/queues
|
||||
|
||||
- id: queues_redis_driver_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/queues-redis-driver
|
||||
|
||||
- id: redis_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/redis
|
||||
|
||||
- id: jwt_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/jwt
|
||||
|
||||
- id: jwt_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/jwt-kit
|
||||
|
||||
- id: websocket_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/websocket-kit
|
||||
|
||||
- id: routing_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/routing-kit
|
||||
|
||||
- id: console_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/console-kit
|
||||
|
||||
- id: async_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/async-kit
|
||||
|
||||
- id: multipart_kit_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/multipart-kit
|
||||
|
||||
- id: toolbox_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/toolbox
|
||||
|
||||
- id: core_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/core
|
||||
|
||||
- id: swift_codecov_action_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/swift-codecov-action
|
||||
|
||||
- id: api_docs_release
|
||||
uses: pozetroninc/github-action-get-latest-release@master
|
||||
with:
|
||||
repository: vapor/api-docs
|
||||
|
||||
- name: Generate Release Notes from Template
|
||||
run: |
|
||||
sed \
|
||||
-e "s/{{VAPOR_RELEASE}}/${{ steps.vapor_release.outputs.release }}/g" \
|
||||
-e "s/{{VAPOR_ID}}/${{ steps.vapor_release.outputs.id }}/g" \
|
||||
-e "s/{{VAPOR_DESCRIPTION}}/${{ steps.vapor_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_RELEASE}}/${{ steps.fluent_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_ID}}/${{ steps.fluent_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_DESCRIPTION}}/${{ steps.fluent_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_KIT_RELEASE}}/${{ steps.fluent_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_KIT_ID}}/${{ steps.fluent_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_KIT_DESCRIPTION}}/${{ steps.fluent_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{LEAF_RELEASE}}/${{ steps.leaf_release.outputs.release }}/g" \
|
||||
-e "s/{{LEAF_ID}}/${{ steps.leaf_release.outputs.id }}/g" \
|
||||
-e "s/{{LEAF_DESCRIPTION}}/${{ steps.leaf_release.outputs.description }}/g" \
|
||||
-e "s/{{LEAF_KIT_RELEASE}}/${{ steps.leaf_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{LEAF_KIT_ID}}/${{ steps.leaf_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{LEAF_KIT_DESCRIPTION}}/${{ steps.leaf_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_POSTGRES_DRIVER_RELEASE}}/${{ steps.fluent_postgres_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_POSTGRES_DRIVER_ID}}/${{ steps.fluent_postgres_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_POSTGRES_DRIVER_DESCRIPTION}}/${{ steps.fluent_postgres_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_MYSQL_DRIVER_RELEASE}}/${{ steps.fluent_mysql_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_MYSQL_DRIVER_ID}}/${{ steps.fluent_mysql_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_MYSQL_DRIVER_DESCRIPTION}}/${{ steps.fluent_mysql_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_SQLITE_DRIVER_RELEASE}}/${{ steps.fluent_sqlite_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_SQLITE_DRIVER_ID}}/${{ steps.fluent_sqlite_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_SQLITE_DRIVER_DESCRIPTION}}/${{ steps.fluent_sqlite_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{FLUENT_MONGO_DRIVER_RELEASE}}/${{ steps.fluent_mongo_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{FLUENT_MONGO_DRIVER_ID}}/${{ steps.fluent_mongo_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{FLUENT_MONGO_DRIVER_DESCRIPTION}}/${{ steps.fluent_mongo_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{POSTGRES_NIO_RELEASE}}/${{ steps.postgres_nio_release.outputs.release }}/g" \
|
||||
-e "s/{{POSTGRES_NIO_ID}}/${{ steps.postgres_nio_release.outputs.id }}/g" \
|
||||
-e "s/{{POSTGRES_NIO_DESCRIPTION}}/${{ steps.postgres_nio_release.outputs.description }}/g" \
|
||||
-e "s/{{MYSQL_NIO_RELEASE}}/${{ steps.mysql_nio_release.outputs.release }}/g" \
|
||||
-e "s/{{MYSQL_NIO_ID}}/${{ steps.mysql_nio_release.outputs.id }}/g" \
|
||||
-e "s/{{MYSQL_NIO_DESCRIPTION}}/${{ steps.mysql_nio_release.outputs.description }}/g" \
|
||||
-e "s/{{SQLITE_NIO_RELEASE}}/${{ steps.sqlite_nio_release.outputs.release }}/g" \
|
||||
-e "s/{{SQLITE_NIO_ID}}/${{ steps.sqlite_nio_release.outputs.id }}/g" \
|
||||
-e "s/{{SQLITE_NIO_DESCRIPTION}}/${{ steps.sqlite_nio_release.outputs.description }}/g" \
|
||||
-e "s/{{POSTGRES_KIT_RELEASE}}/${{ steps.postgres_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{POSTGRES_KIT_ID}}/${{ steps.postgres_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{POSTGRES_KIT_DESCRIPTION}}/${{ steps.postgres_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{MYSQL_KIT_RELEASE}}/${{ steps.mysql_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{MYSQL_KIT_ID}}/${{ steps.mysql_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{MYSQL_KIT_DESCRIPTION}}/${{ steps.mysql_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{SQLITE_KIT_RELEASE}}/${{ steps.sqlite_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{SQLITE_KIT_ID}}/${{ steps.sqlite_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{SQLITE_KIT_DESCRIPTION}}/${{ steps.sqlite_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{SQL_KIT_RELEASE}}/${{ steps.sql_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{SQL_KIT_ID}}/${{ steps.sql_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{SQL_KIT_DESCRIPTION}}/${{ steps.sql_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{APNS_RELEASE}}/${{ steps.apns_release.outputs.release }}/g" \
|
||||
-e "s/{{APNS_ID}}/${{ steps.apns_release.outputs.id }}/g" \
|
||||
-e "s/{{APNS_DESCRIPTION}}/${{ steps.apns_release.outputs.description }}/g" \
|
||||
-e "s/{{QUEUES_RELEASE}}/${{ steps.queues_release.outputs.release }}/g" \
|
||||
-e "s/{{QUEUES_ID}}/${{ steps.queues_release.outputs.id }}/g" \
|
||||
-e "s/{{QUEUES_DESCRIPTION}}/${{ steps.queues_release.outputs.description }}/g" \
|
||||
-e "s/{{QUEUES_REDIS_DRIVER_RELEASE}}/${{ steps.queues_redis_driver_release.outputs.release }}/g" \
|
||||
-e "s/{{QUEUES_REDIS_DRIVER_ID}}/${{ steps.queues_redis_driver_release.outputs.id }}/g" \
|
||||
-e "s/{{QUEUES_REDIS_DRIVER_DESCRIPTION}}/${{ steps.queues_redis_driver_release.outputs.description }}/g" \
|
||||
-e "s/{{REDIS_RELEASE}}/${{ steps.redis_release.outputs.release }}/g" \
|
||||
-e "s/{{REDIS_ID}}/${{ steps.redis_release.outputs.id }}/g" \
|
||||
-e "s/{{REDIS_DESCRIPTION}}/${{ steps.redis_release.outputs.description }}/g" \
|
||||
-e "s/{{JWT_RELEASE}}/${{ steps.jwt_release.outputs.release }}/g" \
|
||||
-e "s/{{JWT_ID}}/${{ steps.jwt_release.outputs.id }}/g" \
|
||||
-e "s/{{JWT_DESCRIPTION}}/${{ steps.jwt_release.outputs.description }}/g" \
|
||||
-e "s/{{JWT_KIT_RELEASE}}/${{ steps.jwt_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{JWT_KIT_ID}}/${{ steps.jwt_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{JWT_KIT_DESCRIPTION}}/${{ steps.jwt_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{WEBSOCKET_KIT_RELEASE}}/${{ steps.websocket_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{WEBSOCKET_KIT_ID}}/${{ steps.websocket_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{WEBSOCKET_KIT_DESCRIPTION}}/${{ steps.websocket_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{ROUTING_KIT_RELEASE}}/${{ steps.routing_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{ROUTING_KIT_ID}}/${{ steps.routing_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{ROUTING_KIT_DESCRIPTION}}/${{ steps.routing_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{CONSOLE_KIT_RELEASE}}/${{ steps.console_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{CONSOLE_KIT_ID}}/${{ steps.console_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{CONSOLE_KIT_DESCRIPTION}}/${{ steps.console_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{ASYNC_KIT_RELEASE}}/${{ steps.async_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{ASYNC_KIT_ID}}/${{ steps.async_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{ASYNC_KIT_DESCRIPTION}}/${{ steps.async_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{MULTIPART_KIT_RELEASE}}/${{ steps.multipart_kit_release.outputs.release }}/g" \
|
||||
-e "s/{{MULTIPART_KIT_ID}}/${{ steps.multipart_kit_release.outputs.id }}/g" \
|
||||
-e "s/{{MULTIPART_KIT_DESCRIPTION}}/${{ steps.multipart_kit_release.outputs.description }}/g" \
|
||||
-e "s/{{TOOLBOX_RELEASE}}/${{ steps.toolbox_release.outputs.release }}/g" \
|
||||
-e "s/{{TOOLBOX_ID}}/${{ steps.toolbox_release.outputs.id }}/g" \
|
||||
-e "s/{{TOOLBOX_DESCRIPTION}}/${{ steps.toolbox_release.outputs.description }}/g" \
|
||||
-e "s/{{CORE_RELEASE}}/${{ steps.core_release.outputs.release }}/g" \
|
||||
-e "s/{{CORE_ID}}/${{ steps.core_release.outputs.id }}/g" \
|
||||
-e "s/{{CORE_DESCRIPTION}}/${{ steps.core_release.outputs.description }}/g" \
|
||||
-e "s/{{SWIFT_CODECOV_ACTION_RELEASE}}/${{ steps.swift_codecov_action_release.outputs.release }}/g" \
|
||||
-e "s/{{SWIFT_CODECOV_ACTION_ID}}/${{ steps.swift_codecov_action_release.outputs.id }}/g" \
|
||||
-e "s/{{SWIFT_CODECOV_ACTION_DESCRIPTION}}/${{ steps.swift_codecov_action_release.outputs.description }}/g" \
|
||||
-e "s/{{API_DOCS_RELEASE}}/${{ steps.api_docs_release.outputs.release }}/g" \
|
||||
-e "s/{{API_DOCS_ID}}/${{ steps.api_docs_release.outputs.id }}/g" \
|
||||
-e "s/{{API_DOCS_DESCRIPTION}}/${{ steps.api_docs_release.outputs.description }}/g" \
|
||||
.github/release-notes.template.md > docs/release-notes.md
|
||||
|
||||
- name: Commit and Push Changes
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
git config --global user.name 'GitHub Actions'
|
||||
git config --global user.email 'actions@github.com'
|
||||
git add docs/release-notes.md
|
||||
git commit -m 'Update Vapor Release Notes'
|
||||
git push
|
||||
|
||||
- name: Trigger Deploy Workflow
|
||||
uses: peter-evans/repository-dispatch@v2
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
event-type: deploy-trigger
|
||||
|
|
@ -68,7 +68,7 @@ let id = try planet.requireID()
|
|||
|
||||
### Exists
|
||||
|
||||
`@ID` tiene una propiedad `exists` que representa si el modelo existe o no en la base de datos. Cuando inicializas un modelo, el valor es `false`. Después de guardar un modelo o recuperarlo de la base de datos, the value is `true`. Esta propiedad es mutable.
|
||||
`@ID` tiene una propiedad `exists` que representa si el modelo existe o no en la base de datos. Cuando inicializas un modelo, el valor es `false`. Después de guardar un modelo o recuperarlo de la base de datos, el valor `true`. Esta propiedad es mutable.
|
||||
|
||||
```swift
|
||||
if planet.$id.exists {
|
||||
|
|
|
|||
|
|
@ -74,7 +74,6 @@ Debajo hay un listado con los tipos de datos soportados.
|
|||
|`.uint{8,16,32,64}`|`UInt{8,16,32,64}`|
|
||||
|`.bool`|`Bool`|
|
||||
|`.datetime`|`Date` (recomendado)|
|
||||
|`.time`|`Date` (omitiendo día, mes y año)|
|
||||
|`.date`|`Date` (omitiendo hora y minutos del día)|
|
||||
|`.float`|`Float`|
|
||||
|`.double`|`Double`|
|
||||
|
|
|
|||
|
|
@ -74,7 +74,6 @@ Supported field data types are listed below.
|
|||
|`.uint{8,16,32,64}`|`UInt{8,16,32,64}`|
|
||||
|`.bool`|`Bool`|
|
||||
|`.datetime`|`Date` (recommended)|
|
||||
|`.time`|`Date` (omitting day, month, and year)|
|
||||
|`.date`|`Date` (omitting time of day)|
|
||||
|`.float`|`Float`|
|
||||
|`.double`|`Double`|
|
||||
|
|
|
|||
|
|
@ -74,7 +74,6 @@ Ondersteunde velddatatypes staan hieronder vermeld.
|
|||
|`.uint{8,16,32,64}`|`UInt{8,16,32,64}`|
|
||||
|`.bool`|`Bool`|
|
||||
|`.datetime`|`Date` (aanbevolen)|
|
||||
|`.time`|`Date` (zonder dag, maand en jaar)|
|
||||
|`.date`|`Date` (het tijdstip weglaten)|
|
||||
|`.float`|`Float`|
|
||||
|`.double`|`Double`|
|
||||
|
|
|
|||
|
|
@ -74,7 +74,6 @@ database.schema("planets").delete()
|
|||
|`.uint{8,16,32,64}`|`UInt{8,16,32,64}`|
|
||||
|`.bool`|`Bool`|
|
||||
|`.datetime`|`Date` (recommended)|
|
||||
|`.time`|`Date` (omitting day, month, and year)|
|
||||
|`.date`|`Date` (omitting time of day)|
|
||||
|`.float`|`Float`|
|
||||
|`.double`|`Double`|
|
||||
|
|
@ -404,4 +403,4 @@ try await db.schema("planets", space: "mirror_universe")
|
|||
.id()
|
||||
// ...
|
||||
.create()
|
||||
```
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,65 +0,0 @@
|
|||
# Notas de Versiones de Vapor
|
||||
|
||||
Debido a que es difícil, si no imposible mantener la documentación actualizada constantemente, aquí encontrarás notas de lanzamiento de varios paquetes diferentes vinculados al ecosistema Vapor.
|
||||
|
||||
## vapor
|
||||
|
||||
## fluent
|
||||
|
||||
## fluent-kit
|
||||
|
||||
## leaf
|
||||
|
||||
## leaf-kit
|
||||
|
||||
## fluent-postgres-driver
|
||||
|
||||
## fluent-mysql-driver
|
||||
|
||||
## fluent-sqlite-driver
|
||||
|
||||
## fluent-mongo-driver
|
||||
|
||||
## postgres-nio
|
||||
|
||||
## mysql-nio
|
||||
|
||||
## sqlite-nio
|
||||
|
||||
## postgres-kit
|
||||
|
||||
## mysql-kit
|
||||
|
||||
## sqlite-kit
|
||||
|
||||
## sql-kit
|
||||
|
||||
## apns
|
||||
|
||||
## queues
|
||||
|
||||
## queues-redis-driver
|
||||
|
||||
## redis
|
||||
|
||||
## jwt
|
||||
|
||||
## jwt-kit
|
||||
|
||||
## websocket-kit
|
||||
|
||||
## routing-kit
|
||||
|
||||
## console-kit
|
||||
|
||||
## async-kit
|
||||
|
||||
## multipart-kit
|
||||
|
||||
## toolbox
|
||||
|
||||
## core
|
||||
|
||||
## swift-codecov-action
|
||||
|
||||
## api-docs
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
# Note sulla Versione di Vapor
|
||||
|
||||
Siccome è difficile, se non impossibile, tenere la documentazione aggiornata costantemente, qui troverai le note sulla versione (release notes) di vari pacchetti differenti legati all'ecosistema Vapor.
|
||||
|
||||
## vapor
|
||||
|
||||
## fluent
|
||||
|
||||
## fluent-kit
|
||||
|
||||
## leaf
|
||||
|
||||
## leaf-kit
|
||||
|
||||
## fluent-postgres-driver
|
||||
|
||||
## fluent-mysql-driver
|
||||
|
||||
## fluent-sqlite-driver
|
||||
|
||||
## fluent-mongo-driver
|
||||
|
||||
## postgres-nio
|
||||
|
||||
## mysql-nio
|
||||
|
||||
## sqlite-nio
|
||||
|
||||
## postgres-kit
|
||||
|
||||
## mysql-kit
|
||||
|
||||
## sqlite-kit
|
||||
|
||||
## sql-kit
|
||||
|
||||
## apns
|
||||
|
||||
## queues
|
||||
|
||||
## queues-redis-driver
|
||||
|
||||
## redis
|
||||
|
||||
## jwt
|
||||
|
||||
## jwt-kit
|
||||
|
||||
## websocket-kit
|
||||
|
||||
## routing-kit
|
||||
|
||||
## console-kit
|
||||
|
||||
## async-kit
|
||||
|
||||
## multipart-kit
|
||||
|
||||
## toolbox
|
||||
|
||||
## core
|
||||
|
||||
## swift-codecov-action
|
||||
|
||||
## api-docs
|
||||
|
|
@ -2,64 +2,124 @@
|
|||
|
||||
Because it is hard, if not impossible to keep the documentation up-to-date constantly, here you will find release notes of various different packages linked to the Vapor ecosystem.
|
||||
|
||||
## vapor
|
||||
## [vapor](https://github.com/vapor/vapor)
|
||||
|
||||
## fluent
|
||||
---
|
||||
|
||||
## fluent-kit
|
||||
## [fluent](https://github.com/vapor/fluent)
|
||||
|
||||
## leaf
|
||||
---
|
||||
|
||||
## leaf-kit
|
||||
## [fluent-kit](https://github.com/vapor/fluent-kit)
|
||||
|
||||
## fluent-postgres-driver
|
||||
---
|
||||
|
||||
## fluent-mysql-driver
|
||||
## [leaf](https://github.com/vapor/leaf)
|
||||
|
||||
## fluent-sqlite-driver
|
||||
---
|
||||
|
||||
## fluent-mongo-driver
|
||||
## [leaf-kit](https://github.com/vapor/leaf-kit)
|
||||
|
||||
## postgres-nio
|
||||
---
|
||||
|
||||
## mysql-nio
|
||||
## [fluent-postgres-driver](https://github.com/vapor/fluent-postgres-driver)
|
||||
|
||||
## sqlite-nio
|
||||
---
|
||||
|
||||
## postgres-kit
|
||||
## [fluent-mysql-driver](https://github.com/vapor/fluent-mysql-driver)
|
||||
|
||||
## mysql-kit
|
||||
---
|
||||
|
||||
## sqlite-kit
|
||||
## [fluent-sqlite-driver](https://github.com/vapor/fluent-sqlite-driver)
|
||||
|
||||
## sql-kit
|
||||
---
|
||||
|
||||
## apns
|
||||
## [fluent-mongo-driver](https://github.com/vapor/fluent-mongo-driver)
|
||||
|
||||
## queues
|
||||
---
|
||||
|
||||
## queues-redis-driver
|
||||
## [postgres-nio](https://github.com/vapor/postgres-nio)
|
||||
|
||||
## redis
|
||||
---
|
||||
|
||||
## jwt
|
||||
## [mysql-nio](https://github.com/vapor/mysql-nio)
|
||||
|
||||
## jwt-kit
|
||||
---
|
||||
|
||||
## websocket-kit
|
||||
## [sqlite-nio](https://github.com/vapor/sqlite-nio)
|
||||
|
||||
## routing-kit
|
||||
---
|
||||
|
||||
## console-kit
|
||||
## [postgres-kit](https://github.com/vapor/postgres-kit)
|
||||
|
||||
## async-kit
|
||||
---
|
||||
|
||||
## multipart-kit
|
||||
## [mysql-kit](https://github.com/vapor/mysql-kit)
|
||||
|
||||
## toolbox
|
||||
---
|
||||
|
||||
## core
|
||||
## [sqlite-kit](https://github.com/vapor/sqlite-kit)
|
||||
|
||||
## swift-codecov-action
|
||||
---
|
||||
|
||||
## api-docs
|
||||
## [sql-kit](https://github.com/vapor/sql-kit)
|
||||
|
||||
---
|
||||
|
||||
## [apns](https://github.com/vapor/apns)
|
||||
|
||||
---
|
||||
|
||||
## [queues](https://github.com/vapor/queues)
|
||||
|
||||
---
|
||||
|
||||
## [queues-redis-driver](https://github.com/vapor/queues-redis-driver)
|
||||
|
||||
---
|
||||
|
||||
## [redis](https://github.com/vapor/redis)
|
||||
|
||||
---
|
||||
|
||||
## [jwt](https://github.com/vapor/jwt)
|
||||
|
||||
---
|
||||
|
||||
## [jwt-kit](https://github.com/vapor/jwt-kit)
|
||||
|
||||
---
|
||||
|
||||
## [websocket-kit](https://github.com/vapor/websocket-kit)
|
||||
|
||||
---
|
||||
|
||||
## [routing-kit](https://github.com/vapor/routing-kit)
|
||||
|
||||
---
|
||||
|
||||
## [console-kit](https://github.com/vapor/console-kit)
|
||||
|
||||
---
|
||||
|
||||
## [async-kit](https://github.com/vapor/async-kit)
|
||||
|
||||
---
|
||||
|
||||
## [multipart-kit](https://github.com/vapor/multipart-kit)
|
||||
|
||||
---
|
||||
|
||||
## [toolbox](https://github.com/vapor/toolbox)
|
||||
|
||||
---
|
||||
|
||||
## [core](https://github.com/vapor/core)
|
||||
|
||||
---
|
||||
|
||||
## [swift-codecov-action](https://github.com/vapor/swift-codecov-action)
|
||||
|
||||
---
|
||||
|
||||
## [api-docs](https://github.com/vapor/api-docs)
|
||||
|
|
|
|||
|
|
@ -105,16 +105,12 @@ struct UserAuthenticator: AsyncBasicAuthenticator {
|
|||
}
|
||||
```
|
||||
|
||||
If you add this authenticator to your app, and test the route defined above, you should see the name `"Vapor"` returned for a successful login. If the credentials are not correct, you should see a `401 Unauthorized` error.
|
||||
|
||||
|
||||
|
||||
Este protocolo requiere que implementes `authenticate(basic:for:)`, que se llamará cuando una solicitud entrante contenga la cabecera `Authorization: Basic...`. Se pasa al método una estructura `BasicAuthorization` que contiene el nombre de usuario y la contraseña.
|
||||
|
||||
En este autenticador de prueba, el nombre de usuario y la contraseña se prueban con valores codificados. En un autenticador real, puedes compararlo con una base de datos o una API externa. Es por eso que el método `authenticate` te permite devolver un futuro.
|
||||
|
||||
!!! tip "Consejo"
|
||||
Las contraseñas nunca deben almacenarse en una base de datos como texto sin formato. Utiliza siempre un hash de contraseña para comparar.
|
||||
Las contraseñas nunca deben almacenarse en una base de datos como texto plano. Utiliza siempre un hash de contraseña para comparar.
|
||||
|
||||
Si los parámetros de autenticación son correctos, en este caso coinciden con los valores codificados, se inicia sesión un `User` llamado Vapor. Si los parámetros de autenticación no coinciden, no se inicia sesión de usuario, lo que significa que la autenticación falló.
|
||||
|
||||
|
|
@ -757,16 +753,12 @@ Estos middlewares hacen lo siguiente:
|
|||
|
||||
### Protegiendo Rutas
|
||||
|
||||
When protecting routes for an API, you traditionally return an HTTP response with a status code such as **401 Unauthorized** if the request is not authenticated. However, this isn't a very good user experience for someone using a browser. Vapor provides a `RedirectMiddleware` for any `Authenticatable` type to use in this scenario:
|
||||
|
||||
Al proteger rutas en una API, tradicionalmente se devuelve una respuesta HTTP con un código de estado como **401 Unauthorized** si la solicitud no está autenticada. Sin embargo, esta no es una muy buena experiencia de usuario para alguien que usa un navegador. Vapor proporciona un `RedirectMiddleware` para cualquier tipo `Authenticatable` para usar en este escenario:
|
||||
|
||||
```swift
|
||||
let protectedRoutes = app.grouped(User.redirectMiddleware(path: "/login?loginRequired=true"))
|
||||
```
|
||||
|
||||
The `RedirectMiddleware` object also supports passing a closure that returns the redirect path as a `String` during creation for advanced url handling. For instance, including the path redirected from as query parameter to the redirect target for state management.
|
||||
|
||||
El objeto `RedirectMiddleware` también admite pasar un closure que devuelve la ruta de redireccionamiento como un `String` durante la creación para un manejo avanzado de URL. Por ejemplo, incluye la ruta redirigida como parámetro de consulta al destino de redirección para la gestión del estado.
|
||||
|
||||
```swift
|
||||
|
|
|
|||
Loading…
Reference in New Issue