Skip to content

Commit 09ac8f9

Browse files
GitHub copilot integration and simplify repository (#553)
* Start * Continue * Start getting rid of eslint * Remove eslint configs * Start moving to bun * Upgrade turbo and continue setup of bun * Continue * Continue * Start typing * Continue with more * Continue * Files... * Adapt more and linear * Continue * Done with it for now * Format * Format more * Changeset * Check in CI * Add script * Fix turbo * Build first to get the cli * Fix bin link issue * Use zod for validation * Check all integrations in CI * Iterate * Fix some manifests * One more * More * Make description option for blocks * ga * Set copies * Fix oauth refresh * Update descriptions, add images * Shorten description * Shorten description more * Tweak description * Fix list * Prompt to reauthenticate if account is not listed * Add better example prompots * Improve setup flow * Update icon * Remove dep * Fix indentation * Update icon * Update screenshots * Limit to 3 * Make integration public * Update docs link * Change category * typo * Add check command --------- Co-authored-by: Addison <[email protected]>
1 parent 6cf1c7d commit 09ac8f9

File tree

288 files changed

+2542
-25936
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

288 files changed

+2542
-25936
lines changed

.changeset/eleven-owls-grow.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@gitbook/runtime': minor
3+
---
4+
5+
Improve typing and utilies for OAuth

.changeset/nervous-students-crash.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@gitbook/runtime': minor
3+
---
4+
5+
Export a `ExposableError` to show errors to the end users

.changeset/tricky-toes-brush.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@gitbook/runtime': minor
3+
---
4+
5+
Improve overall typing and utilities for ContentKit components

.github/workflows/production.yaml

+24-15
Original file line numberDiff line numberDiff line change
@@ -19,58 +19,67 @@ jobs:
1919
const integrationPackage = '@' + tag.split('@')[1];
2020
core.setOutput('integrationPackage', integrationPackage)
2121
22-
- name: Checkout repo
23-
uses: actions/checkout@v3
24-
25-
- name: Setup Node.js 20.x
26-
uses: actions/setup-node@v3
22+
- name: Checkout
23+
uses: actions/checkout@v4
24+
- name: Setup bun
25+
uses: oven-sh/setup-bun@v1
2726
with:
28-
node-version: 20.x
29-
30-
- name: Install Dependencies
31-
# We need to build and then re-install so that the "bin" can be correctly linked
32-
run: |
33-
npm ci
34-
npm run build
35-
npm ci
27+
bun-version: 1.1.29
28+
- name: Install dependencies
29+
run: bun install --frozen-lockfile
3630

3731
# TODO: Remove this once we incorporate this in the publish API of the integration
3832
- name: Publish all integrations assets to production
39-
run: npm run publish-assets
33+
run: bun run publish-assets
4034
env:
4135
CLOUDFLARE_PAGES_PROJECT: ${{ secrets.INTEGRATIONS_ASSETS_PROD_PROJECT }}
4236
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
4337
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_PAGES_API_TOKEN }}
4438

