Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: "weekly"
interval: 'weekly'
open-pull-requests-limit: 5
groups:
npm-root:
patterns:
- "*"
- '*'
labels:
- "dependencies"
- "npm"
- 'dependencies'
- 'npm'
commit-message:
prefix: "chore"
include: "scope"
prefix: 'chore'
include: 'scope'

- package-ecosystem: "npm"
directory: "/workspace-server"
- package-ecosystem: 'npm'
directory: '/workspace-server'
schedule:
interval: "weekly"
interval: 'weekly'
open-pull-requests-limit: 5
groups:
npm-workspace-server:
patterns:
- "*"
- '*'
labels:
- "dependencies"
- "npm"
- 'dependencies'
- 'npm'
commit-message:
prefix: "chore"
include: "scope"
prefix: 'chore'
include: 'scope'

- package-ecosystem: "github-actions"
directory: "/"
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: "weekly"
interval: 'weekly'
open-pull-requests-limit: 5
groups:
github-actions:
patterns:
- "*"
- '*'
labels:
- "dependencies"
- "github-actions"
- 'dependencies'
- 'github-actions'
commit-message:
prefix: "chore"
include: "scope"
prefix: 'chore'
include: 'scope'
153 changes: 86 additions & 67 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,89 +2,108 @@ name: CI

on:
push:
branches: [ main, develop ]
branches: [main, develop]
pull_request:
branches: [ main ]
branches: [main]

jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Use Node.js 20.x
uses: actions/setup-node@v6
with:
node-version: '20.x'
cache: 'npm'
cache-dependency-path: package-lock.json

- name: Install dependencies
run: npm ci

- name: Run linter
run: npm run lint

- name: Run Prettier check
run: npm run format:check

- name: Run type checking
run: npx tsc --noEmit --project workspace-server

test:
needs: verify
runs-on: ${{ matrix.os }}

strategy:
matrix:
node-version: [20.x, 22.x, 24.x]
os: [ubuntu-latest, windows-latest, macos-latest]

steps:
- uses: actions/checkout@v6

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: package-lock.json

- name: Install libsecret (Linux)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libsecret-1-0

- name: Install dependencies
run: npm ci

- name: Run linter
run: npm run lint

- name: Run type checking
run: npx tsc --noEmit --project workspace-server

- name: Run tests with coverage
run: npm run test:ci

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
directory: ./workspace-server/coverage
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
- uses: actions/checkout@v6

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: package-lock.json

- name: Install libsecret (Linux)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libsecret-1-0

- name: Install dependencies
run: npm ci

- name: Run tests with coverage
run: npm run test:ci

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
directory: ./workspace-server/coverage
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false

build:
runs-on: ubuntu-latest
needs: test

steps:
- uses: actions/checkout@v6
- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: '20.x'
cache: 'npm'
cache-dependency-path: package-lock.json
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v6
with:
name: dist
path: workspace-server/dist/
- uses: actions/checkout@v6

- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: '20.x'
cache: 'npm'
cache-dependency-path: package-lock.json

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Upload build artifacts
uses: actions/upload-artifact@v6
with:
name: dist
path: workspace-server/dist/

security:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
- name: Run security audit
run: npm audit --audit-level=moderate
continue-on-error: true
- name: Check for known vulnerabilities
run: npx audit-ci --moderate
continue-on-error: true
- uses: actions/checkout@v6

- name: Run security audit
run: npm audit --audit-level=moderate
continue-on-error: true

- name: Check for known vulnerabilities
run: npx audit-ci --moderate
continue-on-error: true
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ jobs:
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: release/${{ matrix.platform }}.google-workspace-extension.tar.gz
files: release/${{ matrix.platform }}.google-workspace-extension.tar.gz
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules
dist
coverage
.vitepress/cache
.vitepress/dist
package-lock.json
15 changes: 15 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"semi": true,
"trailingComma": "all",
"singleQuote": true,
"printWidth": 80,
"tabWidth": 2,
"overrides": [
{
"files": ["**/*.md"],
"options": {
"proseWrap": "always"
}
}
]
}
55 changes: 38 additions & 17 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ sign a new one.

### Review our Community Guidelines

