[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F74QD439FMG46CFMEEC6ZE":3,"skill-same:01M6F74QD439FMG46CFMEEC6ZE":88},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":70,"ownerHtmlUrl":71,"ownerBlogUrl":6,"ownerDescription":72,"updatedAt":73,"install":74,"resources":87},"01M6F74QD439FMG46CFMEEC6ZE","apollo-ci-integration",null,"Configure Apollo.io CI\u002FCD integration.\nUse when setting up automated testing, continuous integration,\nor deployment pipelines for Apollo integrations.\nTrigger with phrases like \"apollo ci\", \"apollo github actions\",\n\"apollo pipeline\", \"apollo ci\u002Fcd\", \"apollo automated tests\".","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fapollo-ci-integration\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"integration","ci","apollo ci integration","apollo","configure","CI\u002FCD","io","continuous integration","up","edit","write","read","testing","Bash","ci-cd","pipeline","github actions","actions","code","openclaw","2026-11-10 10:12:30",false,"---\nname: apollo-ci-integration\ndescription: |\n  Configure Apollo.io CI\u002FCD integration.\n  Use when setting up automated testing, continuous integration,\n  or deployment pipelines for Apollo integrations.\n  Trigger with phrases like \"apollo ci\", \"apollo github actions\",\n  \"apollo pipeline\", \"apollo ci\u002Fcd\", \"apollo automated tests\".\nallowed-tools: Read, Write, Edit, Bash(gh:*), Bash(curl:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\ntags: [saas, apollo, deployment, testing, ci-cd]\n\n---\n# Apollo CI Integration\n\n## Overview\nSet up CI\u002FCD pipelines for Apollo.io integrations with GitHub Actions. Uses MSW mocks for unit tests (zero API calls), sandbox tokens for staging, and live API tests gated to main branch only. Apollo's sandbox token returns dummy data without consuming credits.\n\n## Prerequisites\n- GitHub repository with Actions enabled\n- Apollo master API key + sandbox token\n- Node.js 18+\n\n## Instructions\n\n### Step 1: Store Secrets in GitHub\n```bash\n# Master API key for integration tests (main branch only)\ngh secret set APOLLO_API_KEY --body \"$APOLLO_API_KEY\"\n\n# Sandbox token for staging tests (safe, no credits)\ngh secret set APOLLO_SANDBOX_KEY --body \"$APOLLO_SANDBOX_KEY\"\n```\n\n### Step 2: GitHub Actions Workflow\n```yaml\n# .github\u002Fworkflows\u002Fapollo-ci.yml\nname: Apollo CI\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\njobs:\n  lint-and-typecheck:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-node@v4\n        with: { node-version: '20', cache: 'npm' }\n      - run: npm ci\n      - run: npm run lint\n      - run: npm run typecheck\n\n  unit-tests:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-node@v4\n        with: { node-version: '20', cache: 'npm' }\n      - run: npm ci\n      - run: npm test\n        # Unit tests use MSW mocks — zero API calls\n\n  integration-tests:\n    runs-on: ubuntu-latest\n    if: github.event_name == 'push' && github.ref == 'refs\u002Fheads\u002Fmain'\n    needs: [unit-tests]\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-node@v4\n        with: { node-version: '20', cache: 'npm' }\n      - run: npm ci\n      - name: Apollo Health Check\n        env:\n          APOLLO_API_KEY: ${{ secrets.APOLLO_API_KEY }}\n        run: |\n          STATUS=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \\\n            -H \"x-api-key: $APOLLO_API_KEY\" \\\n            \"https:\u002F\u002Fapi.apollo.io\u002Fapi\u002Fv1\u002Fauth\u002Fhealth\")\n          echo \"Apollo API: HTTP $STATUS\"\n          [ \"$STATUS\" = \"200\" ] || exit 1\n      - run: npm run test:integration\n        env:\n          APOLLO_API_KEY: ${{ secrets.APOLLO_API_KEY }}\n\n  secret-scan:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - name: Check for hardcoded API keys\n        run: |\n          if grep -rn 'x-api-key.*[a-zA-Z0-9]\\{20,\\}' src\u002F --include='*.ts' --include='*.js'; then\n            echo \"Potential hardcoded API key found!\"\n            exit 1\n          fi\n          echo \"No hardcoded secrets\"\n```\n\n### Step 3: MSW-Based Unit Tests\n```typescript\n\u002F\u002F src\u002F__tests__\u002Fapollo.test.ts\nimport { describe, it, expect, beforeAll, afterAll, afterEach } from 'vitest';\nimport { setupServer } from 'msw\u002Fnode';\nimport { http, HttpResponse } from 'msw';\n\nconst BASE = 'https:\u002F\u002Fapi.apollo.io\u002Fapi\u002Fv1';\nconst mockServer = setupServer(\n  http.post(`${BASE}\u002Fmixed_people\u002Fapi_search`, () =>\n    HttpResponse.json({\n      people: [{ id: '1', name: 'Jane Doe', title: 'VP Sales' }],\n      pagination: { page: 1, per_page: 25, total_entries: 1, total_pages: 1 },\n    }),\n  ),\n  http.post(`${BASE}\u002Fpeople\u002Fmatch`, () =>\n    HttpResponse.json({\n      person: { id: '1', name: 'Jane Doe', email: 'jane@test.com', title: 'VP Sales' },\n    }),\n  ),\n  http.get(`${BASE}\u002Fauth\u002Fhealth`, () =>\n    HttpResponse.json({ is_logged_in: true }),\n  ),\n);\n\nbeforeAll(() => mockServer.listen());\nafterEach(() => mockServer.resetHandlers());\nafterAll(() => mockServer.close());\n\ndescribe('People Search', () => {\n  it('returns contacts from search', async () => {\n    const { searchPeople } = await import('..\u002Fworkflows\u002Flead-search');\n    const result = await searchPeople({ domains: ['test.com'] });\n    expect(result.people).toHaveLength(1);\n    expect(result.people[0].name).toBe('Jane Doe');\n  });\n\n  it('handles 429 errors', async () => {\n    mockServer.use(\n      http.post(`${BASE}\u002Fmixed_people\u002Fapi_search`, () =>\n        HttpResponse.json({ message: 'Rate limited' }, { status: 429 }),\n      ),\n    );\n    const { searchPeople } = await import('..\u002Fworkflows\u002Flead-search');\n    await expect(searchPeople({ domains: ['test.com'] })).rejects.toThrow();\n  });\n});\n```\n\n### Step 4: Integration Tests (Live API)\n```typescript\n\u002F\u002F src\u002F__tests__\u002Fintegration\u002Fapollo-live.test.ts\nimport { describe, it, expect } from 'vitest';\nimport axios from 'axios';\n\nconst SKIP = !process.env.APOLLO_API_KEY;\nconst client = axios.create({\n  baseURL: 'https:\u002F\u002Fapi.apollo.io\u002Fapi\u002Fv1',\n  headers: { 'Content-Type': 'application\u002Fjson', 'x-api-key': process.env.APOLLO_API_KEY! },\n});\n\ndescribe.skipIf(SKIP)('Apollo Live Integration', () => {\n  it('searches for people at apollo.io', async () => {\n    const { data } = await client.post('\u002Fmixed_people\u002Fapi_search', {\n      q_organization_domains_list: ['apollo.io'],\n      per_page: 5,\n    });\n    expect(data.people.length).toBeGreaterThan(0);\n  });\n\n  it('enriches organization by domain', async () => {\n    const { data } = await client.get('\u002Forganizations\u002Fenrich', { params: { domain: 'apollo.io' } });\n    expect(data.organization).toBeDefined();\n    expect(data.organization.name).toContain('Apollo');\n  });\n});\n```\n\n## Output\n- GitHub Actions workflow with lint, typecheck, unit test, integration test, and secret scan jobs\n- MSW mock server for zero-API-call unit tests in PRs\n- Live integration tests gated to main branch pushes only\n- Apollo health check step before integration tests\n- Secret scanning to prevent API key commits\n\n## Error Handling\n| Issue | Resolution |\n|-------|------------|\n| Secret not found | `gh secret list` to verify, re-add with `gh secret set` |\n| Rate limited in CI | Unit tests use MSW, integration tests run only on main |\n| Health check fails | Check [status.apollo.io](https:\u002F\u002Fstatus.apollo.io); skip flaky on outage |\n| Hardcoded key found | Secret scan job fails the build; rotate the key immediately |\n\n## Resources\n- [GitHub Actions Secrets](https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Fsecurity-guides\u002Fencrypted-secrets)\n- [Apollo Sandbox Testing](https:\u002F\u002Fdocs.apollo.io\u002Fdocs\u002Ftest-api-key)\n- [MSW (Mock Service Worker)](https:\u002F\u002Fmswjs.io\u002F)\n\n## Next Steps\nProceed to `apollo-deploy-integration` for deployment configuration.\n\n","# Apollo CI Integration\n\n## Overview\nSet up CI\u002FCD pipelines for Apollo.io integrations with GitHub Actions. Uses MSW mocks for unit tests (zero API calls), sandbox tokens for staging, and live API tests gated to main branch only. Apollo's sandbox token returns dummy data without consuming credits.\n\n## Prerequisites\n- GitHub repository with Actions enabled\n- Apollo master API key + sandbox token\n- Node.js 18+\n\n## Instructions\n\n### Step 1: Store Secrets in GitHub\n```bash\n# Master API key for integration tests (main branch only)\ngh secret set APOLLO_API_KEY --body \"$APOLLO_API_KEY\"\n\n# Sandbox token for staging tests (safe, no credits)\ngh secret set APOLLO_SANDBOX_KEY --body \"$APOLLO_SANDBOX_KEY\"\n```\n\n### Step 2: GitHub Actions Workflow\n```yaml\n# .github\u002Fworkflows\u002Fapollo-ci.yml\nname: Apollo CI\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\njobs:\n  lint-and-typecheck:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-node@v4\n        with: { node-version: '20', cache: 'npm' }\n      - run: npm ci\n      - run: npm run lint\n      - run: npm run typecheck\n\n  unit-tests:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-node@v4\n        with: { node-version: '20', cache: 'npm' }\n      - run: npm ci\n      - run: npm test\n        # Unit tests use MSW mocks — zero API calls\n\n  integration-tests:\n    runs-on: ubuntu-latest\n    if: github.event_name == 'push' && github.ref == 'refs\u002Fheads\u002Fmain'\n    needs: [unit-tests]\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-node@v4\n        with: { node-version: '20', cache: 'npm' }\n      - run: npm ci\n      - name: Apollo Health Check\n        env:\n          APOLLO_API_KEY: ${{ secrets.APOLLO_API_KEY }}\n        run: |\n          STATUS=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \\\n            -H \"x-api-key: $APOLLO_API_KEY\" \\\n            \"https:\u002F\u002Fapi.apollo.io\u002Fapi\u002Fv1\u002Fauth\u002Fhealth\")\n          echo \"Apollo API: HTTP $STATUS\"\n          [ \"$STATUS\" = \"200\" ] || exit 1\n      - run: npm run test:integration\n        env:\n          APOLLO_API_KEY: ${{ secrets.APOLLO_API_KEY }}\n\n  secret-scan:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - name: Check for hardcoded API keys\n        run: |\n          if grep -rn 'x-api-key.*[a-zA-Z0-9]\\{20,\\}' src\u002F --include='*.ts' --include='*.js'; then\n            echo \"Potential hardcoded API key found!\"\n            exit 1\n          fi\n          echo \"No hardcoded secrets\"\n```\n\n### Step 3: MSW-Based Unit Tests\n```typescript\n\u002F\u002F src\u002F__tests__\u002Fapollo.test.ts\nimport { describe, it, expect, beforeAll, afterAll, afterEach } from 'vitest';\nimport { setupServer } from 'msw\u002Fnode';\nimport { http, HttpResponse } from 'msw';\n\nconst BASE = 'https:\u002F\u002Fapi.apollo.io\u002Fapi\u002Fv1';\nconst mockServer = setupServer(\n  http.post(`${BASE}\u002Fmixed_people\u002Fapi_search`, () =>\n    HttpResponse.json({\n      people: [{ id: '1', name: 'Jane Doe', title: 'VP Sales' }],\n      pagination: { page: 1, per_page: 25, total_entries: 1, total_pages: 1 },\n    }),\n  ),\n  http.post(`${BASE}\u002Fpeople\u002Fmatch`, () =>\n    HttpResponse.json({\n      person: { id: '1', name: 'Jane Doe', email: 'jane@test.com', title: 'VP Sales' },\n    }),\n  ),\n  http.get(`${BASE}\u002Fauth\u002Fhealth`, () =>\n    HttpResponse.json({ is_logged_in: true }),\n  ),\n);\n\nbeforeAll(() => mockServer.listen());\nafterEach(() => mockServer.resetHandlers());\nafterAll(() => mockServer.close());\n\ndescribe('People Search', () => {\n  it('returns contacts from search', async () => {\n    const { searchPeople } = await import('..\u002Fworkflows\u002Flead-search');\n    const result = await searchPeople({ domains: ['test.com'] });\n    expect(result.people).toHaveLength(1);\n    expect(result.people[0].name).toBe('Jane Doe');\n  });\n\n  it('handles 429 errors', async () => {\n    mockServer.use(\n      http.post(`${BASE}\u002Fmixed_people\u002Fapi_search`, () =>\n        HttpResponse.json({ message: 'Rate limited' }, { status: 429 }),\n      ),\n    );\n    const { searchPeople } = await import('..\u002Fworkflows\u002Flead-search');\n    await expect(searchPeople({ domains: ['test.com'] })).rejects.toThrow();\n  });\n});\n```\n\n### Step 4: Integration Tests (Live API)\n```typescript\n\u002F\u002F src\u002F__tests__\u002Fintegration\u002Fapollo-live.test.ts\nimport { describe, it, expect } from 'vitest';\nimport axios from 'axios';\n\nconst SKIP = !process.env.APOLLO_API_KEY;\nconst client = axios.create({\n  baseURL: 'https:\u002F\u002Fapi.apollo.io\u002Fapi\u002Fv1',\n  headers: { 'Content-Type': 'application\u002Fjson', 'x-api-key': process.env.APOLLO_API_KEY! },\n});\n\ndescribe.skipIf(SKIP)('Apollo Live Integration', () => {\n  it('searches for people at apollo.io', async () => {\n    const { data } = await client.post('\u002Fmixed_people\u002Fapi_search', {\n      q_organization_domains_list: ['apollo.io'],\n      per_page: 5,\n    });\n    expect(data.people.length).toBeGreaterThan(0);\n  });\n\n  it('enriches organization by domain', async () => {\n    const { data } = await client.get('\u002Forganizations\u002Fenrich', { params: { domain: 'apollo.io' } });\n    expect(data.organization).toBeDefined();\n    expect(data.organization.name).toContain('Apollo');\n  });\n});\n```\n\n## Output\n- GitHub Actions workflow with lint, typecheck, unit test, integration test, and secret scan jobs\n- MSW mock server for zero-API-call unit tests in PRs\n- Live integration tests gated to main branch pushes only\n- Apollo health check step before integration tests\n- Secret scanning to prevent API key commits\n\n## Error Handling\n| Issue | Resolution |\n|-------|------------|\n| Secret not found | `gh secret list` to verify, re-add with `gh secret set` |\n| Rate limited in CI | Unit tests use MSW, integration tests run only on main |\n| Health check fails | Check [status.apollo.io](https:\u002F\u002Fstatus.apollo.io); skip flaky on outage |\n| Hardcoded key found | Secret scan job fails the build; rotate the key immediately |\n\n## Resources\n- [GitHub Actions Secrets](https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Fsecurity-guides\u002Fencrypted-secrets)\n- [Apollo Sandbox Testing](https:\u002F\u002Fdocs.apollo.io\u002Fdocs\u002Ftest-api-key)\n- [MSW (Mock Service Worker)](https:\u002F\u002Fmswjs.io\u002F)\n\n## Next Steps\nProceed to `apollo-deploy-integration` for deployment configuration.\n\n",{"name":5,"tags":57,"author":60,"license":15,"version":61,"description":62,"allowed-tools":63,"compatible-with":64},[58,35,59,44,46],"saas","deployment","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Configure Apollo.io CI\u002FCD integration.\nUse when setting up automated testing, continuous integration,\nor deployment pipelines for Apollo integrations.\nTrigger with phrases like \"apollo ci\", \"apollo github actions\",\n\"apollo pipeline\", \"apollo ci\u002Fcd\", \"apollo automated tests\".\n","Read, Write, Edit, Bash(gh:*), Bash(curl:*)","claude-code, codex, openclaw","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fapollo-ci-integration",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":75,"prompt":85,"zipAvailable":86},[76,79,82],{"tool":77,"command":78},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill apollo-ci-integration",{"tool":80,"command":81},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill apollo-ci-integration",{"tool":83,"command":84},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill apollo-ci-integration","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fapollo-ci-integration\u002FSKILL.md",true,[],[89,101,111,120,126,133],{"skillNo":90,"name":91,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":97,"publishedAt":52},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[94],{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[98,99,100],"model","model hierarchy","model hierarchy skill",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":107,"publishedAt":52},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[106],{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},[108,109,110],"MCP","zoom","zoom mcp",{"skillNo":112,"name":113,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":52},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[117,118,119,109],"sdk","zoom apps sdk","apps",{"skillNo":121,"name":122,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":52},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[122],{"skillNo":127,"name":128,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":132,"publishedAt":52},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[131],{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},[128],{"skillNo":134,"name":135,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":52},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[135]]