15 个版本
0.1.16 | 2022 年 11 月 9 日 |
---|---|
0.1.14 | 2022 年 11 月 7 日 |
#495 in HTTP 服务器
每月 46 次下载
在 test-shisho-gql-derive 中使用
180KB
5K SLoC
Shisho 策略 Rust SDK
这是一个辅助 Crates,用于 Shisho 云工作流程以编写自定义策略。
这是编写自定义策略的核心库。
decision
包含了output data
(=decsion
结果) 的结构体。gqlgen
包含了从geraphql
架构和查询转换的功能。原始代码来自graphql-client/graphql_client_codegen
schema
包含了datasource
graphql 查询的字符串。该架构由代码生成器生成。
所需 Crates
这需要辅助 Crates,shisho-gql-derive
示例用法
use shisho_gql_derive::*;
pub use shisho_policy_sdk::decision::data_entry::*;
pub use shisho_policy_sdk::decision::github::organization::org_owners::*;
pub use shisho_policy_sdk::decision::*;
use self::input::InputGithubOrganizations;
#[allow(dead_code)]
#[derive(ShishoGraphQLQuery)]
#[shisho_graphql(
query_path = "src/policies/organization/org_owners/query.graphql",
response_derives = "Debug, PartialEq"
)]
pub struct Input;
pub fn decisions(input: input::InputData) -> Vec<Decision<OrgOwnersEntryData>> {
input
.github
.organizations
.into_iter()
.map(|o: InputGithubOrganizations| decide_on_each_org(o))
.collect()
}
pub fn decide_on_each_org(o: InputGithubOrganizations) -> Decision<OrgOwnersEntryData> {
...
}
参考
graphql-客户端/graphql_client_codegen
- 参考 Shisho 云 GraphQL 架构的静态字符串,而不是参数引用
依赖项
~1.8–2.7MB
~58K SLoC