test-shisho-policy-sdk

Crates.iotest-shisho-policy-sdk
lib.rstest-shisho-policy-sdk
version0.1.16
sourcesrc
created_at2022-11-02 10:27:59.118343
updated_at2022-11-09 02:13:55.602536
descriptionThis is the SDK of Shisho Cloud policies to write your custom policies in Rust.
homepage
repository
max_upload_size
id703415
size179,943
yoshi (y-matsutomo)

documentation

https://docs.rs/test-shisho-policy-sdk

README

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 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> {
    ...
}

Reference

Commit count: 0

cargo fmt