pullsmith 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,2 +1,140 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
1
|
+
# Pullsmith
|
|
2
|
+
|
|
3
|
+
Run AI agents in your CI/CD pipeline with a single YAML file.
|
|
4
|
+
|
|
5
|
+
Pullsmith connects your GitHub repo, writes a lightweight `.pullsmith` config, and installs a GitHub Actions workflow that can ask Claude Code to investigate an error, make a fix, push a branch, and open a pull request.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g pullsmith
|
|
9
|
+
pullsmith init
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## What It Does
|
|
13
|
+
|
|
14
|
+
Pullsmith gives your repository an AI-powered repair loop:
|
|
15
|
+
|
|
16
|
+
1. A Sentry-style error title is passed into a GitHub Actions workflow.
|
|
17
|
+
2. The workflow reads your `.pullsmith` agent config.
|
|
18
|
+
3. Claude Code runs inside CI with your selected model and prompt.
|
|
19
|
+
4. If code changes are produced, Pullsmith commits them to a new branch.
|
|
20
|
+
5. A pull request is opened with the proposed fix.
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
Install the CLI:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install -g pullsmith
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Run setup from the root of a GitHub repository:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pullsmith init
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Pullsmith will:
|
|
37
|
+
|
|
38
|
+
- Open your browser to authenticate with Pullsmith.
|
|
39
|
+
- Save CLI credentials locally at `~/.pullsmith/credentials`.
|
|
40
|
+
- Create a `.pullsmith` config file if one does not exist.
|
|
41
|
+
- Check that your repo has an Anthropic/Claude API key in GitHub Actions secrets.
|
|
42
|
+
- Create `.github/workflows/pullsmith.yaml`.
|
|
43
|
+
|
|
44
|
+
## Requirements
|
|
45
|
+
|
|
46
|
+
- Node.js 18 or newer.
|
|
47
|
+
- A GitHub repository with an `origin` remote.
|
|
48
|
+
- A Pullsmith account at `https://pullsmith.dev`.
|
|
49
|
+
- A GitHub Actions secret named `ANTHROPIC_API_KEY` or `CLAUDE_API_KEY`.
|
|
50
|
+
|
|
51
|
+
## Commands
|
|
52
|
+
|
|
53
|
+
| Command | Description |
|
|
54
|
+
| --- | --- |
|
|
55
|
+
| `pullsmith init` | Authenticate, create `.pullsmith`, and install the GitHub Actions workflow. |
|
|
56
|
+
| `pullsmith validate` | Validate your `.pullsmith` file with the Pullsmith API. |
|
|
57
|
+
| `pullsmith doctor` | Check that the current repo is connected and ready. |
|
|
58
|
+
|
|
59
|
+
## Configuration
|
|
60
|
+
|
|
61
|
+
Pullsmith stores agent behavior in `.pullsmith`:
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
sentry_agent: sentry_error_fixer
|
|
65
|
+
|
|
66
|
+
agents:
|
|
67
|
+
- name: sentry_error_fixer
|
|
68
|
+
prompt: |
|
|
69
|
+
Investigate the error, find the root cause, and make the smallest safe fix.
|
|
70
|
+
model: claude-haiku-4-5
|
|
71
|
+
provider: claude
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The generated GitHub Actions workflow reads this file to decide which agent, prompt, and model to use.
|
|
75
|
+
|
|
76
|
+
## GitHub Actions
|
|
77
|
+
|
|
78
|
+
After `pullsmith init`, your repo gets a workflow at:
|
|
79
|
+
|
|
80
|
+
```txt
|
|
81
|
+
.github/workflows/pullsmith.yaml
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The workflow can be run manually with an `error` input:
|
|
85
|
+
|
|
86
|
+
```txt
|
|
87
|
+
Sentry error title
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
When the workflow runs, it creates a branch named like:
|
|
91
|
+
|
|
92
|
+
```txt
|
|
93
|
+
pullsmith/fix-your-error-title
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Then it opens a pull request with Claude Code's proposed fix.
|
|
97
|
+
|
|
98
|
+
## Local Development
|
|
99
|
+
|
|
100
|
+
By default, the CLI talks to production:
|
|
101
|
+
|
|
102
|
+
```txt
|
|
103
|
+
https://pullsmith.dev
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
To point the CLI at a local Pullsmith app, set `PULLSMITH_BASE_URL`:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
PULLSMITH_BASE_URL=http://localhost:3000 node bin/pullsmith.js init
|
|
110
|
+
PULLSMITH_BASE_URL=http://localhost:3000 node bin/pullsmith.js validate
|
|
111
|
+
PULLSMITH_BASE_URL=http://localhost:3000 node bin/pullsmith.js doctor
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Publishing
|
|
115
|
+
|
|
116
|
+
Maintainers can publish the package directly from this directory:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
npm publish
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
If the version already exists on npm, bump it first:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm version patch
|
|
126
|
+
npm publish
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Security Notes
|
|
130
|
+
|
|
131
|
+
- Pullsmith stores local CLI credentials in `~/.pullsmith/credentials`.
|
|
132
|
+
- Anthropic credentials should stay in GitHub Actions secrets.
|
|
133
|
+
- The generated workflow grants `contents: write` and `pull-requests: write` so it can push a branch and open a PR.
|
|
134
|
+
- Review generated pull requests before merging.
|
|
135
|
+
|
|
136
|
+
## Links
|
|
137
|
+
|
|
138
|
+
- Website: https://pullsmith.dev
|
|
139
|
+
- Repository: https://github.com/pullsmith/cli
|
|
140
|
+
- Issues: https://github.com/pullsmith/cli/issues
|