4539
- name: Deploy integration
46-
run: npm run publish-integrations -- --filter=${{ steps.integration-package.outputs.integrationPackage }}
40+
run: bun run publish-integrations -- --filter=${{ steps.integration-package.outputs.integrationPackage }}
4741
env:
4842
GITBOOK_TOKEN: ${{ secrets.GITBOOK_PROD_API_TOKEN }}
4943
GITBOOK_ENDPOINT: https://api.gitbook.com
5044
GITBOOK_ORGANIZATION: gitbook
45+
# GitHub Files
5146
UNFURL_GITHUB_CLIENT_ID: ${{ secrets.UNFURL_GITHUB_CLIENT_ID }}
5247
UNFURL_GITHUB_CLIENT_SECRET: ${{ secrets.UNFURL_GITHUB_CLIENT_SECRET }}
48+
# GitLab
5349
GITLAB_CLIENT_ID: ${{ secrets.GITLAB_CLIENT_ID }}
5450
GITLAB_CLIENT_SECRET: ${{ secrets.GITLAB_CLIENT_SECRET }}
51+
# Discord
5552
DISCORD_CLIENT_ID: $ {{ secrets.DISCORD_CLIENT_ID }}
5653
DISCORD_CLIENT_SECRET: $ {{ secrets.DISCORD_CLIENT_SECRET }}
5754
DISCORD_BOT_TOKEN: $ {{ secrets.DISCORD_BOT_TOKEN }}
55+
# Slack
5856
SLACK_CLIENT_ID: ${{ secrets.SLACK_PROD_CLIENT_ID }}
5957
SLACK_CLIENT_SECRET: ${{ secrets.SLACK_PROD_CLIENT_SECRET }}
6058
SLACK_SIGNING_SECRET: ${{ secrets.SLACK_PROD_SIGNING_SECRET }}
59+
# Figma
6160
FIGMA_CLIENT_ID: ${{ secrets.FIGMA_PROD_CLIENT_ID }}
6261
FIGMA_CLIENT_SECRET: ${{ secrets.FIGMA_PROD_CLIENT_SECRET }}
62+
# Mailchimp
6363
MAILCHIMP_CLIENT_ID: ${{ secrets.MAILCHIMP_PROD_CLIENT_ID }}
6464
MAILCHIMP_CLIENT_SECRET: ${{ secrets.MAILCHIMP_PROD_CLIENT_SECRET }}
65+
# Jira
6566
JIRA_CLIENT_ID: ${{ secrets.JIRA_PROD_CLIENT_ID }}
6667
JIRA_CLIENT_SECRET: ${{ secrets.JIRA_PROD_CLIENT_SECRET }}
68+
# Linear
6769
LINEAR_CLIENT_ID: ${{ secrets.LINEAR_PROD_CLIENT_ID }}
6870
LINEAR_CLIENT_SECRET: ${{ secrets.LINEAR_PROD_CLIENT_SECRET }}
71+
# GitHub
6972
GITHUB_APP_INSTALL_URL: ${{ secrets.GITBOOK_GITHUB_APP_INSTALL_URL }}
7073
GITHUB_APP_ID: ${{ secrets.GITBOOK_GITHUB_APP_ID }}
7174
GITHUB_CLIENT_ID: ${{ secrets.GITBOOK_GITHUB_CLIENT_ID }}
7275
GITHUB_CLIENT_SECRET: ${{ secrets.GITBOOK_GITHUB_CLIENT_SECRET }}
7376
GITHUB_WEBHOOK_SECRET: ${{ secrets.GITBOOK_GITHUB_WEBHOOK_SECRET }}
7477
GITHUB_PRIVATE_KEY: ${{ secrets.GITBOOK_GITHUB_PRIVATE_KEY }}
78+
# Lucid
7579
LUCID_CLIENT_ID: ${{ secrets.LUCID_CLIENT_ID }}
7680
LUCID_CLIENT_SECRET: ${{ secrets.LUCID_CLIENT_SECRET }}
81+
# GitHub Copilot
82+
GITHUBCOPILOT_APP_ID: ${{ secrets.GITHUBCOPILOT_PROD_APP_ID }}
83+
GITHUBCOPILOT_APP_URL: ${{ secrets.GITHUBCOPILOT_PROD_APP_URL }}
84+
GITHUBCOPILOT_CLIENT_ID: ${{ secrets.GITHUBCOPILOT_PROD_CLIENT_ID }}
85+
GITHUBCOPILOT_CLIENT_SECRET: ${{ secrets.GITHUBCOPILOT_PROD_CLIENT_SECRET }}

.github/workflows/release.yaml

