Product Station · Dev & ops
GitHub
Open a pull request and comment, never push to the main branch.
The control station, in brief
This station sits between your agent and the tool. Before any call, it checks who is acting, shows only the useful tools, applies the rules below and keeps track of the task.
It can
- Read a repository
- Open a pull request from a branch
- Comment
It asks a human for
- Merge a pull request
It never has access to
- Push to main
Scenario Replays
An agent works through the station. Simulated scenarios, no real data, no key required.
Copy the station, change a limit or an approval step in its configuration file, and get your own station.
The configuration in detail
Everything the station does fits in this file. The replay above applies it, and a copy starts from it. The values are examples to adapt, not a recommendation.
station:
id: github
kind: product
policies:
- {policy: branch-only, at: submit}
- {policy: human-for-merge, at: submit}
global:
language: en
timezone: Europe/Paris
apis:
- id: github-repos
operations:
readFile: {access: read}
openPullRequest: {access: write, risk: medium}
commentOnPullRequest: {access: write, risk: low}
mergePullRequest: {access: write, risk: high}
# not listed, so not available to the agent:
# pushToMain
profiles:
contributor:
allow: [readFile, openPullRequest, commentOnPullRequest, mergePullRequest]
policies:
branch-only:
type: rule
when: "action == openPullRequest and branch == main"
effect: deny
reason: "A pull request always starts from a branch, never from main."
human-for-merge:
type: rule
when: "action == mergePullRequest"
effect: needs-human
reason: "A merge needs a human's review."
skills:
- {id: read-file, uses: readFile}
- {id: open-pull-request, uses: openPullRequest}
- {id: comment-on-pull-request, uses: commentOnPullRequest}
- {id: merge-pull-request, uses: mergePullRequest}
playbooks:
- id: propose-a-change
tasks: [read-file, open-pull-request, comment-on-pull-request]Shared copies
Copies that their authors choose to share will appear here. Each one keeps a link to this original station.