1个不稳定版本
0.1.0 | 2022年11月9日 |
---|
#963 在 HTTP服务器
12KB
187 行
Shisho策略Rust SDK
这是Shisho云工作流程的辅助Crates,用于编写自定义策略。
这是编写自定义策略的核心库。
decision
包含了输出数据
(=决策
结果)的结构体。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模式的静态字符串,而不是参数引用
依赖
~0.4–1MB
~22K SLoC