@kernelius/forge-cli 0.4.2 → 0.4.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/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.4.3] - 2026-02-02
9
+
10
+ ### Fixed
11
+ - **Starred repos**: Fixed `forge repos stars` command to use correct endpoint and response format
12
+ - Now calls `/api/users/:username/starred` instead of `/api/users/:id/starred`
13
+ - Correctly parses `repos` array from response instead of `stars`
14
+ - **User profile edit**: Fixed `forge user edit` command to use `/api/settings/profile` endpoint
15
+
8
16
  ## [0.4.2] - 2026-02-01
9
17
 
10
18
  ### Changed
@@ -12,6 +20,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
12
20
  - Now calls `/api/repositories/:owner/:name/pulls/:number/comments` instead of two API calls
13
21
  - Reduces latency by eliminating the intermediate PR lookup call
14
22
 
23
+ ## [0.4.1] - 2026-02-01
24
+
25
+ ### Fixed
26
+ - Updated default API URL to `https://forge-api.kernelius.com` in documentation
27
+
28
+ ## [0.4.0] - 2026-02-01
29
+
30
+ ### Added
31
+ - **Webhooks Command**: New `forge webhooks` command for managing repository webhooks
32
+ - `forge webhooks list` - List webhooks for a repository
33
+ - `forge webhooks create` - Create a new webhook with events and URL
34
+ - `forge webhooks update` - Update webhook configuration
35
+ - `forge webhooks delete` - Delete a webhook
36
+ - `forge webhooks test` - Send a test ping to a webhook
37
+ - `forge webhooks deliveries` - View recent webhook deliveries
38
+ - `forge webhooks events` - List available webhook event types
39
+ - `forge webhooks regenerate-secret` - Regenerate webhook secret
40
+
41
+ ### Documentation
42
+ - Added comprehensive webhook documentation to SKILL.md
43
+ - Added webhook signature verification example
44
+
15
45
  ## [0.3.1] - 2026-02-01
16
46
 
17
47
  ### Fixed
@@ -183,6 +213,15 @@ forge orgs create --name "Dev Team" --slug "dev-team" --type "team"
183
213
  - OpenClaw SKILL.md for agent integration
184
214
  - Support for agent API keys (`forge_agent_` prefix)
185
215
 
216
+ [0.4.3]: https://github.com/kernelius-hq/forge-cli/compare/v0.4.2...v0.4.3
217
+ [0.4.2]: https://github.com/kernelius-hq/forge-cli/compare/v0.4.1...v0.4.2
218
+ [0.4.1]: https://github.com/kernelius-hq/forge-cli/compare/v0.4.0...v0.4.1
219
+ [0.4.0]: https://github.com/kernelius-hq/forge-cli/compare/v0.3.1...v0.4.0
220
+ [0.3.1]: https://github.com/kernelius-hq/forge-cli/compare/v0.3.0...v0.3.1
221
+ [0.3.0]: https://github.com/kernelius-hq/forge-cli/compare/v0.2.1...v0.3.0
222
+ [0.2.1]: https://github.com/kernelius-hq/forge-cli/compare/v0.2.0...v0.2.1
223
+ [0.2.0]: https://github.com/kernelius-hq/forge-cli/compare/v0.1.4...v0.2.0
224
+ [0.1.4]: https://github.com/kernelius-hq/forge-cli/compare/v0.1.3...v0.1.4
186
225
  [0.1.3]: https://github.com/kernelius-hq/forge-cli/compare/v0.1.2...v0.1.3
187
226
  [0.1.2]: https://github.com/kernelius-hq/forge-cli/compare/v0.1.1...v0.1.2
188
227
  [0.1.1]: https://github.com/kernelius-hq/forge-cli/releases/tag/v0.1.1
package/SKILL.md CHANGED
@@ -289,6 +289,7 @@ forge webhooks regenerate-secret --repo @owner/repo --id <webhook-id>
289
289
  | `pr.updated` | PR title/body changed |
290
290
  | `pr.merged` | Pull request merged |
291
291
  | `pr.closed` | PR closed without merging |
