Bo-Yi Wu
84ecd16f9c
fix(deps): update Go dependencies to latest versions ( #955 )
...
## Summary
- Upgrade all Go module dependencies to their latest versions
- Includes updates to charm.land, golang.org/x, goldmark, go-crypto, and other indirect dependencies
- Project builds cleanly with all updates
## Test plan
- [x] `go build ./...` passes
- [x] CI pipeline passes
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Reviewed-on: https://gitea.com/gitea/tea/pulls/955
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2026-04-10 01:40:40 +00:00
Bo-Yi Wu and Lunny Xiao
53e53e1067
feat(workflows): add dispatch, view, enable and disable subcommands ( #952 )
...
## Summary
- Add `tea actions workflows dispatch` to trigger `workflow_dispatch` events with `--ref`, `--input key=value`, and `--follow` for log tailing
- Add `tea actions workflows view` to show workflow details
- Add `tea actions workflows enable` and `disable` to toggle workflow state
- Rewrite `workflows list` to use the Workflow API instead of file listing
- Remove dead `WorkflowsList` print function that used `ContentsResponse`
- Update `CLI.md` and `example-workflows.md` with usage documentation and examples
## Motivation
Enable re-triggering specific workflows from the CLI, which is essential for AI-driven PR flows where a specific workflow needs to be re-run after pushing changes.
Leverages the 5 workflow API endpoints already supported by the Go SDK (v0.24.1) from go-gitea/gitea#33545 :
- `ListRepoActionWorkflows`
- `GetRepoActionWorkflow`
- `DispatchRepoActionWorkflow` (with `returnRunDetails` support)
- `EnableRepoActionWorkflow`
- `DisableRepoActionWorkflow`
## New commands
\`\`\`
tea actions workflows
├── list (rewritten to use Workflow API)
├── view <id> (new)
├── dispatch <id> (new)
├── enable <id> (new)
└── disable <id> (new)
\`\`\`
### Usage examples
\`\`\`bash
# Dispatch workflow on current branch
tea actions workflows dispatch deploy.yml
# Dispatch with specific ref and inputs
tea actions workflows dispatch deploy.yml --ref main --input env=staging --input version=1.2.3
# Dispatch and follow logs
tea actions workflows dispatch ci.yml --ref feature/my-pr --follow
# View workflow details
tea actions workflows view deploy.yml
# Enable/disable workflows
tea actions workflows enable deploy.yml
tea actions workflows disable deploy.yml --confirm
\`\`\`
## Test plan
- [x] `go build ./...` passes
- [x] `go test ./...` passes
- [x] `go vet ./...` passes
- [x] `make lint` — 0 issues
- [x] `make docs-check` — CLI.md is up to date
- [x] Manual test: `tea actions workflows list` shows workflows from API
- [x] Manual test: `tea actions workflows dispatch <workflow> --ref main` triggers a run
- [x] Manual test: `tea actions workflows view <workflow>` shows details
---------
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com >
Reviewed-on: https://gitea.com/gitea/tea/pulls/952
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2026-04-09 20:03:33 +00:00
Bo-Yi Wu
662e339bf9
feat(pulls): add resolve, unresolve and review-comments subcommands ( #948 )
...
## Summary
- Add `tea pulls review-comments <pull-index>` subcommand to list PR review comments with configurable fields (supports table/json/csv/yaml output)
- Add `tea pulls resolve <comment-id>` subcommand to mark a review comment as resolved
- Add `tea pulls unresolve <comment-id>` subcommand to unmark a review comment as resolved
- Follow existing approve/reject pattern with shared `runResolveComment` helper in `review_helpers.go`
## Usage
```bash
# List review comments for PR #42
tea pulls review-comments 42
# Resolve comment #789
tea pulls resolve 789
# Unresolve comment #789
tea pulls unresolve 789
# Custom output fields
tea pulls review-comments 42 --fields id,path,body,resolver --output json
```
## New Files
| File | Description |
|------|-------------|
| `cmd/pulls/review_comments.go` | `review-comments` subcommand |
| `cmd/pulls/resolve.go` | `resolve` subcommand |
| `cmd/pulls/unresolve.go` | `unresolve` subcommand |
| `modules/task/pull_review_comment.go` | Task layer: list, resolve, unresolve via SDK |
| `modules/print/pull_review_comment.go` | Print formatting with `printable` interface |
## Modified Files
| File | Description |
|------|-------------|
| `cmd/pulls.go` | Register 3 new commands |
| `cmd/pulls/review_helpers.go` | Add shared `runResolveComment` helper |
## Test Plan
- [x] `go build ./...` passes
- [x] `go vet ./...` passes
- [x] `tea pulls review-comments <PR-index>` lists comments with IDs
- [x] `tea pulls resolve <comment-id>` resolves successfully
- [x] `tea pulls unresolve <comment-id>` unresolves successfully
- [x] `--output json` produces valid JSON output
Reviewed-on: https://gitea.com/gitea/tea/pulls/948
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2026-04-08 03:36:09 +00:00
appleboy and Lunny Xiao
5bb73667d1
docs: add v0.13.0 release notes to CHANGELOG ( #945 )
...
Add v0.13.0 release notes to CHANGELOG.md covering 21 commits since v0.12.0: 5 new features, 2 enhancements, and dependency updates.
Reviewed-on: https://gitea.com/gitea/tea/pulls/945
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Co-authored-by: appleboy <appleboy.tw@gmail.com >
Co-committed-by: appleboy <appleboy.tw@gmail.com >
2026-04-05 16:42:27 +00:00
appleboy
f329f6fab2
feat(pulls): add edit subcommand for pull requests ( #944 )
...
## Summary
- Add `tea pr edit` subcommand to support editing pull request properties (description, title, milestone, deadline, assignees, labels, reviewers)
- Add `--add-reviewers` / `--remove-reviewers` flags for managing PR reviewers via `CreateReviewRequests` / `DeleteReviewRequests` API
- Extract shared helpers (`ResolveLabelOpts`, `ApplyLabelChanges`, `ApplyReviewerChanges`, `ResolveMilestoneID`) into `modules/task/labels.go` to reduce duplication between issue and PR editing
- Refactor existing `EditIssue` to use the same shared helpers
- Wrap original error in `ResolveMilestoneID` to preserve underlying error context
## Usage
```bash
# Edit PR description
tea pr edit 1 --description "new description"
# Edit PR title
tea pr edit 1 --title "new title"
# Edit multiple fields
tea pr edit 1 --title "new title" --description "new desc" --add-labels "bug"
# Edit multiple PRs
tea pr edit 1 2 3 --add-assignees "user1"
# Add reviewers
tea pr edit 1 --add-reviewers "user1,user2"
# Remove reviewers
tea pr edit 1 --remove-reviewers "user1"
```
## Test plan
- [x] `go build .` succeeds
- [x] `go test ./...` passes
- [x] `make clean && make vet && make lint && make fmt-check && make docs-check && make build` all pass
- [x] `tea pr edit <idx> --description "test"` updates PR description on a Gitea instance
- [x] `tea pr edit <idx> --title "test"` updates PR title
- [x] `tea pr edit <idx> --add-labels "bug"` adds label
- [x] `tea pr edit <idx> --add-reviewers "user"` requests review
- [x] `tea pr edit <idx> --remove-reviewers "user"` removes reviewer
- [x] Existing `tea issues edit` still works correctly after refactor
Reviewed-on: https://gitea.com/gitea/tea/pulls/944
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Co-authored-by: appleboy <appleboy.tw@gmail.com >
Co-committed-by: appleboy <appleboy.tw@gmail.com >
2026-04-05 05:35:15 +00:00
Bo-Yi Wu
ec658cfc33
chore(deps): update Go dependencies and CI workflow action versions ( #932 )
...
## Summary
- Run `go get -u ./...` and `go mod tidy` to update all Go dependencies
- Update CI workflow action versions:
- `crazy-max/ghaction-import-gpg`: v6 → v7
- `goreleaser/goreleaser-action`: v6 → v7
- `docker/setup-qemu-action`: v3 → v4
- `docker/setup-buildx-action`: v3 → v4
- `docker/login-action`: v3 → v4
- `docker/build-push-action`: v6 → v7
## Notable Go dependency updates
- `github.com/urfave/cli/v3`: v3.6.2 → v3.7.0
- `github.com/ProtonMail/go-crypto`: v1.3.0 → v1.4.0
- `charm.land/huh/v2`: v2.0.1 → v2.0.3
- `golang.org/x/crypto`: v0.48.0 → v0.49.0
- `golang.org/x/net`: v0.49.0 → v0.52.0
Reviewed-on: https://gitea.com/gitea/tea/pulls/932
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2026-03-12 05:28:47 +00:00
Bo-Yi Wu
cb9824b451
feat(repos): support owner-based repository listing with robust lookup ( #931 )
...
- Add an owner flag to the repos list command to list repositories for a specific user or organization
- Implement owner-based repository listing by detecting whether the owner is an organization or a user and calling the appropriate API
- Improve error handling for owner lookup by checking HTTP status codes instead of relying on error string matching
- Align repository search logic with the updated owner lookup behavior using HTTP response validation
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Reviewed-on: https://gitea.com/gitea/tea/pulls/931
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2026-03-12 04:22:28 +00:00
Bo-Yi Wu
a531faa626
feat(repos): add repo edit subcommand ( #928 )
...
## Summary
- Add `tea repo edit` subcommand to update repository properties via the Gitea API
- Support flags: `--name`, `--description`/`--desc`, `--website`, `--private`, `--template`, `--archived`, `--default-branch`
- Boolean-like flags use string type to distinguish "not set" from "false", following the pattern in `releases/edit.go`
## Test plan
- [x] `go build ./...` passes
- [x] `go vet ./...` passes
- [x] `tea repo edit --help` shows all flags correctly
- [x] Manual test: `tea repo edit --private true` on a test repo
- [x] Manual test: `tea repo edit --name new-name --description "new desc"` on a test repo
Reviewed-on: https://gitea.com/gitea/tea/pulls/928
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2026-03-12 03:06:44 +00:00
Bo-Yi Wu
302c946cb8
feat: store OAuth tokens in OS keyring via credstore ( #926 )
...
## Summary
- Introduce `github.com/go-authgate/sdk-go/credstore` to store OAuth tokens securely in the OS keyring (macOS Keychain / Linux Secret Service / Windows Credential Manager), with automatic fallback to an encrypted JSON file
- Add `AuthMethod` field to `Login` struct; new OAuth logins are marked `auth_method: oauth` and no longer write `token`/`refresh_token`/`token_expiry` to `config.yml`
- Add `GetAccessToken()` / `GetRefreshToken()` / `GetTokenExpiry()` accessors that transparently read from credstore for OAuth logins, with fallback to YAML fields for legacy logins
- Update all token reference sites across the codebase to use the new accessors
- Non-OAuth logins (token, SSH) are completely unaffected; no migration of existing tokens
## Key files
| File | Role |
|------|------|
| `modules/config/credstore.go` | **New** — credstore wrapper (Load/Save/Delete) |
| `modules/config/login.go` | Login struct, token accessors, refresh logic |
| `modules/auth/oauth.go` | OAuth flow, token creation / re-authentication |
| `modules/api/client.go`, `cmd/login/helper.go`, `cmd/login/oauth_refresh.go` | Token reference updates |
| `modules/task/pull_*.go`, `modules/task/repo_clone.go` | Git operation token reference updates |
## Test plan
- [x] `go build ./...` compiles successfully
- [x] `go test ./...` all tests pass
- [x] `tea login add --oauth` completes OAuth flow; verify config.yml has `auth_method: oauth` but no token/refresh_token/token_expiry
- [x] `tea repos ls` API calls work (token read from credstore)
- [x] `tea login delete <name>` credstore token is also removed
- [x] Existing non-OAuth logins continue to work unchanged
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Reviewed-on: https://gitea.com/gitea/tea/pulls/926
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2026-03-12 02:49:14 +00:00
Bo-Yi Wu and techknowlogick
07039b82e3
ci: improve release process and test coverage ( #553 )
...
- Add extra_files configuration to .goreleaser.yaml
- Include .xz and .xz.sha256 files in the release
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Reviewed-on: https://gitea.com/gitea/tea/pulls/553
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Reviewed-by: techknowlogick <techknowlogick@noreply.gitea.io >
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2023-05-04 11:58:15 +08:00
appleboy and techknowlogick
7040c350ae
build: optimize compression method and clean up environment variables ( #552 )
...
- Replace tar command with xz command for compression
- Remove redundant environment variable XZ_OPT
ref: https://gitea.com/gitea/homebrew-gitea/pulls/164
Signed-off-by: appleboy <appleboy.tw@gmail.com >
Reviewed-on: https://gitea.com/gitea/tea/pulls/552
Reviewed-by: techknowlogick <techknowlogick@noreply.gitea.io >
Co-authored-by: appleboy <appleboy.tw@gmail.com >
Co-committed-by: appleboy <appleboy.tw@gmail.com >
2023-05-01 21:59:26 +08:00
appleboy and Lunny Xiao
b02263adb0
refactor: improve code quality and efficiency in various files ( #548 )
...
- Replace loadConfig() with _ = loadConfig()
- Update file permissions from 0660 to 0o660
- Simplify variable declarations
- Replace golang.org/x/crypto/ssh/terminal with golang.org/x/term
- Remove unused getCertPrincipals function
- Replace time.Now().Sub() with time.Since()
- Add test for ArgToIndex function
Signed-off-by: appleboy <appleboy.tw@gmail.com >
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com >
Reviewed-on: https://gitea.com/gitea/tea/pulls/548
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Reviewed-by: techknowlogick <techknowlogick@noreply.gitea.io >
Co-authored-by: appleboy <appleboy.tw@gmail.com >
Co-committed-by: appleboy <appleboy.tw@gmail.com >
2023-04-30 11:43:26 +08:00
appleboy and techknowlogick
4915862b95
refactor: optimize PR title generation and expand test coverage ( #549 )
...
- Import "regexp" package in pull_create.go
- Replace existing code for `GetDefaultPRTitle` with a more efficient regular expression approach
- Add a new test file pull_create_test.go with a test function for `GetDefaultPRTitle`
Signed-off-by: appleboy <appleboy.tw@gmail.com >
Reviewed-on: https://gitea.com/gitea/tea/pulls/549
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Reviewed-by: techknowlogick <techknowlogick@noreply.gitea.io >
Co-authored-by: appleboy <appleboy.tw@gmail.com >
Co-committed-by: appleboy <appleboy.tw@gmail.com >
2023-04-30 00:16:18 +08:00
appleboy and Lunny Xiao
cd6a7b35c3
ci: improve build process and test coverage ( #547 )
...
- Add `dir: ./dist/` to the builds section in `.goreleaser.yaml`
ref: https://gitea.com/gitea/act_runner/issues/158
Signed-off-by: appleboy <appleboy.tw@gmail.com >
Reviewed-on: https://gitea.com/gitea/tea/pulls/547
Reviewed-by: Jason Song <i@wolfogre.com >
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Co-authored-by: appleboy <appleboy.tw@gmail.com >
Co-committed-by: appleboy <appleboy.tw@gmail.com >
2023-04-29 08:29:24 +08:00
appleboy and Andrew Thornton
c20d7d45aa
chore(cli): upgrade urfave/cli to v2 version ( #85 )
...
chore(cli): upgrade urfave/cli to v2 version
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com >
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com >
Reviewed-by: Andrew Thornton <art27@cantab.net >
2020-01-04 17:44:25 +00:00
Bo-Yi Wu
cc2d8d9cbd
remove codecoverage
...
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2019-06-05 09:43:44 +08:00
Bo-Yi Wu
1d774a01c6
chore: enable goproxy.
...
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2019-06-05 09:34:21 +08:00
Bo-Yi Wu and Lauris BH
bf9620d18e
chore: go support combine all coverage file ( #24 )
...
* Combine all coverage file in one command
* remove generate-coverage
* remove unused method: errCheck
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com >
2019-04-26 14:51:03 +03:00