Skip to repository content

tenant.openagents/omega

No repository description is available.

OpenAgents Git authority 2026-07-28T06:49:26.757Z Public web read
NIP-34 coordinate30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omega
MaintainersHidden in public view
References2 branches · 1 tag
Read-only clonegit clone https://openagents.com/git/tenant.openagents/omega.git
Browse files

cherry_pick.rs

67 lines · 2.3 KB · rust
1use gh_workflow::*;
2
3use crate::tasks::workflows::{
4    runners,
5    steps::{
6        self, CommonPermissionSets, NamedJob, RepositoryTarget, TokenPermissions, ZippyGitIdentity,
7        named,
8    },
9    vars::{StepOutput, WorkflowInput},
10};
11
12pub fn cherry_pick() -> Workflow {
13    let branch = WorkflowInput::string("branch", None);
14    let commit = WorkflowInput::string("commit", None);
15    let channel = WorkflowInput::string("channel", None);
16    let pr_number = WorkflowInput::string("pr_number", None);
17    let cherry_pick = run_cherry_pick(&branch, &commit, &channel);
18    named::workflow()
19        .with_minimal_permissions()
20        .run_name(format!("cherry_pick to {channel} #{pr_number}"))
21        .on(Event::default().workflow_dispatch(
22            WorkflowDispatch::default()
23                .add_input(commit.name, commit.input())
24                .add_input(branch.name, branch.input())
25                .add_input(channel.name, channel.input())
26                .add_input(pr_number.name, pr_number.input()),
27        ))
28        .add_job(cherry_pick.name, cherry_pick.job)
29}
30
31fn run_cherry_pick(
32    branch: &WorkflowInput,
33    commit: &WorkflowInput,
34    channel: &WorkflowInput,
35) -> NamedJob {
36    fn cherry_pick(
37        branch: &WorkflowInput,
38        commit: &WorkflowInput,
39        channel: &WorkflowInput,
40        token: &StepOutput,
41    ) -> Step<Run> {
42        named::bash(r#"./script/cherry-pick "$BRANCH" "$COMMIT" "$CHANNEL""#)
43            .add_env(("BRANCH", branch.to_string()))
44            .add_env(("COMMIT", commit.to_string()))
45            .add_env(("CHANNEL", channel.to_string()))
46            .with_zippy_git_identity()
47            .add_env(("GITHUB_TOKEN", token))
48    }
49
50    let (authenticate, token) = steps::authenticate_as_zippy()
51        .for_repository(RepositoryTarget::current())
52        .with_permissions([
53            (TokenPermissions::Contents, Level::Write),
54            (TokenPermissions::Workflows, Level::Write),
55            (TokenPermissions::PullRequests, Level::Write),
56        ])
57        .into();
58
59    named::job(
60        Job::default()
61            .runs_on(runners::LINUX_SMALL)
62            .add_step(authenticate)
63            .add_step(steps::checkout_repo().with_token(&token))
64            .add_step(cherry_pick(branch, commit, channel, &token)),
65    )
66}
67
Served at tenant.openagents/omega Member data and write actions are omitted.