+33-24
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,22 @@ jobs:
1212
name: Release
1313
runs-on: ubuntu-latest
1414
steps:
15-
- name: Checkout Repo
16-
uses: actions/checkout@v3
15+
- name: Checkout
16+
uses: actions/checkout@v4
1717
with:
1818
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
1919
fetch-depth: 0
20-
21-
- name: Setup Node.js 20.x
22-
uses: actions/setup-node@v3
20+
- name: Setup bun
21+
uses: oven-sh/setup-bun@v1
2322
with:
24-
node-version: 20.x
25-
26-
- name: Install Dependencies
27-
run: npm ci
28-
23+
bun-version: 1.1.29
24+
- name: Install dependencies
25+
run: bun install --frozen-lockfile
2926
- name: Create Release Pull Request or Publish to npm
3027
id: changesets
3128
uses: changesets/action@v1
3229
with:
33-
publish: npm run release
30+
publish: bun run release
3431
env:
3532
# Using a PAT instead of GITHUB_TOKEN because we need to run workflows when releases are created
3633
# https://github.com/orgs/community/discussions/26875#discussioncomment-3253761
@@ -41,56 +38,68 @@ jobs:
4138
name: Publish Integrations to Staging
4239
runs-on: ubuntu-latest
4340
steps:
44-
- name: Checkout Repo
45-
uses: actions/checkout@v3
46-
- name: Setup Node.js 20.x
47-
uses: actions/setup-node@v3
41+
- name: Checkout
42+
uses: actions/checkout@v4
43+
- name: Setup bun
44+
uses: oven-sh/setup-bun@v1
4845
with:
49-
node-version: 20.x
50-
- name: Install Dependencies
51-
# We need to build and then re-install so that the "bin" can be correctly linked
52-
run: |
53-
npm ci
54-
npm run build
55-
npm ci
46+
bun-version: 1.1.29
47+
- name: Install dependencies
48+
run: bun install --frozen-lockfile
5649
- name: Publish all integrations assets to staging
57-
run: npm run publish-assets
50+
run: bun run publish-assets
5851
env:
5952
CLOUDFLARE_PAGES_PROJECT: ${{ secrets.INTEGRATIONS_ASSETS_STAGING_PROJECT }}
6053
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
6154
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_PAGES_API_TOKEN }}
6255
- name: Publish all integrations to staging
63-
run: npm run publish-integrations-staging
56+
run: bun run publish-integrations-staging
6457
env:
6558
GITBOOK_TOKEN: ${{ secrets.GITBOOK_STAGING_API_TOKEN }}
6659
GITBOOK_ENDPOINT: https://api.gitbook-staging.com
6760
GITBOOK_ORGANIZATION: gitbookio
61+
# GitHub Files
6862
UNFURL_GITHUB_CLIENT_ID: ${{ secrets.UNFURL_GITHUB_CLIENT_ID }}
6963
UNFURL_GITHUB_CLIENT_SECRET: ${{ secrets.UNFURL_GITHUB_CLIENT_SECRET }}
64+
# GitLab
7065
GITLAB_CLIENT_ID: ${{ secrets.GITLAB_CLIENT_ID }}
7166
GITLAB_CLIENT_SECRET: ${{ secrets.GITLAB_CLIENT_SECRET }}
67+
# Discord
7268
DISCORD_CLIENT_ID: $ {{ secrets.DISCORD_CLIENT_ID }}
7369
DISCORD_CLIENT_SECRET: $ {{ secrets.DISCORD_CLIENT_SECRET }}
7470
DISCORD_BOT_TOKEN: $ {{ secrets.DISCORD_BOT_TOKEN }}
71+
# Slack
7572
SLACK_CLIENT_ID: ${{ secrets.SLACK_STAGING_CLIENT_ID }}
7673
SLACK_CLIENT_SECRET: ${{ secrets.SLACK_STAGING_CLIENT_SECRET }}
7774
SLACK_SIGNING_SECRET: ${{ secrets.SLACK_STAGING_SIGNING_SECRET }}
75+
# Figma
7876
FIGMA_CLIENT_ID: ${{ secrets.FIGMA_STAGING_CLIENT_ID }}
7977
FIGMA_CLIENT_SECRET: ${{ secrets.FIGMA_STAGING_CLIENT_SECRET }}
78+
# Mailchimp
8079
MAILCHIMP_CLIENT_ID: ${{ secrets.MAILCHIMP_STAGING_CLIENT_ID }}
8180
MAILCHIMP_CLIENT_SECRET: ${{ secrets.MAILCHIMP_STAGING_CLIENT_SECRET }}
81+
# Jira
8282
JIRA_CLIENT_ID: ${{ secrets.JIRA_STAGING_CLIENT_ID }}
8383
JIRA_CLIENT_SECRET: ${{ secrets.JIRA_STAGING_CLIENT_SECRET }}
84+
# Linear
8485
LINEAR_CLIENT_ID: ${{ secrets.LINEAR_STAGING_CLIENT_ID }}
8586
LINEAR_CLIENT_SECRET: ${{ secrets.LINEAR_STAGING_CLIENT_SECRET }}
87+
# Sentry
8688
SENTRY_CLIENT_ID: ${{ secrets.SENTRY_STAGING_CLIENT_ID }}
8789
SENTRY_CLIENT_SECRET: ${{ secrets.SENTRY_STAGING_CLIENT_SECRET }}
8890
SENTRY_GITBOOK_INTEGRATION: ${{ secrets.SENTRY_STAGING_GITBOOK_INTEGRATION }}
91+
# GitHub
8992
GITHUB_APP_INSTALL_URL: ${{ secrets.GITBOOK_GITHUB_STAGING_APP_INSTALL_URL }}
9093
GITHUB_APP_ID: ${{ secrets.GITBOOK_GITHUB_STAGING_APP_ID }}
9194
GITHUB_CLIENT_ID: ${{ secrets.GITBOOK_GITHUB_STAGING_CLIENT_ID }}
9295
GITHUB_CLIENT_SECRET: ${{ secrets.GITBOOK_GITHUB_STAGING_CLIENT_SECRET }}
9396
GITHUB_WEBHOOK_SECRET: ${{ secrets.GITBOOK_GITHUB_STAGING_WEBHOOK_SECRET }}
9497
GITHUB_PRIVATE_KEY: ${{ secrets.GITBOOK_GITHUB_STAGING_PRIVATE_KEY }}
98+
# Lucid
9599
LUCID_CLIENT_ID: ${{ secrets.LUCID_CLIENT_ID }}
96100
LUCID_CLIENT_SECRET: ${{ secrets.LUCID_CLIENT_SECRET }}
101+
# GitHub Copilot
102+
GITHUBCOPILOT_APP_ID: ${{ secrets.GITHUBCOPILOT_STAGING_APP_ID }}
103+
GITHUBCOPILOT_APP_URL: ${{ secrets.GITHUBCOPILOT_STAGING_APP_URL }}
104+
GITHUBCOPILOT_CLIENT_ID: ${{ secrets.GITHUBCOPILOT_STAGING_CLIENT_ID }}
105+
GITHUBCOPILOT_CLIENT_SECRET: ${{ secrets.GITHUBCOPILOT_STAGING_CLIENT_SECRET }}