This project follows [Google's Open Source Community
Guidelines](https://opensource.google/conduct/).
This project follows
[Google's Open Source Community Guidelines](https://opensource.google/conduct/).

## Contribution Process

Expand All @@ -33,51 +33,72 @@ for this purpose.

### Self Assigning Issues

If you're looking for an issue to work on, check out our list of issues that are labeled ["help wanted"](https://github.com/gemini-cli-extensions/workspace/issues?q=is%3Aissue+state%3Aopen+label%3A%22help+wanted%22).
If you're looking for an issue to work on, check out our list of issues that are
labeled
["help wanted"](https://github.com/gemini-cli-extensions/workspace/issues?q=is%3Aissue+state%3Aopen+label%3A%22help+wanted%22).

To assign an issue to yourself, simply add a comment with the text `/assign`. The comment must contain only that text and nothing else. This command will assign the issue to you, provided it is not already assigned.
To assign an issue to yourself, simply add a comment with the text `/assign`.
The comment must contain only that text and nothing else. This command will
assign the issue to you, provided it is not already assigned.

Please note that you can have a maximum of 3 issues assigned to you at any given time.
Please note that you can have a maximum of 3 issues assigned to you at any given
time.

### Pull Request Guidelines

To help us review and merge your PRs quickly, please follow these guidelines. PRs that do not meet these standards may be closed.
To help us review and merge your PRs quickly, please follow these guidelines.
PRs that do not meet these standards may be closed.

#### 1. Link to an Existing Issue

All PRs should be linked to an existing issue in our tracker. This ensures that every change has been discussed and is aligned with the project's goals before any code is written.
All PRs should be linked to an existing issue in our tracker. This ensures that
every change has been discussed and is aligned with the project's goals before
any code is written.

- **For bug fixes:** The PR should be linked to the bug report issue.
- **For features:** The PR should be linked to the feature request or proposal issue that has been approved by a maintainer.
- **For features:** The PR should be linked to the feature request or proposal
issue that has been approved by a maintainer.

If an issue for your change doesn't exist, please **open one first** and wait for feedback before you start coding.
If an issue for your change doesn't exist, please **open one first** and wait
for feedback before you start coding.

#### 2. Keep It Small and Focused

We favor small, atomic PRs that address a single issue or add a single, self-contained feature.
We favor small, atomic PRs that address a single issue or add a single,
self-contained feature.

- **Do:** Create a PR that fixes one specific bug or adds one specific feature.
- **Don't:** Bundle multiple unrelated changes (e.g., a bug fix, a new feature, and a refactor) into a single PR.
- **Don't:** Bundle multiple unrelated changes (e.g., a bug fix, a new feature,
and a refactor) into a single PR.

Large changes should be broken down into a series of smaller, logical PRs that can be reviewed and merged independently.
Large changes should be broken down into a series of smaller, logical PRs that
can be reviewed and merged independently.

#### 3. Use Draft PRs for Work in Progress

If you'd like to get early feedback on your work, please use GitHub's **Draft Pull Request** feature. This signals to the maintainers that the PR is not yet ready for a formal review but is open for discussion and initial feedback.
If you'd like to get early feedback on your work, please use GitHub's **Draft
Pull Request** feature. This signals to the maintainers that the PR is not yet
ready for a formal review but is open for discussion and initial feedback.

#### 4. Ensure All Checks Pass

Before submitting your PR, ensure that all automated checks are passing by running `npm run test && npm run lint`. This command runs all tests, linting, and other style checks.
Before submitting your PR, ensure that all automated checks are passing by
running `npm run test && npm run lint`. This command runs all tests, linting,
and other style checks.

#### 5. Write Clear Commit Messages and a Good PR Description

Your PR should have a clear, descriptive title and a detailed description of the changes. Follow the [Conventional Commits](https://www.conventionalcommits.org/) standard for your commit messages.
Your PR should have a clear, descriptive title and a detailed description of the
changes. Follow the [Conventional Commits](https://www.conventionalcommits.org/)
standard for your commit messages.

- **Good PR Title:** `feat(cli): Add --json flag to 'config get' command`
- **Bad PR Title:** `Made some changes`

In the PR description, explain the "why" behind your changes and link to the relevant issue (e.g., `Fixes #123`).
In the PR description, explain the "why" behind your changes and link to the
relevant issue (e.g., `Fixes #123`).

## Development Setup and Workflow

For information on how to build, modify, and understand the development setup of this project, please see the [development documentation](docs/development.md).
For information on how to build, modify, and understand the development setup of
this project, please see the [development documentation](docs/development.md).
Loading
Loading