Skip to content

gitton-dev/gitton-plugins

Repository files navigation

Gitton Plugins Monorepo

This is a monorepo for Gitton's official plugins and TypeScript type definitions.

Packages

Package Description npm
@gitton-dev/cli Plugin management CLI npm
@gitton-dev/types Gitton Plugin TypeScript Type Definitions npm
@gitton-dev/plugin-dependency-graph Visualize file dependencies npm
@gitton-dev/plugin-git-hooks Git hooks management UI npm
@gitton-dev/plugin-github-actions Display and execute GitHub Actions npm

Plugin Installation

You can install plugins using the CLI:

# Install the CLI
npm install -g @gitton-dev/cli

# Install a plugin
gitton install github-actions

# List installed plugins
gitton list

# Uninstall a plugin
gitton uninstall github-actions

Plugin Development

Create plugins to extend Gitton. See @gitton-dev/types for TypeScript definitions.

Plugin Structure

my-gitton-plugin/
├── package.json        # Plugin manifest in "gitton" field
├── ui/
│   └── sidebar.html    # UI extension HTML
└── ...

package.json Example

{
  "name": "gitton-plugin-example",
  "version": "1.0.0",
  "gitton": {
    "displayName": "Example Plugin",
    "version": "1.0.0",
    "description": "An example plugin for Gitton",
    "permissions": ["ui:sidebar", "settings:read", "settings:write"],
    "extensionPoints": {
      "sidebar": {
        "entry": "ui/sidebar.html",
        "icon": "Puzzle",
        "position": "bottom"
      }
    }
  }
}

Plugin API

Access the gitton global object in your plugin HTML:

// Settings
const value = await gitton.settings.get('myKey');
await gitton.settings.set('myKey', { foo: 'bar' });

// Notifications
gitton.ui.showNotification('Hello!', 'info');

// Open external URL
await gitton.ui.openExternal('https://github.com');

// HTTP requests
const result = await gitton.network.fetch('https://api.example.com/data');

// GitHub CLI
const prList = await gitton.gh.run(['pr', 'list', '--json', 'number,title']);

// File system (within repo only)
const content = await gitton.fs.readFile('.gitignore');
await gitton.fs.writeFile('temp.txt', 'content');

Permissions

Permission Description
ui:sidebar Add sidebar panel
ui:settings Add settings tab
ui:repositorySettings Add repository settings tab
ui:contextMenu Add context menu items
settings:read Read plugin settings
settings:write Write plugin settings
network:fetch Make HTTP requests
git:read Read Git information
git:write Execute Git operations
git:hooks Register Git hooks

Marketplace

Publish your plugin on GitHub with the gitton-plugin topic to appear in the Gitton marketplace.

Development

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Development mode
pnpm dev

# Clean build artifacts
pnpm clean

Publishing

Tags with v* pattern will trigger automatic npm publish via GitHub Actions.

# Bump version and create tag
pnpm -r exec npm version patch
git add -A && git commit -m "chore(release): bump version"
git tag v1.0.1
git push origin main --tags

Manual publish:

pnpm --filter @gitton-dev/types publish --access public
pnpm --filter @gitton-dev/plugin-dependency-graph publish --access public
pnpm --filter @gitton-dev/plugin-git-hooks publish --access public
pnpm --filter @gitton-dev/plugin-github-actions publish --access public

License

MIT

About

Plugin packages for Gitton

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •