This is a monorepo for Gitton's official plugins and TypeScript type definitions.
| Package | Description | npm |
|---|---|---|
| @gitton-dev/cli | Plugin management CLI | |
| @gitton-dev/types | Gitton Plugin TypeScript Type Definitions | |
| @gitton-dev/plugin-dependency-graph | Visualize file dependencies | |
| @gitton-dev/plugin-git-hooks | Git hooks management UI | |
| @gitton-dev/plugin-github-actions | Display and execute GitHub Actions |
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-actionsCreate plugins to extend Gitton. See @gitton-dev/types for TypeScript definitions.
my-gitton-plugin/
├── package.json # Plugin manifest in "gitton" field
├── ui/
│ └── sidebar.html # UI extension HTML
└── ...
{
"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"
}
}
}
}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');| 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 |
Publish your plugin on GitHub with the gitton-plugin topic to appear in the Gitton marketplace.
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Development mode
pnpm dev
# Clean build artifacts
pnpm cleanTags 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 --tagsManual 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 publicMIT