292
+ | `pr.reopened` | PR reopened after being closed |
292
293
  | `pr.review_requested` | Review requested on PR |
293
294
  | `pr.reviewed` | Review submitted |
294
295
  | `pr.commented` | Comment on PR |
package/dist/index.js CHANGED
@@ -734,7 +734,8 @@ function createReposCommand() {
734
734
  });
735
735
  }
736
736
  console.log(chalk3.green("\u2713 Repository created successfully"));
737
- console.log(chalk3.dim(` @${repo.ownerIdentifier}/${repo.name}`));
737
+ const repoOwner = repo.owner?.identifier || repo.ownerIdentifier || "unknown";
738
+ console.log(chalk3.dim(` @${repoOwner}/${repo.name}`));
738
739
  if (template) {
739
740
  const templateObj = getTemplateById(template);
740
741
  console.log(chalk3.dim(` Template: ${templateObj?.name || template}`));
@@ -749,15 +750,17 @@ function createReposCommand() {
749
750
  const [ownerIdentifier, name] = parseRepoArg(repoArg);
750
751
  const user = await apiGet("/api/users/me");
751
752
  const targetOrgIdentifier = options.org || user.username;
752
- const fork = await apiPost(
753
+ const result = await apiPost(
753
754
  `/api/repositories/${ownerIdentifier}/${name}/fork`,
754
755
  {
755
756
  name: options.name || name,
756
757
  orgIdentifier: targetOrgIdentifier
757
758
  }
758
759
  );
760
+ const fork = result.repo || result;
761
+ const forkOwner = fork.owner?.identifier || fork.ownerIdentifier || "unknown";
759
762
  console.log(chalk3.green("\u2713 Repository forked successfully"));
760
- console.log(chalk3.dim(` @${fork.ownerIdentifier}/${fork.name}`));
763
+ console.log(chalk3.dim(` @${forkOwner}/${fork.name}`));
761
764
  console.log(chalk3.dim(` Forked from @${ownerIdentifier}/${name}`));
762
765
  } catch (error) {
763
766
  console.error(chalk3.red(`Error: ${error.message}`));
@@ -794,18 +797,18 @@ function createReposCommand() {
794
797
  try {
795
798
  const user = await apiGet("/api/users/me");
796
799
  const result = await apiGet(
797
- `/api/users/${user.id}/starred`
800
+ `/api/users/${user.username}/starred`
798
801
  );
799
- const stars = result.stars || [];
800
- if (stars.length === 0) {
802
+ const repos2 = result.repos || [];
803
+ if (repos2.length === 0) {
801
804
  console.log(chalk3.yellow("No starred repositories"));
802
805
  return;
803
806
  }
804
- console.log(chalk3.bold(`Starred Repositories (${stars.length})`));
807
+ console.log(chalk3.bold(`Starred Repositories (${repos2.length})`));
805
808
  console.log();
806
- for (const star of stars) {
807
- const repo = star.repository;
808
- const identifier = `@${repo.ownerIdentifier}/${repo.name}`;
809
+ for (const repo of repos2) {
810
+ const ownerName = repo.owner?.identifier || repo.owner?.username || "unknown";
811
+ const identifier = `@${ownerName}/${repo.name}`;
809
812
  const visibility = repo.visibility === "private" ? "\u{1F512}" : "\u{1F310}";
810
813
  console.log(`${visibility} ${chalk3.cyan(identifier)}`);
811
814
  if (repo.description) {
@@ -1729,7 +1732,7 @@ function createUserCommand() {
1729
1732
  );
1730
1733
  return;
1731
1734
  }
1732
- await apiPatch("/api/users/me", updates);
1735
+ await apiPatch("/api/settings/profile", updates);
1733
1736
  console.log(chalk7.green("\u2713 Profile updated successfully"));
1734
1737
  } catch (error) {
1735
1738
  console.error(chalk7.red(`Error: ${error.message}`));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kernelius/forge-cli",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "Command-line tool for Kernelius Forge - the agent-native Git platform",
5
5
  "type": "module",
6
6
  "bin": {