gh_workflow/
permissions.rs1use derive_setters::Setters;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Setters, Serialize, Deserialize, Clone, Default, PartialEq, Eq)]
8#[serde(rename_all = "kebab-case")]
9#[setters(strip_option, into)]
10pub struct Permissions {
11 #[serde(skip_serializing_if = "Option::is_none")]
13 pub actions: Option<Level>,
14
15 #[serde(skip_serializing_if = "Option::is_none")]
17 pub contents: Option<Level>,
18
19 #[serde(skip_serializing_if = "Option::is_none")]
21 pub issues: Option<Level>,
22
23 #[serde(skip_serializing_if = "Option::is_none")]
25 pub pull_requests: Option<Level>,
26
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub deployments: Option<Level>,
30
31 #[serde(skip_serializing_if = "Option::is_none")]
33 pub checks: Option<Level>,
34
35 #[serde(skip_serializing_if = "Option::is_none")]
37 pub statuses: Option<Level>,
38
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub packages: Option<Level>,
42
43 #[serde(skip_serializing_if = "Option::is_none")]
45 pub pages: Option<Level>,
46
47 #[serde(skip_serializing_if = "Option::is_none")]
49 pub id_token: Option<Level>,
50}
51
52#[derive(Debug, Serialize, Deserialize, Clone, Copy, Default, PartialEq, Eq)]
54#[serde(rename_all = "kebab-case")]
55pub enum Level {
56 Read,
57 Write,
58 #[default]
59 None,
60}