.github/workflows/test.yaml

+108-22
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,117 @@ on:
66
jobs:
77
test:
88
runs-on: ubuntu-latest
9-
strategy:
10-
matrix:
11-
node-version: [18.x]
9+
name: Test
1210
steps:
13-
- uses: actions/checkout@v3
14-
- name: Use Node.js ${{ matrix.node-version }}
15-
uses: actions/setup-node@v3
11+
- name: Checkout
12+
uses: actions/checkout@v4
13+
- name: Setup bun
14+
uses: oven-sh/setup-bun@v1
1615
with:
17-
node-version: ${{ matrix.node-version }}
18-
- name: Install Dependencies
19-
run: npm ci
16+
bun-version: 1.1.29
17+
- name: Install dependencies
18+
run: bun install --frozen-lockfile
2019
- name: Run tests
21-
run: npm run test
22-
lint:
20+
run: bun run test
21+
format:
2322
runs-on: ubuntu-latest
24-
strategy:
25-
matrix:
26-
node-version: [18.x]
23+
name: Format
2724
steps:
28-
- uses: actions/checkout@v3
29-
- name: Use Node.js ${{ matrix.node-version }}
30-
uses: actions/setup-node@v3
25+
- name: Checkout
26+
uses: actions/checkout@v4
27+
- name: Setup bun
28+
uses: oven-sh/setup-bun@v1
3129
with:
32-
node-version: ${{ matrix.node-version }}
33-
- name: Install Dependencies
34-
run: npm ci
35-
- name: Lint
36-
run: npm run lint
30+
bun-version: 1.1.29
31+
- name: Install dependencies
32+
run: bun install --frozen-lockfile
33+
- name: Format
34+
run: bun run format:check
35+
typecheck:
36+
runs-on: ubuntu-latest
37+
name: Typecheck
38+
steps:
39+
- name: Checkout
40+
uses: actions/checkout@v4
41+
- name: Setup bun
42+
uses: oven-sh/setup-bun@v1
43+
with:
44+
bun-version: 1.1.29
45+
- name: Install dependencies
46+
run: bun install --frozen-lockfile
47+
- name: Format
48+
run: bun run typecheck
49+
build:
50+
runs-on: ubuntu-latest
51+
name: Build
52+
steps:
53+
- name: Checkout
54+
uses: actions/checkout@v4
55+
- name: Setup bun
56+
uses: oven-sh/setup-bun@v1
57+
with:
58+
bun-version: 1.1.29
59+
- name: Install dependencies
60+
run: bun install --frozen-lockfile
61+
- name: Build
62+
run: bun run build
63+
check:
64+
runs-on: ubuntu-latest
65+
name: Check integrations
66+
steps:
67+
- name: Checkout
68+
uses: actions/checkout@v4
69+
- name: Setup bun
70+
uses: oven-sh/setup-bun@v1
71+
with:
72+
bun-version: 1.1.29
73+
- name: Install dependencies
74+
run: bun install --frozen-lockfile
75+
- name: Check
76+
run: bun run check
77+
env:
78+
# GitHub Files
79+
UNFURL_GITHUB_CLIENT_ID: ${{ secrets.UNFURL_GITHUB_CLIENT_ID }}
80+
UNFURL_GITHUB_CLIENT_SECRET: ${{ secrets.UNFURL_GITHUB_CLIENT_SECRET }}
81+
# GitLab
82+
GITLAB_CLIENT_ID: ${{ secrets.GITLAB_CLIENT_ID }}
83+
GITLAB_CLIENT_SECRET: ${{ secrets.GITLAB_CLIENT_SECRET }}
84+
# Discord
85+
DISCORD_CLIENT_ID: $ {{ secrets.DISCORD_CLIENT_ID }}
86+
DISCORD_CLIENT_SECRET: $ {{ secrets.DISCORD_CLIENT_SECRET }}
87+
DISCORD_BOT_TOKEN: $ {{ secrets.DISCORD_BOT_TOKEN }}
88+
# Slack
89+
SLACK_CLIENT_ID: ${{ secrets.SLACK_STAGING_CLIENT_ID }}
90+
SLACK_CLIENT_SECRET: ${{ secrets.SLACK_STAGING_CLIENT_SECRET }}
91+
SLACK_SIGNING_SECRET: ${{ secrets.SLACK_STAGING_SIGNING_SECRET }}
92+
# Figma
93+
FIGMA_CLIENT_ID: ${{ secrets.FIGMA_STAGING_CLIENT_ID }}
94+
FIGMA_CLIENT_SECRET: ${{ secrets.FIGMA_STAGING_CLIENT_SECRET }}
95+
# Mailchimp
96+
MAILCHIMP_CLIENT_ID: ${{ secrets.MAILCHIMP_STAGING_CLIENT_ID }}
97+
MAILCHIMP_CLIENT_SECRET: ${{ secrets.MAILCHIMP_STAGING_CLIENT_SECRET }}
98+
# Jira
99+
JIRA_CLIENT_ID: ${{ secrets.JIRA_STAGING_CLIENT_ID }}
100+
JIRA_CLIENT_SECRET: ${{ secrets.JIRA_STAGING_CLIENT_SECRET }}
101+
# Linear
102+
LINEAR_CLIENT_ID: ${{ secrets.LINEAR_STAGING_CLIENT_ID }}
103+
LINEAR_CLIENT_SECRET: ${{ secrets.LINEAR_STAGING_CLIENT_SECRET }}
104+
# Sentry
105+
SENTRY_CLIENT_ID: ${{ secrets.SENTRY_STAGING_CLIENT_ID }}
106+
SENTRY_CLIENT_SECRET: ${{ secrets.SENTRY_STAGING_CLIENT_SECRET }}
107+
SENTRY_GITBOOK_INTEGRATION: ${{ secrets.SENTRY_STAGING_GITBOOK_INTEGRATION }}
108+
# GitHub
109+
GITHUB_APP_INSTALL_URL: ${{ secrets.GITBOOK_GITHUB_STAGING_APP_INSTALL_URL }}
110+
GITHUB_APP_ID: ${{ secrets.GITBOOK_GITHUB_STAGING_APP_ID }}
111+
GITHUB_CLIENT_ID: ${{ secrets.GITBOOK_GITHUB_STAGING_CLIENT_ID }}
112+
GITHUB_CLIENT_SECRET: ${{ secrets.GITBOOK_GITHUB_STAGING_CLIENT_SECRET }}
113+
GITHUB_WEBHOOK_SECRET: ${{ secrets.GITBOOK_GITHUB_STAGING_WEBHOOK_SECRET }}
114+
GITHUB_PRIVATE_KEY: ${{ secrets.GITBOOK_GITHUB_STAGING_PRIVATE_KEY }}
115+
# Lucid
116+
LUCID_CLIENT_ID: ${{ secrets.LUCID_CLIENT_ID }}
117+
LUCID_CLIENT_SECRET: ${{ secrets.LUCID_CLIENT_SECRET }}
118+
# GitHub Copilot
119+
GITHUBCOPILOT_APP_ID: ${{ secrets.GITHUBCOPILOT_STAGING_APP_ID }}
120+
GITHUBCOPILOT_APP_URL: ${{ secrets.GITHUBCOPILOT_STAGING_APP_URL }}
121+
GITHUBCOPILOT_CLIENT_ID: ${{ secrets.GITHUBCOPILOT_STAGING_CLIENT_ID }}
122+
GITHUBCOPILOT_CLIENT_SECRET: ${{ secrets.GITHUBCOPILOT_STAGING_CLIENT_SECRET }}

