Shisho Policy Rust SDK

This is a helper crate for Shisho Cloud workflows to write custom policies.

This is the core library to write custom policies. - decision includes the structs of output data(=decsion results). - gqlgen includes the functionalities of converting from geraphql schema and queries. The original code comes from graphql-client/graphql_client_codegen - schema includes the string of datasource graphql query. The schema is generated by the codegen.

Required crate

This required the helper crate, shisho-gql-derive

Example usage

``` use shishogqlderive::; pub use shisho_policy_sdk::decision::data_entry::; pub use shishopolicysdk::decision::github::organization::orgowners::*; pub use shishopolicy_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> { input .github .organizations .intoiter() .map(|o: InputGithubOrganizations| decideoneachorg(o)) .collect() }

pub fn decideoneach_org(o: InputGithubOrganizations) -> Decision { ... } ```

Reference