.prettierignore

-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ dist/
1515
# Editors & IDEs
1616
.idea/
1717

18-
# ESlint
19-
.eslintcache
20-
2118
# Don't prettify docs
2219
CHANGELOG.md
2320
docs

.vscode/settings.json

-14
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,9 @@
1313
"typescript.tsc.autoDetect": "off",
1414
"typescript.tsserver.trace": "off",
1515
"typescript.tsserver.log": "off",
16-
// Disable tslint and ensure eslint is running
17-
"tslint.enable": false,
18-
"eslint.enable": true,
19-
"eslint.debug": false,
20-
"eslint.lintTask.enable": false,
21-
"eslint.format.enable": true,
22-
// Fix errors on save using ESLint
23-
"editor.codeActionsOnSave": {
24-
"source.fixAll.eslint": "explicit"
25-
},
2616
// Format using Prettier to format on save
2717
"editor.defaultFormatter": "esbenp.prettier-vscode",
2818
"editor.formatOnSave": true,
2919
"svg.preview.background": "custom",
30-
"firebase.coverageFile": "./tests/coverages/firestore.html",
31-
"files.exclude": {
32-
"**/firebase-export-*": true
33-
},
3420
"prettier.documentSelectors": ["{**/*,*}.{js,ts,jsx,tsx,md,mdx,yml,yaml,json,html,css}"]
3521
}

bun.lockb

373 KB
Binary file not shown.

integrations/arcade/.eslintrc.json

-3
This file was deleted.

0 commit comments

Comments
 (0)