diff --git a/.github/workflows/browser-test.yml b/.github/workflows/browser-test.yml index f2d6d775c3..b593c7870b 100644 --- a/.github/workflows/browser-test.yml +++ b/.github/workflows/browser-test.yml @@ -27,7 +27,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/check-all-english-links.yml b/.github/workflows/check-all-english-links.yml index 7844b52239..956b33a490 100644 --- a/.github/workflows/check-all-english-links.yml +++ b/.github/workflows/check-all-english-links.yml @@ -26,7 +26,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: npm ci run: npm ci diff --git a/.github/workflows/check-broken-links-github-github.yml b/.github/workflows/check-broken-links-github-github.yml index 21ba36e645..2d27a0fd0a 100644 --- a/.github/workflows/check-broken-links-github-github.yml +++ b/.github/workflows/check-broken-links-github-github.yml @@ -41,7 +41,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install Node.js dependencies diff --git a/.github/workflows/content-changes-table-comment.yml b/.github/workflows/content-changes-table-comment.yml index 60125dcbcd..0c51e122e4 100644 --- a/.github/workflows/content-changes-table-comment.yml +++ b/.github/workflows/content-changes-table-comment.yml @@ -43,7 +43,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install temporary dependencies @@ -116,7 +116,7 @@ jobs: issue-number: ${{ github.event.pull_request.number }} body: | - ## Automatically generated comment ℹ️ + ## Automatically generated comment ℹ️ **This comment is automatically generated and will be overwritten every time changes are committed to this branch.** The table contains an overview of files in the `content` directory that have been changed in this pull request. It's provided to make it easy to review your changes on the staging site. Please note that changes to the `data` directory will not show up in this table. diff --git a/.github/workflows/crowdin-cleanup.yml b/.github/workflows/crowdin-cleanup.yml index 8d683afddb..e111f1a95f 100644 --- a/.github/workflows/crowdin-cleanup.yml +++ b/.github/workflows/crowdin-cleanup.yml @@ -23,7 +23,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/docs-review-collect.yml b/.github/workflows/docs-review-collect.yml index 0e9e27fb80..64fc4ecd21 100644 --- a/.github/workflows/docs-review-collect.yml +++ b/.github/workflows/docs-review-collect.yml @@ -25,7 +25,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/enterprise-dates.yml b/.github/workflows/enterprise-dates.yml index b2f2aa1592..86e3c421a0 100644 --- a/.github/workflows/enterprise-dates.yml +++ b/.github/workflows/enterprise-dates.yml @@ -37,7 +37,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install Node.js dependencies diff --git a/.github/workflows/enterprise-release-sync-search-index.yml b/.github/workflows/enterprise-release-sync-search-index.yml index 3e7c79f18b..cd1bf6c3d4 100644 --- a/.github/workflows/enterprise-release-sync-search-index.yml +++ b/.github/workflows/enterprise-release-sync-search-index.yml @@ -44,7 +44,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/js-lint.yml b/.github/workflows/js-lint.yml index 24b0305b9a..f07b6d22f2 100644 --- a/.github/workflows/js-lint.yml +++ b/.github/workflows/js-lint.yml @@ -21,7 +21,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies @@ -29,3 +29,6 @@ jobs: - name: Run linter run: npm run lint + + - name: Run TypeScript + run: npm run tsc diff --git a/.github/workflows/link-check-dotcom.yml b/.github/workflows/link-check-dotcom.yml index ffa65ef0a3..26a7ddf526 100644 --- a/.github/workflows/link-check-dotcom.yml +++ b/.github/workflows/link-check-dotcom.yml @@ -23,7 +23,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install diff --git a/.github/workflows/link-check-ghae.yml b/.github/workflows/link-check-ghae.yml index 07e5fd88aa..34aedc01ae 100644 --- a/.github/workflows/link-check-ghae.yml +++ b/.github/workflows/link-check-ghae.yml @@ -23,7 +23,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install diff --git a/.github/workflows/link-check-ghec.yml b/.github/workflows/link-check-ghec.yml index 58e0c20e1d..22d6e55fdb 100644 --- a/.github/workflows/link-check-ghec.yml +++ b/.github/workflows/link-check-ghec.yml @@ -21,7 +21,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install diff --git a/.github/workflows/link-check-ghes.yml b/.github/workflows/link-check-ghes.yml index e5dc5cf230..27d7bc33f9 100644 --- a/.github/workflows/link-check-ghes.yml +++ b/.github/workflows/link-check-ghes.yml @@ -23,7 +23,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install diff --git a/.github/workflows/open-enterprise-issue.yml b/.github/workflows/open-enterprise-issue.yml index 0ecf693703..6ac71836fd 100644 --- a/.github/workflows/open-enterprise-issue.yml +++ b/.github/workflows/open-enterprise-issue.yml @@ -21,7 +21,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/openapi-decorate.yml b/.github/workflows/openapi-decorate.yml index 1613d2b536..0c762f65ac 100644 --- a/.github/workflows/openapi-decorate.yml +++ b/.github/workflows/openapi-decorate.yml @@ -31,7 +31,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/openapi-schema-check.yml b/.github/workflows/openapi-schema-check.yml index 7485fb6faf..35df2f3630 100644 --- a/.github/workflows/openapi-schema-check.yml +++ b/.github/workflows/openapi-schema-check.yml @@ -34,7 +34,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/pa11y.yml b/.github/workflows/pa11y.yml index 9d95d7ed11..c8b2ac79a9 100644 --- a/.github/workflows/pa11y.yml +++ b/.github/workflows/pa11y.yml @@ -19,7 +19,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/ping-staging-apps.yml b/.github/workflows/ping-staging-apps.yml index 427edf7b51..3aa8c78855 100644 --- a/.github/workflows/ping-staging-apps.yml +++ b/.github/workflows/ping-staging-apps.yml @@ -20,7 +20,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: npm ci run: npm ci diff --git a/.github/workflows/prod-build-deploy.yml b/.github/workflows/prod-build-deploy.yml index 969e7264ea..df42174b41 100644 --- a/.github/workflows/prod-build-deploy.yml +++ b/.github/workflows/prod-build-deploy.yml @@ -36,7 +36,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm # Required for `npm pkg ...` command support diff --git a/.github/workflows/ready-for-doc-review.yml b/.github/workflows/ready-for-doc-review.yml index 08b254590a..8c1d5da362 100644 --- a/.github/workflows/ready-for-doc-review.yml +++ b/.github/workflows/ready-for-doc-review.yml @@ -20,7 +20,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/remove-stale-staging-resources.yml b/.github/workflows/remove-stale-staging-resources.yml index 1339f830f1..8ed9f31d04 100644 --- a/.github/workflows/remove-stale-staging-resources.yml +++ b/.github/workflows/remove-stale-staging-resources.yml @@ -29,7 +29,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies @@ -51,7 +51,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/remove-unused-assets.yml b/.github/workflows/remove-unused-assets.yml index c23db2adfc..abaa4c28a0 100644 --- a/.github/workflows/remove-unused-assets.yml +++ b/.github/workflows/remove-unused-assets.yml @@ -26,7 +26,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: npm ci run: npm ci diff --git a/.github/workflows/repo-sync.yml b/.github/workflows/repo-sync.yml index 24eecc753a..4286662339 100644 --- a/.github/workflows/repo-sync.yml +++ b/.github/workflows/repo-sync.yml @@ -100,7 +100,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies run: npm ci @@ -201,12 +201,12 @@ jobs: }) console.log(updateBranch.data.message) } catch (error) { - // Only retry once. We'll rely on the update branch workflow to update + // Only retry once. We'll rely on the update branch workflow to update // this PR in the case of a second failure. console.log(`Retried updating the branch, but an error occurred: ${error}`) } } else { - // A failed branch update shouldn't fail this worklow. + // A failed branch update shouldn't fail this worklow. console.log(`An error occurred when updating the branch: ${error}`) } } diff --git a/.github/workflows/staging-build-pr.yml b/.github/workflows/staging-build-pr.yml index 1e8ed3ab93..3ddc10d397 100644 --- a/.github/workflows/staging-build-pr.yml +++ b/.github/workflows/staging-build-pr.yml @@ -77,7 +77,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm # Required for `npm pkg ...` command support diff --git a/.github/workflows/staging-deploy-pr.yml b/.github/workflows/staging-deploy-pr.yml index dc6fe276f9..7651e852f2 100644 --- a/.github/workflows/staging-deploy-pr.yml +++ b/.github/workflows/staging-deploy-pr.yml @@ -291,11 +291,10 @@ jobs: - name: Check out LFS objects run: git lfs checkout - - if: ${{ github.repository == 'github/docs-internal' }} - name: Setup node to clone early access + - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm # Install any dependencies that are needed for the early access script @@ -470,7 +469,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/staging-undeploy-pr.yml b/.github/workflows/staging-undeploy-pr.yml index 3244f37afb..d0c3229aa4 100644 --- a/.github/workflows/staging-undeploy-pr.yml +++ b/.github/workflows/staging-undeploy-pr.yml @@ -63,7 +63,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/sync-search-indices.yml b/.github/workflows/sync-search-indices.yml index b1c0b3d8e2..968683f151 100644 --- a/.github/workflows/sync-search-indices.yml +++ b/.github/workflows/sync-search-indices.yml @@ -55,7 +55,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index bdc4c9cb2c..a7ba621f43 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -44,7 +44,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 37cbe43f0b..67d93a3950 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,7 +49,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/triage-unallowed-internal-changes.yml b/.github/workflows/triage-unallowed-internal-changes.yml index d4a55a3b06..4d9860bc54 100644 --- a/.github/workflows/triage-unallowed-internal-changes.yml +++ b/.github/workflows/triage-unallowed-internal-changes.yml @@ -62,7 +62,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/.github/workflows/update-graphql-files.yml b/.github/workflows/update-graphql-files.yml index e25e825907..8c90fc9db1 100644 --- a/.github/workflows/update-graphql-files.yml +++ b/.github/workflows/update-graphql-files.yml @@ -32,7 +32,7 @@ jobs: - name: Setup Node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install Node.js dependencies run: npm ci diff --git a/.github/workflows/yml-lint.yml b/.github/workflows/yml-lint.yml index ba65aabf95..0964979042 100644 --- a/.github/workflows/yml-lint.yml +++ b/.github/workflows/yml-lint.yml @@ -27,7 +27,7 @@ jobs: - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: - node-version: 16.8.x + node-version: 16.13.x cache: npm - name: Install dependencies diff --git a/assets/images/help/billing/download-enterprise-GHAS-usage-data.png b/assets/images/help/billing/download-enterprise-GHAS-usage-data.png new file mode 100644 index 0000000000..d8a4a975e2 Binary files /dev/null and b/assets/images/help/billing/download-enterprise-GHAS-usage-data.png differ diff --git a/assets/images/help/billing/download-organization-GHAS-usage-data.png b/assets/images/help/billing/download-organization-GHAS-usage-data.png new file mode 100644 index 0000000000..b1a4c95441 Binary files /dev/null and b/assets/images/help/billing/download-organization-GHAS-usage-data.png differ diff --git a/assets/images/help/codespaces/codespaces-insiders-vscode.png b/assets/images/help/codespaces/codespaces-insiders-vscode.png new file mode 100644 index 0000000000..8f30ec32fa Binary files /dev/null and b/assets/images/help/codespaces/codespaces-insiders-vscode.png differ diff --git a/assets/images/help/teams/review-assignment-button.png b/assets/images/help/teams/review-assignment-button.png deleted file mode 100644 index 412fa4bc78..0000000000 Binary files a/assets/images/help/teams/review-assignment-button.png and /dev/null differ diff --git a/assets/images/help/teams/review-assignment-notifications.png b/assets/images/help/teams/review-assignment-notifications.png index c32a5723b3..150d348004 100644 Binary files a/assets/images/help/teams/review-assignment-notifications.png and b/assets/images/help/teams/review-assignment-notifications.png differ diff --git a/assets/images/help/teams/review-button.png b/assets/images/help/teams/review-button.png new file mode 100644 index 0000000000..8595920551 Binary files /dev/null and b/assets/images/help/teams/review-button.png differ diff --git a/components/Search.module.scss b/components/Search.module.scss index 9f045b5149..d4f73490b9 100644 --- a/components/Search.module.scss +++ b/components/Search.module.scss @@ -11,6 +11,10 @@ border-bottom: 1px solid currentColor; } +.searchResultContent { + max-height: 4rem; +} + .searchResultContent mark { text-decoration: none; border-bottom: 1px dotted currentColor; diff --git a/components/Search.tsx b/components/Search.tsx index 2342a66bdb..3c9b4c89fc 100644 --- a/components/Search.tsx +++ b/components/Search.tsx @@ -14,9 +14,10 @@ import styles from './Search.module.scss' type SearchResult = { url: string breadcrumbs: string - heading: string title: string content: string + score: number + popularity: number } type Props = { @@ -56,6 +57,10 @@ export function Search({ } }, []) + useEffect(() => { + closeSearch() + }, [currentVersion, language]) + // Search with your keyboard useEffect(() => { document.addEventListener('keydown', searchWithYourKeyboard) @@ -191,6 +196,7 @@ export function Search({ activeHit={activeHit} setActiveHit={setActiveHit} onGotoResult={onGotoResult} + debug={'debug' in router.query} /> {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */} @@ -260,6 +266,7 @@ function ShowSearchResults({ activeHit, setActiveHit, onGotoResult, + debug, }: { isOverlay: boolean isLoading: boolean @@ -267,6 +274,7 @@ function ShowSearchResults({ activeHit: number setActiveHit: (index: number) => void onGotoResult: (url: string, index: number) => void + debug: boolean }) { const { t } = useTranslation('search') @@ -290,7 +298,7 @@ function ShowSearchResults({ // When there are search results, it doesn't matter if this is overlay or not. return (
    - {results.map(({ url, breadcrumbs, heading, title, content }, index) => { + {results.map(({ url, breadcrumbs, title, content, score, popularity }, index) => { const isActive = index === activeHit return (
  1. + {debug && ( + + score: {score.toFixed(4)} popularity: {popularity.toFixed(4)} + + )}
    -
    + {content ? ( +
    + ) : ( +
    + {t('no_content')} +
    + )}
  2. diff --git a/components/article/ArticlePage.tsx b/components/article/ArticlePage.tsx index 40474ba91c..2e0b8d339c 100644 --- a/components/article/ArticlePage.tsx +++ b/components/article/ArticlePage.tsx @@ -72,7 +72,11 @@ export const ArticlePage = () => { )} - {intro && {intro}} + {intro && ( + + {intro} + + )} {permissions && (
    diff --git a/components/landing/LandingHero.tsx b/components/landing/LandingHero.tsx index e6c96cf934..253a5c08d3 100644 --- a/components/landing/LandingHero.tsx +++ b/components/landing/LandingHero.tsx @@ -28,7 +28,7 @@ export const LandingHero = () => { {beta_product && Beta} - {intro && {intro}} + {intro && {intro}} {introLinks && Object.entries(introLinks) diff --git a/components/landing/TocLanding.tsx b/components/landing/TocLanding.tsx index 767312dabb..9d02636d99 100644 --- a/components/landing/TocLanding.tsx +++ b/components/landing/TocLanding.tsx @@ -29,7 +29,7 @@ export const TocLanding = () => { {title} - {introPlainText && {introPlainText}} + {introPlainText && {introPlainText}} {productCallout && ( diff --git a/components/page-header/Header.tsx b/components/page-header/Header.tsx index 7623943f62..316834d35c 100644 --- a/components/page-header/Header.tsx +++ b/components/page-header/Header.tsx @@ -53,12 +53,15 @@ export const Header = () => { className="d-none d-lg-flex flex-justify-end flex-items-center flex-wrap flex-xl-nowrap" data-testid="desktop-header" > -
    +
    - +
    diff --git a/components/page-header/VersionPicker.tsx b/components/page-header/VersionPicker.tsx index e78853efdc..8568c212cf 100644 --- a/components/page-header/VersionPicker.tsx +++ b/components/page-header/VersionPicker.tsx @@ -9,7 +9,7 @@ import { useVersion } from 'components/hooks/useVersion' import { useTranslation } from 'components/hooks/useTranslation' type Props = { - variant?: 'inline' + variant?: 'inline' | 'compact' } export const VersionPicker = ({ variant }: Props) => { const router = useRouter() diff --git a/components/playground/content/building-and-testing/python.tsx b/components/playground/content/building-and-testing/python.tsx index 9406bf5b84..c39e9931fa 100644 --- a/components/playground/content/building-and-testing/python.tsx +++ b/components/playground/content/building-and-testing/python.tsx @@ -213,7 +213,7 @@ const article: PlaygroundArticleT = { codeBlocks: { '0': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -251,7 +251,7 @@ const article: PlaygroundArticleT = { }, '1': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -280,7 +280,7 @@ const article: PlaygroundArticleT = { }, '2': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -307,7 +307,7 @@ const article: PlaygroundArticleT = { }, '3': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -330,7 +330,7 @@ const article: PlaygroundArticleT = { }, '4': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -352,7 +352,7 @@ const article: PlaygroundArticleT = { }, '5': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -376,7 +376,7 @@ const article: PlaygroundArticleT = { }, '6': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -408,7 +408,7 @@ const article: PlaygroundArticleT = { }, '7': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -437,7 +437,7 @@ const article: PlaygroundArticleT = { }, '8': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -465,7 +465,7 @@ const article: PlaygroundArticleT = { }, '9': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -494,7 +494,7 @@ const article: PlaygroundArticleT = { }, '10': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` name: Python package @@ -532,7 +532,7 @@ const article: PlaygroundArticleT = { }, '11': { language: 'yaml', - fileName: '.github/workflow/example.yml', + fileName: '.github/workflows/example.yml', code: dedent` # This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by diff --git a/components/sublanding/SubLandingHero.tsx b/components/sublanding/SubLandingHero.tsx index dcf5e4e22e..c0b33c8747 100644 --- a/components/sublanding/SubLandingHero.tsx +++ b/components/sublanding/SubLandingHero.tsx @@ -46,7 +46,7 @@ export const SubLandingHero = () => {

    {title} guides

    - {intro && {intro}} + {intro && {intro}}
    {featuredTrack && ( diff --git a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md index 2a8be7f8f7..060afa3657 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md @@ -109,7 +109,7 @@ When you set your status, you can also let people know that you have limited ava ![Requested reviewer shows "busy" note next to username](/assets/images/help/profile/request-a-review-limited-availability-status.png) -If you select the "Busy" option, when people @mention your username, assign you an issue or pull request, or request a pull request review from you, a note next to your username will show that you're busy. You will also be excluded from automatic review assignment for pull requests assigned to any teams you belong to. For more information, see "[Managing code review assignment for your team](/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team)." +If you select the "Busy" option, when people @mention your username, assign you an issue or pull request, or request a pull request review from you, a note next to your username will show that you're busy. You will also be excluded from automatic review assignment for pull requests assigned to any teams you belong to. For more information, see "[Managing code review settings for your team](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)." 1. In the top right corner of {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% else %}{% data variables.product.product_name %}{% endif %}, click your profile photo, then click **Set your status** or, if you already have a status set, click your current status. ![Button on profile to set your status](/assets/images/help/profile/set-status-on-profile.png) diff --git a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md index b5a017ac7d..0155d6f285 100644 --- a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md +++ b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md @@ -40,11 +40,13 @@ To configure the role and trust in IAM, see the AWS documentation for ["Assuming By default, the validation only includes the audience (`aud`) condition, so you must manually add a subject (`sub`) condition. Edit the trust relationship to add the `sub` field to the validation conditions. For example: -```yaml{:copy} +```json{:copy} "Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "https://github.com/octo-org", "token.actions.githubusercontent.com:sub": "repo:octo-org/octo-repo:ref:refs/heads/octo-branch" + } +} ``` ## Updating your {% data variables.product.prodname_actions %} workflow diff --git a/content/actions/hosting-your-own-runners/about-self-hosted-runners.md b/content/actions/hosting-your-own-runners/about-self-hosted-runners.md index c35252201e..92e41df413 100644 --- a/content/actions/hosting-your-own-runners/about-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/about-self-hosted-runners.md @@ -129,8 +129,8 @@ Some extra configuration might be required to use actions from {% data variables The self-hosted runner polls {% data variables.product.product_name %} to retrieve application updates and to check if any jobs are queued for processing. The self-hosted runner uses a HTTPS _long poll_ that opens a connection to {% data variables.product.product_name %} for 50 seconds, and if no response is received, it then times out and creates a new long poll. The application must be running on the machine to accept and run {% data variables.product.prodname_actions %} jobs. {% ifversion ghae %} -You must ensure that the self-hosted runner has appropriate network access to communicate with the {% data variables.product.prodname_ghe_managed %} URL. -For example, if your instance name is `octoghae`, then you will need to allow the self-hosted runner to access `octoghae.github.com`. +You must ensure that the self-hosted runner has appropriate network access to communicate with the {% data variables.product.prodname_ghe_managed %} URL and its subdomains. +For example, if your instance name is `octoghae`, then you will need to allow the self-hosted runner to access `octoghae.githubenterprise.com`, `api.octoghae.githubenterprise.com`, and `codeload.octoghae.githubenterprise.com`. If you use an IP address allow list for your {% data variables.product.prodname_dotcom %} organization or enterprise account, you must add your self-hosted runner's IP address to the allow list. For more information, see "[Managing allowed IP addresses for your organization](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list)." {% endif %} @@ -139,7 +139,7 @@ If you use an IP address allow list for your {% data variables.product.prodname_ Since the self-hosted runner opens a connection to {% data variables.product.prodname_dotcom %}, you do not need to allow {% data variables.product.prodname_dotcom %} to make inbound connections to your self-hosted runner. -You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} URLs listed below. +You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} hosts listed below. Some hosts are required for essential runner operations, while other hosts are only required for certain functionality. {% note %} @@ -147,20 +147,42 @@ You must ensure that the machine has the appropriate network access to communica {% endnote %} +**Needed for essential operations:** + ``` github.com api.github.com -*.actions.githubusercontent.com +``` + +**Needed for downloading actions:** + +``` +codeload.github.com +``` + +**Needed for runner version updates:** + +``` +objects.githubusercontent.com +objects-origin.githubusercontent.com github-releases.githubusercontent.com github-registry-files.githubusercontent.com -codeload.github.com -*.pkg.github.com -pkg-cache.githubusercontent.com -pkg-containers.githubusercontent.com -pkg-containers-az.githubusercontent.com +``` + +**Needed for uploading/downloading caches and workflow artifacts:** + +``` *.blob.core.windows.net ``` +**Needed for retrieving OIDC tokens:** + +``` +*.actions.githubusercontent.com +``` + +In addition, your workflow may require access to other network resources. For example, if your workflow installs packages or publishes containers to {% data variables.product.prodname_dotcom %} Packages, then the runner will also require access to those network endpoints. + If you use an IP address allow list for your {% data variables.product.prodname_dotcom %} organization or enterprise account, you must add your self-hosted runner's IP address to the allow list. For more information, see "[Managing allowed IP addresses for your organization](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list)" or "[Enforcing policies for security settings in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise)". {% else %} @@ -171,11 +193,33 @@ You must ensure that the machine has the appropriate network access to communica You can also use self-hosted runners with a proxy server. For more information, see "[Using a proxy server with self-hosted runners](/actions/automating-your-workflow-with-github-actions/using-a-proxy-server-with-self-hosted-runners)." +{% ifversion ghes %} + +## Communication between self-hosted runners and {% data variables.product.prodname_dotcom_the_website %} + +Self-hosted runners do not need to connect to {% data variables.product.prodname_dotcom_the_website %} unless you have [enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect). + +If you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}, then the self-hosted runner will connect directly to {% data variables.product.prodname_dotcom_the_website %} to download actions. You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} URLs listed below. + +{% note %} + +**Note:** Some of the domains listed below are configured using `CNAME` records. Some firewalls might require you to add rules recursively for all `CNAME` records. Note that the `CNAME` records might change in the future, and that only the domains listed below will remain constant. + +{% endnote %} + +``` +github.com +api.github.com +codeload.github.com +``` + +{% endif %} + +{% ifversion fpt or ghec %} + ## Self-hosted runner security with public repositories -{% ifversion not ghae %} {% data reusables.github-actions.self-hosted-runner-security %} -{% endif %} This is not an issue with {% data variables.product.prodname_dotcom %}-hosted runners because each {% data variables.product.prodname_dotcom %}-hosted runner is always a clean isolated virtual machine, and it is destroyed at the end of the job execution. @@ -185,3 +229,5 @@ Untrusted workflows running on your self-hosted runner pose significant security * Escaping the machine's runner sandbox. * Exposing access to the machine's network environment. * Persisting unwanted or dangerous data on the machine. + +{% endif %} diff --git a/content/actions/index.md b/content/actions/index.md index 0b124cb2ad..4eabb1ec41 100644 --- a/content/actions/index.md +++ b/content/actions/index.md @@ -47,19 +47,19 @@ versions: children: - /quickstart - /learn-github-actions - - /creating-actions - - /security-guides + - /managing-workflow-runs - /automating-builds-and-tests - /deployment - - /managing-issues-and-pull-requests - - /publishing-packages - /using-containerized-services - - /advanced-guides - - /managing-workflow-runs + - /publishing-packages + - /managing-issues-and-pull-requests + - /migrating-to-github-actions - /monitoring-and-troubleshooting-workflows - /using-github-hosted-runners - /hosting-your-own-runners - - /migrating-to-github-actions + - /security-guides + - /advanced-guides + - /creating-actions - /guides --- diff --git a/content/actions/security-guides/automatic-token-authentication.md b/content/actions/security-guides/automatic-token-authentication.md index cba9c87b4c..f48f8f759b 100644 --- a/content/actions/security-guides/automatic-token-authentication.md +++ b/content/actions/security-guides/automatic-token-authentication.md @@ -40,7 +40,7 @@ You can use the `GITHUB_TOKEN` by using the standard syntax for referencing secr {% endnote %} {% endif %} -{% data reusables.github-actions.actions-do-not-trigger-workflows %} +{% data reusables.github-actions.actions-do-not-trigger-workflows %} ### Example 1: passing the `GITHUB_TOKEN` as an input @@ -106,7 +106,7 @@ The following table shows the permissions granted to the `GITHUB_TOKEN` by defau | checks | read/write | none | read | | contents | read/write | read | read | | deployments | read/write | none | read | -| id_token | read/write | none | read | +| id-token | read/write | none | read | | issues | read/write | none | read | | metadata | read | read | read | | packages | read/write | none | read | @@ -142,7 +142,7 @@ You can use the `permissions` key in your workflow file to modify permissions fo {% data reusables.github-actions.forked-write-permission %} -The two workflow examples earlier in this article show the `permissions` key being used at the workflow level, and at the job level. In [Example 1](#example-1-passing-the-github_token-as-an-input) the two permissions are specified for the entire workflow. In [Example 2](#example-2-calling-the-rest-api) write access is granted for one scope for a single job. +The two workflow examples earlier in this article show the `permissions` key being used at the workflow level, and at the job level. In [Example 1](#example-1-passing-the-github_token-as-an-input) the two permissions are specified for the entire workflow. In [Example 2](#example-2-calling-the-rest-api) write access is granted for one scope for a single job. For full details of the `permissions` key, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#permissions)." diff --git a/content/actions/using-github-hosted-runners/about-github-hosted-runners.md b/content/actions/using-github-hosted-runners/about-github-hosted-runners.md index 3dbd8e8fef..b1956d1a34 100644 --- a/content/actions/using-github-hosted-runners/about-github-hosted-runners.md +++ b/content/actions/using-github-hosted-runners/about-github-hosted-runners.md @@ -29,6 +29,8 @@ When you use a {% data variables.product.prodname_dotcom %}-hosted runner, machi You can specify the runner type for each job in a workflow. Each job in a workflow executes in a fresh instance of the virtual machine. All steps in the job execute in the same instance of the virtual machine, allowing the actions in that job to share information using the filesystem. +{% ifversion not ghes %} + {% data reusables.github-actions.runner-app-open-source %} ### Cloud hosts for {% data variables.product.prodname_dotcom %}-hosted runners @@ -142,3 +144,5 @@ Actions that run in Docker containers have static directories under the `/github - "[Managing billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions)" {% endif %} + +{% endif %} diff --git a/content/actions/using-github-hosted-runners/customizing-github-hosted-runners.md b/content/actions/using-github-hosted-runners/customizing-github-hosted-runners.md index 55e113bdf6..d018cd842e 100644 --- a/content/actions/using-github-hosted-runners/customizing-github-hosted-runners.md +++ b/content/actions/using-github-hosted-runners/customizing-github-hosted-runners.md @@ -3,7 +3,6 @@ title: Customizing GitHub-hosted runners intro: You can install additional software on GitHub-hosted runners as a part of your workflow. versions: fpt: '*' - ghes: '*' ghec: '*' type: tutorial topics: diff --git a/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 4244712fc4..8abeaf8aae 100644 --- a/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -152,6 +152,8 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav **Note:** The `-K` option is Apple's standard version of `ssh-add`, which stores the passphrase in your keychain for you when you add an SSH key to the ssh-agent. If you chose not to add a passphrase to your key, run the command without the `-K` option. If you don't have Apple's standard version installed, you may receive an error. For more information on resolving this error, see "[Error: ssh-add: illegal option -- K](/articles/error-ssh-add-illegal-option-k)." + + In MacOS Monterey (12.0), the `-K` and `-A` flags are deprecated and have been replaced by the `--apple-use-keychain` and `--apple-load-keychain` flags, respectively. {% endnote %} diff --git a/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md b/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md index 5271dd1dea..6e4ccf2989 100644 --- a/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md +++ b/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md @@ -13,6 +13,8 @@ versions: ghes: '>=3.1' fpt: '*' ghec: '*' + ghae: 'issue-5378' +miniTocMaxHeadingLevel: 3 type: how_to topics: - Advanced Security @@ -35,7 +37,7 @@ You can check how many seats your license includes and how many of them are curr {% data reusables.enterprise-accounts.license-tab %} The "{% data variables.product.prodname_GH_advanced_security %}" section shows details of the current usage. ![{% data variables.product.prodname_GH_advanced_security %} in enterprise licensing settings](/assets/images/help/enterprises/enterprise-licensing-tab-ghas.png) - If you run out of seats, the section will be red and show "Limit exceeded". You should either reduce your use of {% data variables.product.prodname_GH_advanced_security %} or purchase more seats. For more information, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security#getting-the-most-out-of-github-advanced-security)." + If you run out of seats, the section will be red and show "Limit exceeded." You should either reduce your use of {% data variables.product.prodname_GH_advanced_security %} or purchase more seats. For more information, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security#getting-the-most-out-of-github-advanced-security)." ![{% data variables.product.prodname_GH_advanced_security %} in enterprise licensing settings showing "Limit exceeded"](/assets/images/help/enterprises/enterprise-licensing-tab-ghas-no-seats.png) 4. Optionally, to see a detailed breakdown of usage per organization, in the left sidebar, click **Billing**. ![Billing tab in the enterprise account settings sidebar](/assets/images/help/business-accounts/settings-billing-tab.png) @@ -61,3 +63,50 @@ You can check how many seats your license includes and how many of them are curr For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)." {% endif %} + +{% ifversion ghec or ghes > 3.3 or ghae-issue-5378 %} + +## Downloading {% data variables.product.prodname_GH_advanced_security %} license usage information + +You can download a CSV file with {% data variables.product.prodname_GH_advanced_security %} license usage information at both the enterprise and organization levels. The CSV file contains information about each {% data variables.product.prodname_advanced_security %} seat that is in use, including: + +- The username of the person using the seat +- The {% data variables.product.prodname_advanced_security %}-enabled repositories where commits were made +- The organizations that people using seats belong to +- The most recent commit dates + +You can use this information for insights into how your {% data variables.product.prodname_advanced_security %} licenses are being used, such as which members of your enterprise are using an {% data variables.product.prodname_advanced_security %} seat or how {% data variables.product.prodname_advanced_security %} licenses are being consumed across your organizations. + +You can download the {% data variables.product.prodname_advanced_security %} license usage CSV through the {% data variables.product.product_name %} user interface or the REST API. + +### Downloading {% data variables.product.prodname_advanced_security %} license usage information through the UI + +#### At the organization-level + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +{% data reusables.organizations.billing_plans %} +1. Underneath "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Committers." + ![Download button for organization-level data](/assets/images/help/billing/download-organization-GHAS-usage-data.png) + +#### At the enterprise-level + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.settings-tab %} +{% data reusables.enterprise-accounts.license-tab %} +1. Under "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Commiters." + ![Download button for enterprise-level data](/assets/images/help/billing/download-enterprise-GHAS-usage-data.png) + +### Downloading {% data variables.product.prodname_advanced_security %} license usage information through the REST API + +You can retrieve {% data variables.product.prodname_advanced_security %} usage information via the billing API. + +{% ifversion ghec %} + +For organization-level data, use the `/orgs/{org}/settings/billing/advanced-security` endpoint. For more information, see "[Billing](/rest/reference/billing#get-github-advanced-security-active-committers-for-an-organization)" in the {% data variables.product.prodname_dotcom %} REST API documentation. + +{% endif %} + +For enterprise-level data, use the `/enterprises/{enterprise}/settings/billing/advanced-security` endpoint. For more information, see "[{% data variables.product.prodname_enterprise %} administration](/rest/reference/enterprise-admin#get-github-advanced-security-active-committers-for-an-enterprise)" in the {% data variables.product.prodname_dotcom %} REST API documentation. + +{% endif %} diff --git a/content/codespaces/developing-in-codespaces/codespaces-lifecycle.md b/content/codespaces/developing-in-codespaces/codespaces-lifecycle.md new file mode 100644 index 0000000000..59a3cb1418 --- /dev/null +++ b/content/codespaces/developing-in-codespaces/codespaces-lifecycle.md @@ -0,0 +1,82 @@ +--- +title: Codespaces lifecycle +intro: 'You can develop in a {% data variables.product.prodname_codespaces %} environment and maintain your data throughout the entire codespace lifecycle.' +versions: + fpt: '*' + ghec: '*' +type: overview +topics: + - Codespaces + - Developer +product: '{% data reusables.gated-features.codespaces %}' +--- + +## About the lifecycle of a codespace + +The lifecycle of a codespace begins when you create a codespace and ends when you delete it. You can disconnect and reconnect to an active codespace without affecting its running processes. You may stop and restart a codespace without losing changes that you have made to your project. + +## Creating a codespace + +When you want to work on a project, you can choose to create a new codespace or open an existing codespace. You might want to create a new codespace from a branch of your project each time you develop in {% data variables.product.prodname_codespaces %} or keep a long-running codespace for a feature. + +If you choose to create a new codespace each time you work on a project, you should regularly push your changes so that any new commits are on {% data variables.product.prodname_dotcom %}. You can have up to 10 codespaces at a time. Once you have 10 codespaces, you must delete a codespace before you can create a new one. For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace)." + +If you choose to use a long-running codespace for your project, you should pull from your repository's default branch each time you start working in your codespace so that your environment has the latest commits. This workflow is very similar to if you were working with a project on your local machine. + +## Saving changes in a codespace + +When you connect to a codespace through the web, auto-save is enabled automatically for the web editor and configured to save changes after a delay. When you connect to a codespace through {% data variables.product.prodname_vscode %} running on your desktop, you must enable auto-save. For more information, see [Save/Auto Save](https://code.visualstudio.com/docs/editor/codebasics#_save-auto-save) in the {% data variables.product.prodname_vscode %} documentation. + +If you want to save your changes in the git repository on the codespace's file system, commit them and push them to a remote branch. + +If you have unsaved changes, your editor will prompt you to save them before exiting. + +## Codespaces timeouts + +If you leave your codespace running without interaction or if you exit your codespace without explicitly stopping it, the codespace will timeout after 30 minutes of inactivity and stop running. For more information, see "[Stopping a codespace](#stopping-a-codespace)." + +When a codespace times out, your data is preserved from the last time your changes were saved. For more information, see "[Saving changes in a codespace](#saving-changes-in-a-codespace)." + +## Rebuilding a codespace + +You can rebuild your codespace to restore a clean state as if you had created a new codespace. For most uses, you can create a new codespace as an alternative to rebuilding a codespace. You are most likely to rebuild a codespace to implement changes to your dev container. When you rebuild a codespace, any Docker containers, images, volumes, and caches are cleaned, then the codespace is rebuilt. + +If you need any of this data to persist over a rebuild, you can create, at the desired location in the container, a symbolic link (symlink) to the persistent directory. For example, in your `.devcontainer` directory, you can create a `config` directory that will be preserved across a rebuild. You can then symlink the `config` directory and its contents as a `postCreateCommand` in your `devcontainer.json` file. + +```json +{ + "image": "mcr.microsoft.com/vscode/devcontainers/base:alpine", + "postCreateCommand": ".devcontainer/postCreate.sh" +} +``` + +In the example `postCreate.sh` file below, the contents of the `config` directory are symbolically linked to the home directory. + +```bash +#!/bin/bash +ln -sf $PWD/.devcontainer/config $HOME/config && set +x +``` + +## Stopping a codespace + +You can stop a codespace at any time. When you stop a codespace, any running processes are stopped and the terminal history is cleared. Any saved changes in your codespace will still be available when you next start it. If you do not explicitly stop a codespace, it will continue to run until it times out from inactivity. For more information, see "[Codespaces timeouts](#codespaces-timeouts)." + +Only running codespaces incur CPU charges; a stopped codespace incurs only storage costs. + +You may want to stop and restart a codespace to apply changes to it. For example, if you change the machine type used for your codespace, you will need to stop and restart it for the change to take effect. You can also stop your codespace and choose to restart or delete it if you encounter an error or something unexpected. For more information, see "[Suspending or stopping a codespace](/codespaces/codespaces-reference/using-the-command-palette-in-codespaces#suspending-or-stopping-a-codespace)." + +## Deleting a codespace + +You can create a codespace for a particular task and then safely delete the codespace after you push your changes to a remote branch. + +If you try to delete a codespace with unpushed git commits, your editor will notify you that you have changes that have not been pushed to a remote branch. You can push any desired changes and then delete your codespace, or continue to delete your codespace and any uncommitted changes. You can also export your code to a new branch without creating a new codespace. For more information, see "[Exporting changes to a branch](/codespaces/troubleshooting/exporting-changes-to-a-branch)." + +You will be charged for the storage of all your codespaces. When you delete a codespace, you will no longer be charged. + +For more information on deleting a codespace, see "[Deleting a codespace](/codespaces/developing-in-codespaces/deleting-a-codespace)." + +## Losing the connection while using Codespaces + +{% data variables.product.prodname_codespaces %} is a cloud-based development environment and requires an internet connection. If you lose connection to the internet while working in a codespace, you will not be able to access your codespace. However, any uncommitted changes will be saved. When you have access to an internet connection again, you can connect to your codespace in the exact same state that it was left in. If you have an unstable internet connection, you should commit and push your changes often. + +If you know that you will often be working offline, you can use your `devcontainer.json` file with the ["{% data variables.product.prodname_vscode %} Remote - Containers" extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) to build and attach to a local development container for your repository. For more information, see [Developing inside a container](https://code.visualstudio.com/docs/remote/containers) in the {% data variables.product.prodname_vscode %} documentation. diff --git a/content/codespaces/developing-in-codespaces/creating-a-codespace.md b/content/codespaces/developing-in-codespaces/creating-a-codespace.md index 89ff53eb8a..7d3630f2df 100644 --- a/content/codespaces/developing-in-codespaces/creating-a-codespace.md +++ b/content/codespaces/developing-in-codespaces/creating-a-codespace.md @@ -32,6 +32,8 @@ When you create a codespace, a number of steps happen to create and connect you For more information on what happens when you create a codespace, see "[Deep Dive](/codespaces/getting-started/deep-dive)." +For more information on the lifecycle of a codespace, see "[Codespaces lifecycle](/codespaces/developing-in-codespaces/codespaces-lifecycle)." + If you want to use Git hooks for your codespace, then you should set up hooks using the [`devcontainer.json` lifecycle scripts](https://code.visualstudio.com/docs/remote/devcontainerjson-reference#_lifecycle-scripts), such as `postCreateCommand`, during step 4. Since your codespace container is created after the repository is cloned, any [git template directory](https://git-scm.com/docs/git-init#_template_directory) configured in the container image will not apply to your codespace. Hooks must instead be installed after the codespace is created. For more information on using `postCreateCommand`, see the [`devcontainer.json` reference](https://code.visualstudio.com/docs/remote/devcontainerjson-reference#_devcontainerjson-properties) in the Visual Studio Code documentation. {% data reusables.codespaces.use-visual-studio-features %} diff --git a/content/codespaces/developing-in-codespaces/deleting-a-codespace.md b/content/codespaces/developing-in-codespaces/deleting-a-codespace.md index bdaf7d0656..6ee69270ff 100644 --- a/content/codespaces/developing-in-codespaces/deleting-a-codespace.md +++ b/content/codespaces/developing-in-codespaces/deleting-a-codespace.md @@ -59,3 +59,6 @@ If you have unsaved changes, you'll be prompted to confirm deletion. You can use For more information about this command, see [the {% data variables.product.prodname_cli %} manual](https://cli.github.com/manual/gh_codespace_delete). {% endcli %} + +## Further reading +- [Codespaces lifecycle](/codespaces/developing-in-codespaces/codespaces-lifecycle) diff --git a/content/codespaces/developing-in-codespaces/index.md b/content/codespaces/developing-in-codespaces/index.md index cd8cc540b1..f5fb2b8625 100644 --- a/content/codespaces/developing-in-codespaces/index.md +++ b/content/codespaces/developing-in-codespaces/index.md @@ -8,6 +8,7 @@ versions: topics: - Codespaces children: + - /codespaces-lifecycle - /creating-a-codespace - /developing-in-a-codespace - /using-source-control-in-your-codespace diff --git a/content/codespaces/developing-in-codespaces/using-codespaces-in-visual-studio-code.md b/content/codespaces/developing-in-codespaces/using-codespaces-in-visual-studio-code.md index 3ec571164e..2f9f4c0cdc 100644 --- a/content/codespaces/developing-in-codespaces/using-codespaces-in-visual-studio-code.md +++ b/content/codespaces/developing-in-codespaces/using-codespaces-in-visual-studio-code.md @@ -95,3 +95,13 @@ If the codespace is currently running, a message is displayed asking if you woul ## Deleting a codespace in {% data variables.product.prodname_vscode %} {% data reusables.codespaces.deleting-a-codespace-in-vscode %} + +## Switching to the Insiders build of {% data variables.product.prodname_vscode %} + +You can use the [Insiders Build of Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview#_insiders-nightly-build) within {% data variables.product.prodname_codespaces %}. + +1. In bottom left of your {% data variables.product.prodname_codespaces %} window, select **{% octicon "gear" aria-label="The settings icon" %} Settings**. +2. From the list, select "Switch to Insiders Version". + + ![Clicking on "Insiders Build" in {% data variables.product.prodname_codespaces %}](/assets/images/help/codespaces/codespaces-insiders-vscode.png) +3. Once selected, {% data variables.product.prodname_codespaces %} will continue to open in Insiders Version. diff --git a/content/codespaces/getting-started/deep-dive.md b/content/codespaces/getting-started/deep-dive.md index db96ac635d..341f4d1d3d 100644 --- a/content/codespaces/getting-started/deep-dive.md +++ b/content/codespaces/getting-started/deep-dive.md @@ -116,3 +116,4 @@ If you already use {% data variables.product.prodname_vscode %}, you can use [Se - [Enabling {% data variables.product.prodname_codespaces %} for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization) - [Managing billing for {% data variables.product.prodname_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-codespaces-in-your-organization) - [Setting up your project for Codespaces](/codespaces/setting-up-your-project-for-codespaces) +- [Codespaces lifecycle](/codespaces/developing-in-codespaces/codespaces-lifecycle) diff --git a/content/codespaces/index.md b/content/codespaces/index.md index 9a614a42fe..da81bc9add 100644 --- a/content/codespaces/index.md +++ b/content/codespaces/index.md @@ -11,7 +11,7 @@ featuredLinks: - /codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization - /codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project - /codespaces/managing-codespaces-for-your-organization/managing-repository-access-for-your-organizations-codespaces - - /codespaces/managing-codespaces-for-your-organization/reviewing-your-organizations-audit-logs-for-codespaces + - /codespaces/developing-in-codespaces/codespaces-lifecycle popular: - /codespaces/getting-started-with-codespaces/getting-started-with-your-nodejs-project-in-codespaces - /codespaces/getting-started-with-codespaces/getting-started-with-your-python-project-in-codespaces diff --git a/content/github/site-policy/responsible-disclosure-of-security-vulnerabilities.md b/content/github/site-policy/coordinated-disclosure-of-security-vulnerabilities.md similarity index 77% rename from content/github/site-policy/responsible-disclosure-of-security-vulnerabilities.md rename to content/github/site-policy/coordinated-disclosure-of-security-vulnerabilities.md index 49f45024ee..e755a01593 100644 --- a/content/github/site-policy/responsible-disclosure-of-security-vulnerabilities.md +++ b/content/github/site-policy/coordinated-disclosure-of-security-vulnerabilities.md @@ -1,18 +1,20 @@ --- -title: Responsible Disclosure of Security Vulnerabilities +title: Coordinated Disclosure of Security Vulnerabilities redirect_from: - /responsible-disclosure/ + - /coordinated-disclosure/ - /articles/responsible-disclosure-of-security-vulnerabilities + - /site-policy/responsible-disclosure-of-security-vulnerabilities versions: fpt: '*' topics: - Policy - Legal --- -We want to keep GitHub safe for everyone. If you've discovered a security vulnerability in GitHub, we appreciate your help in disclosing it to us in a responsible manner. +We want to keep GitHub safe for everyone. If you've discovered a security vulnerability in GitHub, we appreciate your help in disclosing it to us in a coordinated manner. ## Bounty Program -Like several other large software companies, GitHub provides a bug bounty to better engage with security researchers. The idea is simple: hackers and security researchers (like you) find and report vulnerabilities through our responsible disclosure process. Then, to recognize the significant effort that these researchers often put forth when hunting down bugs, we reward them with some cold hard cash. +Like several other large software companies, GitHub provides a bug bounty to better engage with security researchers. The idea is simple: hackers and security researchers (like you) find and report vulnerabilities through our coordinated disclosure process. Then, to recognize the significant effort that these researchers often put forth when hunting down bugs, we reward them with some cold hard cash. Check out the [GitHub Bug Bounty](https://bounty.github.com) site for bounty details, review our comprehensive [Legal Safe Harbor Policy](/articles/github-bug-bounty-program-legal-safe-harbor) terms as well, and happy hunting! diff --git a/content/github/site-policy/github-bug-bounty-program-legal-safe-harbor.md b/content/github/site-policy/github-bug-bounty-program-legal-safe-harbor.md index a17b67345c..687fba4885 100644 --- a/content/github/site-policy/github-bug-bounty-program-legal-safe-harbor.md +++ b/content/github/site-policy/github-bug-bounty-program-legal-safe-harbor.md @@ -10,13 +10,13 @@ topics: --- ## Summary -1. We want you to responsibly disclose through our bug bounty program, and don't want researchers put in fear of legal consequences because of their good faith attempts to comply with our bug bounty policy. We cannot bind any third party, so do not assume this protection extends to any third party. If in doubt, ask us before engaging in any specific action you think _might_ go outside the bounds of our policy. +1. We want you to coordinate disclosure through our bug bounty program, and don't want researchers put in fear of legal consequences because of their good faith attempts to comply with our bug bounty policy. We cannot bind any third party, so do not assume this protection extends to any third party. If in doubt, ask us before engaging in any specific action you think _might_ go outside the bounds of our policy. 2. Because both identifying and non-identifying information can put a researcher at risk, we limit what we share with third parties. We may provide non-identifying substantive information from your report to an affected third party, but only after notifying you and receiving a commitment that the third party will not pursue legal action against you. We will only share identifying information (name, email address, phone number, etc.) with a third party if you give your written permission. 3. If your security research as part of the bug bounty program violates certain restrictions in our site policies, the safe harbor terms permit a limited exemption. ## 1. Safe Harbor Terms -To encourage research and responsible disclosure of security vulnerabilities, we will not pursue civil or criminal action, or send notice to law enforcement for accidental or good faith violations of this policy. We consider security research and vulnerability disclosure activities conducted consistent with this policy to be “authorized” conduct under the Computer Fraud and Abuse Act, the DMCA, and other applicable computer use laws such as Cal. Penal Code 502(c). We waive any potential DMCA claim against you for circumventing the technological measures we have used to protect the applications in this bug bounty program's scope. +To encourage research and coordinated disclosure of security vulnerabilities, we will not pursue civil or criminal action, or send notice to law enforcement for accidental or good faith violations of this policy. We consider security research and vulnerability disclosure activities conducted consistent with this policy to be “authorized” conduct under the Computer Fraud and Abuse Act, the DMCA, and other applicable computer use laws such as Cal. Penal Code 502(c). We waive any potential DMCA claim against you for circumventing the technological measures we have used to protect the applications in this bug bounty program's scope. Please understand that if your security research involves the networks, systems, information, applications, products, or services of a third party (which is not us), we cannot bind that third party, and they may pursue legal action or law enforcement notice. We cannot and do not authorize security research in the name of other entities, and cannot in any way offer to defend, indemnify, or otherwise protect you from any third party action based on your actions. diff --git a/content/github/site-policy/index.md b/content/github/site-policy/index.md index 80677f1a31..abb63c7a33 100644 --- a/content/github/site-policy/index.md +++ b/content/github/site-policy/index.md @@ -27,7 +27,7 @@ children: - /github-private-information-removal-policy - /github-subprocessors-and-cookies - /github-bug-bounty-program-legal-safe-harbor - - /responsible-disclosure-of-security-vulnerabilities + - /coordinated-disclosure-of-security-vulnerabilities - /guidelines-for-legal-requests-of-user-data - /github-government-takedown-policy - /github-acceptable-use-policies diff --git a/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md b/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md index cd610f190a..f45688150f 100644 --- a/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md +++ b/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md @@ -185,7 +185,7 @@ Some of the features listed below are limited to organizations using {% data var | Reinstate former members to the organization | **X** | | | | Add and remove people from **all teams** | **X** | | | Promote organization members to *team maintainer* | **X** | | -| Configure code review assignments (see "[Managing code review assignment for your team](/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team)") | **X** | | +| Configure code review assignments (see "[Managing code review settings for your team](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)")) | **X** | | | Add collaborators to **all repositories** | **X** | | | Access the organization audit log | **X** | | | Edit the organization's profile page (see "[About your organization's profile](/github/setting-up-and-managing-your-github-profile/customizing-your-profile/about-your-organizations-profile)" for details) | **X** | | |{% ifversion ghes > 3.1 %} diff --git a/content/organizations/organizing-members-into-teams/index.md b/content/organizations/organizing-members-into-teams/index.md index 801d81f87b..e3c495fc00 100644 --- a/content/organizations/organizing-members-into-teams/index.md +++ b/content/organizations/organizing-members-into-teams/index.md @@ -26,7 +26,7 @@ children: - /adding-organization-members-to-a-team - /assigning-the-team-maintainer-role-to-a-team-member - /setting-your-teams-profile-picture - - /managing-code-review-assignment-for-your-team + - /managing-code-review-settings-for-your-team - /renaming-a-team - /changing-team-visibility - /synchronizing-a-team-with-an-identity-provider-group diff --git a/content/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team.md b/content/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team.md similarity index 61% rename from content/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team.md rename to content/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team.md index 423580ca3b..37e0b02865 100644 --- a/content/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team.md +++ b/content/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team.md @@ -1,8 +1,9 @@ --- -title: Managing code review assignment for your team -intro: Code review assignments clearly indicate which members of a team are expected to submit a review for a pull request. +title: Managing code review settings for your team +intro: You can decrease noise for your team by limiting notifications when your team is requested to review a pull request. redirect_from: - /github/setting-up-and-managing-organizations-and-teams/managing-code-review-assignment-for-your-team + - /organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team product: '{% data reusables.gated-features.code-review-assignment %}' versions: fpt: '*' @@ -12,13 +13,26 @@ versions: topics: - Organizations - Teams -shortTitle: Code review assignment -permissions: Team maintainers and organization owners can configure code review assignments. +shortTitle: Code review settings +permissions: Team maintainers and organization owners can configure code review settings. --- -## About code review assignments +## About code review settings -By using code review assignments, any time your team has been requested to review a pull request, the team is removed as a reviewer and a specified subset of team members are assigned in the team's place. Code review assignments allow you to decide whether the whole team or just a subset of team members are notified when a team is requested for review. +{% if only-notify-requested-members %} +To reduce noise for your team and clarify individual responsibility for pull request reviews, you can configure code review settings. + +- Team notifications +- Auto assignment + +## About team notifications + +When you choose to only notify requested team members, you disable sending notifications to the entire team when the team is requested to review a pull request if a specific member of that team is also requested for review. This is especially useful when a repository is configured with teams as code owners, but contributors to the repository often know a specific individual that would be the correct reviewer for their pull request. For more information, see "[About code owners](/github/creating-cloning-and-archiving-repositories/about-code-owners)." + +## About auto assignment +{% endif %} + +When you enable auto assignment, any time your team has been requested to review a pull request, the team is removed as a reviewer and a specified subset of team members are assigned in the team's place. Code review assignments allow you to decide whether the whole team or just a subset of team members are notified when a team is requested for review. When code owners are automatically requested for review, the team is still removed and replaced with individuals. The individual approvals don't satisfy the requirement for code owner approval in a protected branch. For more information, see "[About code owners](/github/creating-cloning-and-archiving-repositories/about-code-owners)." @@ -26,7 +40,7 @@ When code owners are automatically requested for review, the team is still remov To further enhance your team's collaboration abilities, you can upgrade to {% data variables.product.prodname_ghe_cloud %}, which includes features like protected branches and code owners on private repositories. {% data reusables.enterprise.link-to-ghec-trial %} {% endif %} -## Routing algorithms +### Routing algorithms Code review assignments automatically choose and assign reviewers based on one of two possible algorithms. @@ -36,29 +50,45 @@ The load balance algorithm chooses reviewers based on each member's total number Any team members that have set their status to "Busy" will not be selected for review. If all team members are busy, the pull request will remain assigned to the team itself. For more information about user statuses, see "[Setting a status](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile#setting-a-status)." -## Configuring code review assignment +{% if only-notify-requested-members %} +## Configuring team notifications + {% data reusables.profile.access_org %} {% data reusables.user_settings.access_org %} {% data reusables.organizations.specific_team %} {% data reusables.organizations.team_settings %} -5. In the left sidebar, click **Code review assignment** -![Code review assignment button](/assets/images/help/teams/review-assignment-button.png) +5. In the left sidebar, click **Code review** +![Code review button](/assets/images/help/teams/review-button.png) +2. Select **Only notify requested team members.** +![Code review team notifications](/assets/images/help/teams/review-assignment-notifications.png) +3. Click **Save changes**. +{% endif %} + +## Configuring auto assignment +{% data reusables.profile.access_org %} +{% data reusables.user_settings.access_org %} +{% data reusables.organizations.specific_team %} +{% data reusables.organizations.team_settings %} +5. In the left sidebar, click **Code review** +![Code review button](/assets/images/help/teams/review-button.png) 6. Select **Enable auto assignment**. -![Code review assignment button](/assets/images/help/teams/review-assignment-enable.png) +![Auto-assignment button](/assets/images/help/teams/review-assignment-enable.png) 7. Under "How many team members should be assigned to review?", use the drop-down menu and choose a number of reviewers to be assigned to each pull request. ![Number of reviewers dropdown](/assets/images/help/teams/review-assignment-number.png) 8. Under "Routing algorithm", use the drop-down menu and choose which algorithm you'd like to use. For more information, see "[Routing algorithms](#routing-algorithms)." ![Routing algorithm dropdown](/assets/images/help/teams/review-assignment-algorithm.png) 9. Optionally, to always skip certain members of the team, select **Never assign certain team members**. Then, select one or more team members you'd like to always skip. ![Never assign certain team members checkbox and dropdown](/assets/images/help/teams/review-assignment-skip-members.png) -10. Optionally, to only notify the team members chosen by code review assignment for each pull review request, under "Notifications" select **If assigning team members, don't notify the entire team.** -![Code review assignment notifications](/assets/images/help/teams/review-assignment-notifications.png){% ifversion fpt or ghae or ghes > 3.2 or ghec %} +{% ifversion fpt or ghec or ghae-next or ghes > 3.2 %} 11. Optionally, to include members of child teams as potential reviewers when assigning requests, select **Child team members**. 12. Optionally, to count any members whose review has already been requested against the total number of members to assign, select **Count existing requests**. -13. Optionally, to remove the review request from the team when assigning team members, select **Team review request**.{% endif %} +13. Optionally, to remove the review request from the team when assigning team members, select **Team review request**. +{%- else %} +10. Optionally, to only notify the team members chosen by code review assignment for each pull review request, under "Notifications" select **If assigning team members, don't notify the entire team.** +{%- endif %} 14. Click **Save changes**. -## Disabling code review assignment +## Disabling auto assignment {% data reusables.profile.access_org %} {% data reusables.user_settings.access_org %} {% data reusables.organizations.specific_team %} diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review.md index 91a9d3e146..d791c95923 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review.md @@ -17,7 +17,7 @@ shortTitle: Request a PR review --- Owners and collaborators on a repository owned by a user account can assign pull request reviews. Organization members with triage permissions to a repository can assign a pull request review. -Owners or collaborators can assign a pull request review to any person that has been explicitly granted [read access](/articles/access-permissions-on-github) to a user-owned repository. Organization members can assign a pull request review to any person or team with read access to a repository. The requested reviewer or team will receive a notification that you asked them to review the pull request. {% ifversion fpt or ghae or ghes or ghec %}If you request a review from a team and code review assignment is enabled, specific members will be requested and the team will be removed as a reviewer. For more information, see "[Managing code review assignment for your team](/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team)."{% endif %} +Owners or collaborators can assign a pull request review to any person that has been explicitly granted [read access](/articles/access-permissions-on-github) to a user-owned repository. Organization members can assign a pull request review to any person or team with read access to a repository. The requested reviewer or team will receive a notification that you asked them to review the pull request. {% ifversion fpt or ghae or ghes or ghec %}If you request a review from a team and code review assignment is enabled, specific members will be requested and the team will be removed as a reviewer. For more information, see "[Managing code review settings for your team](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)."{% endif %} {% note %} diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews.md index ad3e4d5f2f..41d86814c4 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews.md @@ -19,7 +19,7 @@ shortTitle: About PR reviews After a pull request is opened, anyone with *read* access can review and comment on the changes it proposes. You can also suggest specific changes to lines of code, which the author can apply directly from the pull request. For more information, see "[Reviewing proposed changes in a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request)." -Repository owners and collaborators can request a pull request review from a specific person. Organization members can also request a pull request review from a team with read access to the repository. For more information, see "[Requesting a pull request review](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review)." {% ifversion fpt or ghae or ghes or ghec %}You can specify a subset of team members to be automatically assigned in the place of the whole team. For more information, see "[Managing code review assignment for your team](/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team)."{% endif %} +Repository owners and collaborators can request a pull request review from a specific person. Organization members can also request a pull request review from a team with read access to the repository. For more information, see "[Requesting a pull request review](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review)." {% ifversion fpt or ghae or ghes or ghec %}You can specify a subset of team members to be automatically assigned in the place of the whole team. For more information, see "[Managing code review settings for your team](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)."{% endif %} Reviews allow for discussion of proposed changes and help ensure that the changes meet the repository's contributing guidelines and other quality standards. You can define which individuals or teams own certain types or areas of code in a CODEOWNERS file. When a pull request modifies code that has a defined owner, that individual or team will automatically be requested as a reviewer. For more information, see "[About code owners](/articles/about-code-owners/)." diff --git a/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md b/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md index 49bd83ee09..1cc57f9028 100644 --- a/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md +++ b/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md @@ -25,7 +25,7 @@ Code owners are automatically requested for review when someone opens a pull req When someone with admin or owner permissions has enabled required reviews, they also can optionally require approval from a code owner before the author can merge a pull request in the repository. For more information, see "[About protected branches](/github/administering-a-repository/about-protected-branches#require-pull-request-reviews-before-merging)." -{% ifversion fpt or ghae or ghes or ghec %}If a team has enabled code review assignments, the individual approvals won't satisfy the requirement for code owner approval in a protected branch. For more information, see "[Managing code review assignment for your team](/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team)."{% endif %} +{% ifversion fpt or ghae or ghes or ghec %}If a team has enabled code review assignments, the individual approvals won't satisfy the requirement for code owner approval in a protected branch. For more information, see "[Managing code review settings for your team](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)."{% endif %} If a file has a code owner, you can see who the code owner is before you open a pull request. In the repository, you can browse to the file and hover over {% octicon "shield-lock" aria-label="The edit icon" %}. diff --git a/data/features/only-notify-requested-members.yml b/data/features/only-notify-requested-members.yml new file mode 100644 index 0000000000..c60dc7e6b8 --- /dev/null +++ b/data/features/only-notify-requested-members.yml @@ -0,0 +1,7 @@ +# Issue #5108 +# Documentation for the "Only notify requested team members" option in the code review settings +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.4' + ghae: '*' diff --git a/data/reusables/gated-features/code-review-assignment.md b/data/reusables/gated-features/code-review-assignment.md index 54941c9a54..7fbd17b9a2 100644 --- a/data/reusables/gated-features/code-review-assignment.md +++ b/data/reusables/gated-features/code-review-assignment.md @@ -1 +1 @@ -Code review assignment is available with {% data variables.product.prodname_team %}, {% data variables.product.prodname_ghe_server %} 2.20+,{% ifversion ghae %} {% data variables.product.prodname_ghe_managed %},{% endif %} and {% data variables.product.prodname_ghe_cloud %}. For more information, see "[GitHub's products](/articles/githubs-products)." +Code review settings are available with {% data variables.product.prodname_team %}, {% data variables.product.prodname_ghe_server %} 2.20+,{% ifversion ghae %} {% data variables.product.prodname_ghe_managed %},{% endif %} and {% data variables.product.prodname_ghe_cloud %}. For more information, see "[GitHub's products](/articles/githubs-products)." diff --git a/data/reusables/github-actions/github-token-available-permissions.md b/data/reusables/github-actions/github-token-available-permissions.md index 79dec2bfd8..3ad79da348 100644 --- a/data/reusables/github-actions/github-token-available-permissions.md +++ b/data/reusables/github-actions/github-token-available-permissions.md @@ -6,7 +6,7 @@ permissions: checks: read|write|none contents: read|write|none deployments: read|write|none - id_token: read|write|none + id-token: read|write|none issues: read|write|none discussions: read|write|none packages: read|write|none @@ -16,7 +16,7 @@ permissions: statuses: read|write|none ``` -If you specify the access for any of these scopes, all of those that are not specified are set to `none`. +If you specify the access for any of these scopes, all of those that are not specified are set to `none`. You can use the following syntax to define read or write access for all of the available scopes: diff --git a/data/reusables/organizations/team_maintainers_can.md b/data/reusables/organizations/team_maintainers_can.md index 5bd403a0ba..7399688abc 100644 --- a/data/reusables/organizations/team_maintainers_can.md +++ b/data/reusables/organizations/team_maintainers_can.md @@ -11,5 +11,5 @@ Members with team maintainer permissions can: - [Remove organization members from the team](/articles/removing-organization-members-from-a-team) - [Promote an existing team member to team maintainer](/organizations/organizing-members-into-teams/assigning-the-team-maintainer-role-to-a-team-member) - Remove the team's access to repositories{% ifversion fpt or ghes or ghae or ghec %} -- [Manage code review assignment for the team](/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team){% endif %}{% ifversion fpt or ghec %} +- [Manage code review settings for the team](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team){% endif %}{% ifversion fpt or ghec %} - [Manage scheduled reminders for pull requests](/github/setting-up-and-managing-organizations-and-teams/managing-scheduled-reminders-for-pull-requests){% endif %} diff --git a/data/ui.yml b/data/ui.yml index e5723c4bc2..de1f6c6a99 100644 --- a/data/ui.yml +++ b/data/ui.yml @@ -31,6 +31,7 @@ search: placeholder: Search topics, products... loading: Loading no_results: No results found + no_content: No content homepage: explore_by_product: Explore by product version_picker: Version diff --git a/lib/hydro.js b/lib/hydro.js index 8667d22363..1860647e65 100644 --- a/lib/hydro.js +++ b/lib/hydro.js @@ -15,7 +15,7 @@ export default class Hydro { * Can check if it can actually send to Hydro */ maySend() { - return Boolean(this.secret && this.endpoint) + return Boolean(this.secret && this.endpoint && process.env.NODE_ENV !== 'test') } /** diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index bd7b5172ba..1604f070c2 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -49282,7 +49282,7 @@ "httpStatusCode": "200", "httpStatusMessage": "OK", "description": "Response", - "payload": "
    {\n  \"total_count\": 3,\n  \"codespaces\": [\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n      \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n      \"recent_folders\": []\n    },\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-3f89ada1j3\",\n      \"environment_id\": \"526ce4d7-46da-494f-a4f9-cfd25b818719\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-3f89ada1j3.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/stop\",\n      \"recent_folders\": []\n    },\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-f8adfad99a\",\n      \"environment_id\": \"6ac8cd6d-a2d0-4ae3-8cea-e135059264df\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-f8adfad99a.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/stop\",\n      \"recent_folders\": []\n    }\n  ]\n}\n
    " + "payload": "
    {\n  \"total_count\": 3,\n  \"codespaces\": [\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n      \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"prebuild\": false,\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n      \"recent_folders\": []\n    },\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-3f89ada1j3\",\n      \"environment_id\": \"526ce4d7-46da-494f-a4f9-cfd25b818719\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"prebuild\": false,\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-3f89ada1j3.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/stop\",\n      \"recent_folders\": []\n    },\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-f8adfad99a\",\n      \"environment_id\": \"6ac8cd6d-a2d0-4ae3-8cea-e135059264df\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"prebuild\": false,\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-f8adfad99a.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/stop\",\n      \"recent_folders\": []\n    }\n  ]\n}\n
    " }, { "httpStatusCode": "401", @@ -49462,13 +49462,13 @@ "httpStatusCode": "201", "httpStatusMessage": "Created", "description": "Response when the codespace was successfully created", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "202", "httpStatusMessage": "Accepted", "description": "Response when the codespace creation partially failed but is being retried in the background", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "401", @@ -71034,13 +71034,13 @@ "httpStatusCode": "201", "httpStatusMessage": "Created", "description": "Response when the codespace was successfully created", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "202", "httpStatusMessage": "Accepted", "description": "Response when the codespace creation partially failed but is being retried in the background", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "401", @@ -88966,7 +88966,7 @@ "httpStatusCode": "200", "httpStatusMessage": "OK", "description": "Response", - "payload": "
    {\n  \"total_count\": 3,\n  \"codespaces\": [\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n      \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n      \"recent_folders\": []\n    },\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-3f89ada1j3\",\n      \"environment_id\": \"526ce4d7-46da-494f-a4f9-cfd25b818719\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-3f89ada1j3.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/stop\",\n      \"recent_folders\": []\n    },\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-f8adfad99a\",\n      \"environment_id\": \"6ac8cd6d-a2d0-4ae3-8cea-e135059264df\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-f8adfad99a.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/stop\",\n      \"recent_folders\": []\n    }\n  ]\n}\n
    " + "payload": "
    {\n  \"total_count\": 3,\n  \"codespaces\": [\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n      \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"prebuild\": false,\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n      \"recent_folders\": []\n    },\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-3f89ada1j3\",\n      \"environment_id\": \"526ce4d7-46da-494f-a4f9-cfd25b818719\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"prebuild\": false,\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-3f89ada1j3.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-3f89ada1j3/stop\",\n      \"recent_folders\": []\n    },\n    {\n      \"id\": 1,\n      \"name\": \"monalisa-octocat-hello-world-f8adfad99a\",\n      \"environment_id\": \"6ac8cd6d-a2d0-4ae3-8cea-e135059264df\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"billable_owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"repository\": {\n        \"id\": 1296269,\n        \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n        \"name\": \"Hello-World\",\n        \"full_name\": \"octocat/Hello-World\",\n        \"owner\": {\n          \"login\": \"octocat\",\n          \"id\": 1,\n          \"node_id\": \"MDQ6VXNlcjE=\",\n          \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/octocat\",\n          \"html_url\": \"https://github.com/octocat\",\n          \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n          \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n          \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n          \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n          \"type\": \"User\",\n          \"site_admin\": false\n        },\n        \"private\": false,\n        \"html_url\": \"https://github.com/octocat/Hello-World\",\n        \"description\": \"This your first repo!\",\n        \"fork\": false,\n        \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n        \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n        \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n        \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n        \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n        \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n        \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n        \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n        \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n        \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n        \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n        \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n        \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n        \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n        \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n        \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n        \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n        \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n        \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n        \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n        \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n        \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n        \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n        \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n        \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n        \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n        \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n        \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n        \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n        \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n        \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n        \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n        \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n        \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n        \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n        \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n        \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n        \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n        \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n      },\n      \"machine\": {\n        \"name\": \"standardLinux\",\n        \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n        \"operating_system\": \"linux\",\n        \"storage_in_bytes\": 68719476736,\n        \"memory_in_bytes\": 8589934592,\n        \"cpus\": 4\n      },\n      \"prebuild\": false,\n      \"created_at\": \"2021-10-14T00:53:30-06:00\",\n      \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n      \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n      \"state\": \"Available\",\n      \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a\",\n      \"git_status\": {\n        \"ahead\": 0,\n        \"behind\": 0,\n        \"has_unpushed_changes\": false,\n        \"has_uncommitted_changes\": false,\n        \"ref\": \"main\"\n      },\n      \"location\": \"WestUs2\",\n      \"idle_timeout_minutes\": 60,\n      \"web_url\": \"https://monalisa-octocat-hello-world-f8adfad99a.github.dev\",\n      \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/machines\",\n      \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/start\",\n      \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-f8adfad99a/stop\",\n      \"recent_folders\": []\n    }\n  ]\n}\n
    " }, { "httpStatusCode": "304", @@ -89263,13 +89263,13 @@ "httpStatusCode": "201", "httpStatusMessage": "Created", "description": "Response when the codespace was successfully created", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "202", "httpStatusMessage": "Accepted", "description": "Response when the codespace creation partially failed but is being retried in the background", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "401", @@ -90240,7 +90240,7 @@ "httpStatusCode": "200", "httpStatusMessage": "OK", "description": "Response", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "304", @@ -90359,7 +90359,7 @@ "httpStatusCode": "200", "httpStatusMessage": "OK", "description": "Response", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "401", @@ -90602,7 +90602,7 @@ "httpStatusCode": "200", "httpStatusMessage": "OK", "description": "Response", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "304", @@ -90701,7 +90701,7 @@ "httpStatusCode": "200", "httpStatusMessage": "OK", "description": "Response", - "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " + "payload": "
    {\n  \"id\": 1,\n  \"name\": \"monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"environment_id\": \"26a7c758-7299-4a73-b978-5a92a7ae98a0\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"billable_owner\": {\n    \"login\": \"octocat\",\n    \"id\": 1,\n    \"node_id\": \"MDQ6VXNlcjE=\",\n    \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": false\n  },\n  \"repository\": {\n    \"id\": 1296269,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n    \"name\": \"Hello-World\",\n    \"full_name\": \"octocat/Hello-World\",\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 1,\n      \"node_id\": \"MDQ6VXNlcjE=\",\n      \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": false\n    },\n    \"private\": false,\n    \"html_url\": \"https://github.com/octocat/Hello-World\",\n    \"description\": \"This your first repo!\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n    \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n    \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n    \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n    \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n  },\n  \"machine\": {\n    \"name\": \"standardLinux\",\n    \"display_name\": \"4 cores, 8 GB RAM, 64 GB storage\",\n    \"operating_system\": \"linux\",\n    \"storage_in_bytes\": 68719476736,\n    \"memory_in_bytes\": 8589934592,\n    \"cpus\": 4\n  },\n  \"prebuild\": false,\n  \"created_at\": \"2021-10-14T00:53:30-06:00\",\n  \"updated_at\": \"2021-10-14T00:53:32-06:00\",\n  \"last_used_at\": \"2021-10-14T00:53:30-06:00\",\n  \"state\": \"Available\",\n  \"url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q\",\n  \"git_status\": {\n    \"ahead\": 0,\n    \"behind\": 0,\n    \"has_unpushed_changes\": false,\n    \"has_uncommitted_changes\": false,\n    \"ref\": \"main\"\n  },\n  \"location\": \"WestUs2\",\n  \"idle_timeout_minutes\": 60,\n  \"web_url\": \"https://monalisa-octocat-hello-world-g4wpq6h95q.github.dev\",\n  \"machines_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/machines\",\n  \"start_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/start\",\n  \"stop_url\": \"https://api.github.com/user/codespaces/monalisa-octocat-hello-world-g4wpq6h95q/stop\",\n  \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls/1\",\n  \"recent_folders\": []\n}\n
    " }, { "httpStatusCode": "401", diff --git a/lib/rest/static/dereferenced/api.github.com.deref.json b/lib/rest/static/dereferenced/api.github.com.deref.json index b91cbe64be..cafe1a14b4 100644 --- a/lib/rest/static/dereferenced/api.github.com.deref.json +++ b/lib/rest/static/dereferenced/api.github.com.deref.json @@ -183412,6 +183412,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -183544,6 +183550,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -183689,6 +183696,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -183832,6 +183840,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -183975,6 +183984,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -186157,6 +186167,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -186289,6 +186305,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -186428,6 +186445,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -188432,6 +188450,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -188564,6 +188588,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -188703,6 +188728,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -319858,6 +319884,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -319990,6 +320022,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -320129,6 +320162,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -322133,6 +322167,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -322265,6 +322305,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -322404,6 +322445,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -386340,6 +386382,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -386472,6 +386520,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -386617,6 +386666,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -386760,6 +386810,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -386903,6 +386954,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -389119,6 +389171,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -389251,6 +389309,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -389390,6 +389449,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -391394,6 +391454,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -391526,6 +391592,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -391665,6 +391732,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -397046,6 +397114,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -397178,6 +397252,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -397317,6 +397392,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -399478,6 +399554,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -399610,6 +399692,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -399749,6 +399832,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -402244,6 +402328,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -402376,6 +402466,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -402515,6 +402606,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", @@ -404771,6 +404863,12 @@ ], "nullable": true }, + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -404903,6 +405001,7 @@ "billable_owner", "repository", "machine", + "prebuild", "created_at", "updated_at", "last_used_at", @@ -405042,6 +405141,7 @@ "memory_in_bytes": 8589934592, "cpus": 4 }, + "prebuild": false, "created_at": "2021-10-14T00:53:30-06:00", "updated_at": "2021-10-14T00:53:32-06:00", "last_used_at": "2021-10-14T00:53:30-06:00", diff --git a/lib/search/config.js b/lib/search/config.js index da32abf1d9..ce43059f8c 100644 --- a/lib/search/config.js +++ b/lib/search/config.js @@ -1,10 +1,9 @@ -export const maxRecordLength = 8000 -export const maxContentLength = 5000 export const namePrefix = 'github-docs' +export const maxContentLength = 5000 export default { - // records must be truncated to avoid going over 10K limit - maxRecordLength, + // to reduce the size of our enormous search index, we limit the + // content and record size for translated articles maxContentLength, namePrefix, } diff --git a/lib/search/indexes/github-docs-3.0-cn-records.json.br b/lib/search/indexes/github-docs-3.0-cn-records.json.br index 55e0d705d9..9c84327a66 100644 --- a/lib/search/indexes/github-docs-3.0-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.0-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ed771a499cb19e792f7527dfa479303895ceba08ec04ab36db55bcd88a8bb612 -size 540706 +oid sha256:1fcb21f35dd7f43c5f411198ed50617d4294500d49dc05e0c8afad5b74953b01 +size 617819 diff --git a/lib/search/indexes/github-docs-3.0-cn.json.br b/lib/search/indexes/github-docs-3.0-cn.json.br index 9f43d0c368..3bc9fbe149 100644 --- a/lib/search/indexes/github-docs-3.0-cn.json.br +++ b/lib/search/indexes/github-docs-3.0-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:26573f7ae78bab3837f2867d3d9c259a76541f566b88827a94e2efb1f19f9fc8 -size 930271 +oid sha256:941a564c912cc72ea47456688fc123a10cc8f37f6d43aa0472cfec83154fa93a +size 1058884 diff --git a/lib/search/indexes/github-docs-3.0-en-records.json.br b/lib/search/indexes/github-docs-3.0-en-records.json.br index 9b41ba959e..3f4f0aa5f7 100644 --- a/lib/search/indexes/github-docs-3.0-en-records.json.br +++ b/lib/search/indexes/github-docs-3.0-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ff909020be97f8186de176ee270284792c0e5ae6a012084b1a28d7cf2a55e144 -size 471017 +oid sha256:ce851e4db3e79a381f9aae9e1ceff4771aaf6fb48fdd9791fa06b250cbe77b0b +size 940123 diff --git a/lib/search/indexes/github-docs-3.0-en.json.br b/lib/search/indexes/github-docs-3.0-en.json.br index 0363d6ec6a..e3ae2f5f88 100644 --- a/lib/search/indexes/github-docs-3.0-en.json.br +++ b/lib/search/indexes/github-docs-3.0-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:77c357397d91408b939394909b6443bd375b556b4681a5146bc143da3b4c98e3 -size 1846190 +oid sha256:d628d4bd199dac442d9973e8bea0231b507b087686917e814151873b90d66bb5 +size 3842885 diff --git a/lib/search/indexes/github-docs-3.0-es-records.json.br b/lib/search/indexes/github-docs-3.0-es-records.json.br index 0f07ff445a..c67dc1b40e 100644 --- a/lib/search/indexes/github-docs-3.0-es-records.json.br +++ b/lib/search/indexes/github-docs-3.0-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f8d6bcd58eb2224465d3714d34b4d717870b0a281cb3ba3d1e8a7635c88985e -size 472954 +oid sha256:6484b5e78bca6f43c3b4bb8d58b3b196a38b8e34bd6f94e401ffbb57fdbc5041 +size 546387 diff --git a/lib/search/indexes/github-docs-3.0-es.json.br b/lib/search/indexes/github-docs-3.0-es.json.br index b665ecdc1b..ec7b45c6a7 100644 --- a/lib/search/indexes/github-docs-3.0-es.json.br +++ b/lib/search/indexes/github-docs-3.0-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d3c961dfb10b26802925baa04d5fff4c339de1d6eea0cc222889d7a204d84f9b -size 1943175 +oid sha256:02c286c0a856814381f8a0921ed599ceade9e74fd2302e5ecf32d0aaafa23e47 +size 2168548 diff --git a/lib/search/indexes/github-docs-3.0-ja-records.json.br b/lib/search/indexes/github-docs-3.0-ja-records.json.br index 99fd1fc053..74c57375e1 100644 --- a/lib/search/indexes/github-docs-3.0-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.0-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eda47addc3f7a71bcd705a113728cb840166c7bb76214090771b0fbefe16481b -size 561630 +oid sha256:dd65c3fb103f052a615d5df677f29f2d247abdb7c44e896387dbf76b93595994 +size 639020 diff --git a/lib/search/indexes/github-docs-3.0-ja.json.br b/lib/search/indexes/github-docs-3.0-ja.json.br index 63cd0ed671..fac2b452b7 100644 --- a/lib/search/indexes/github-docs-3.0-ja.json.br +++ b/lib/search/indexes/github-docs-3.0-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1482acc52d886a47bb1b55dbc17b273a7f214852f84e90eecf0922ac0914f5be -size 2995949 +oid sha256:039b8561d17af1a9529dd2f2f5c924ce39cfd3cdba0672e74a3e4f6ef89f4791 +size 3285154 diff --git a/lib/search/indexes/github-docs-3.0-pt-records.json.br b/lib/search/indexes/github-docs-3.0-pt-records.json.br index dccb08bf85..201e3037da 100644 --- a/lib/search/indexes/github-docs-3.0-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.0-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6157cbf7a00127aac99641e2d48d769f29a4d0e23d97fa04256fad5133f5c7bb -size 470575 +oid sha256:85923810bb79eaa84d849b5fa3d4236906ac437b5adde7bea26f3a19f31face6 +size 544343 diff --git a/lib/search/indexes/github-docs-3.0-pt.json.br b/lib/search/indexes/github-docs-3.0-pt.json.br index 7fc6310b4e..90cd523ba2 100644 --- a/lib/search/indexes/github-docs-3.0-pt.json.br +++ b/lib/search/indexes/github-docs-3.0-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:736ace309384c7c80deb350aee0c8cb1b9c6e5881bb9461e8dc3fb27cec10fd2 -size 1962359 +oid sha256:13fef927fc676fd87e9088e8d32ef68b5a822adb36b4454badbcc3f93a12becb +size 2191761 diff --git a/lib/search/indexes/github-docs-3.1-cn-records.json.br b/lib/search/indexes/github-docs-3.1-cn-records.json.br index cb136bcaff..25ee9d6d13 100644 --- a/lib/search/indexes/github-docs-3.1-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.1-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4ada49e4db010aae977ca6b0fe69148e5c9f167cef5c79d7838aa9329112937f -size 554409 +oid sha256:a6297ae6a3e645eac04ec26df2e5218405d44a68c7958111db24b1fcb1e24a08 +size 632017 diff --git a/lib/search/indexes/github-docs-3.1-cn.json.br b/lib/search/indexes/github-docs-3.1-cn.json.br index b2f1a5d249..a073e15ce7 100644 --- a/lib/search/indexes/github-docs-3.1-cn.json.br +++ b/lib/search/indexes/github-docs-3.1-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:03b4b925fcaebea1e4f8b1c8d5a8e0f6190b483ebdc06a673bba8c45886435c3 -size 959316 +oid sha256:85221a0b1d2b22322089b1ef08170efd6a26a85f997ca4ec629b082e044fffa0 +size 1089761 diff --git a/lib/search/indexes/github-docs-3.1-en-records.json.br b/lib/search/indexes/github-docs-3.1-en-records.json.br index 730243f63c..eb985e6663 100644 --- a/lib/search/indexes/github-docs-3.1-en-records.json.br +++ b/lib/search/indexes/github-docs-3.1-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b1c629d966fc0c1b35ae2369ece1e5459d29c1e5c7a7e1e6752a40a17005325 -size 482004 +oid sha256:9daf1538bbaf046921409b2f36aa28b8254fa3cc795be94ff92c1acbb2fef715 +size 964212 diff --git a/lib/search/indexes/github-docs-3.1-en.json.br b/lib/search/indexes/github-docs-3.1-en.json.br index 7c48d9fa88..db9acaccc0 100644 --- a/lib/search/indexes/github-docs-3.1-en.json.br +++ b/lib/search/indexes/github-docs-3.1-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8bd513dc7112c86452f84c54d212dbf469512f4def9449ee8e099df22f0f027b -size 1890340 +oid sha256:50801f1f946c024bbb442dfd3ba14c249562777066f31c6819693f89e350b527 +size 3933998 diff --git a/lib/search/indexes/github-docs-3.1-es-records.json.br b/lib/search/indexes/github-docs-3.1-es-records.json.br index 9926502cec..50d0007c64 100644 --- a/lib/search/indexes/github-docs-3.1-es-records.json.br +++ b/lib/search/indexes/github-docs-3.1-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:50c005f2979e4044c723bf927fab8624bb838dbc25e536206291d5320ee36dee -size 483436 +oid sha256:c77161a7c0f595a4442cd58df58d3e057548ecea8016270b2fba6f67a80e0185 +size 557862 diff --git a/lib/search/indexes/github-docs-3.1-es.json.br b/lib/search/indexes/github-docs-3.1-es.json.br index 7bd5a9d704..31412e9865 100644 --- a/lib/search/indexes/github-docs-3.1-es.json.br +++ b/lib/search/indexes/github-docs-3.1-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:27d2727c77006f6ee5a38ce757bf505056f88de4ced5177e7a5af2c98752f63d -size 1988369 +oid sha256:49bf544e7c5f73164516a85cee606a4b0a27a6df7f3d94b7c235e024e475a450 +size 2219035 diff --git a/lib/search/indexes/github-docs-3.1-ja-records.json.br b/lib/search/indexes/github-docs-3.1-ja-records.json.br index 95e646a238..474cc76d4d 100644 --- a/lib/search/indexes/github-docs-3.1-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.1-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2b4f7455fe523ac6b515cfc356cd50604b831175bfc2ed96262f66f699a272f4 -size 574687 +oid sha256:6f2e7d6700f1279a3c70d2cb4576cfbaee1d683bc4d1f07393075dfcaab786af +size 653304 diff --git a/lib/search/indexes/github-docs-3.1-ja.json.br b/lib/search/indexes/github-docs-3.1-ja.json.br index a1a241ea58..a5a774cf92 100644 --- a/lib/search/indexes/github-docs-3.1-ja.json.br +++ b/lib/search/indexes/github-docs-3.1-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cddd6e20bb3223d5fc6bd1b1c967b1949d4eb81d2b36358e890e5342588a7c27 -size 3074880 +oid sha256:b1fba394d8fa798f8be15bbd984bfc34c065250b2803223b0de03df1df8162cb +size 3364411 diff --git a/lib/search/indexes/github-docs-3.1-pt-records.json.br b/lib/search/indexes/github-docs-3.1-pt-records.json.br index 520ca733d0..fda36316d6 100644 --- a/lib/search/indexes/github-docs-3.1-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.1-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b192dfd1d483df4414bbdadfa52a7ebb8dfc461248522d33777f4808e8ef5d3a -size 481189 +oid sha256:6589c11aa919b7ff78117fe94cc62b129f6b9f37a6d6edde318ec94ec10868cb +size 555525 diff --git a/lib/search/indexes/github-docs-3.1-pt.json.br b/lib/search/indexes/github-docs-3.1-pt.json.br index 70aa73052d..5287cd902d 100644 --- a/lib/search/indexes/github-docs-3.1-pt.json.br +++ b/lib/search/indexes/github-docs-3.1-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:72975ca8b70a8533c1e2b34838526fbca6e9d9e7e0423e18172da67a8f336e3e -size 2009612 +oid sha256:60d2f676b053768ace072781dbc5c5a6c95b10b4bfcf0a22c1fe052f7000dfb5 +size 2240651 diff --git a/lib/search/indexes/github-docs-3.2-cn-records.json.br b/lib/search/indexes/github-docs-3.2-cn-records.json.br index 6fa247eec7..71a2b1d599 100644 --- a/lib/search/indexes/github-docs-3.2-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.2-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:33905896aef5e661097e418ce4ed007f765a916585042d6806b16bfad290482f -size 565506 +oid sha256:febccacca47064dfa42330c51bfc4e941458f6a2d5557d8e06fe1eb1d11b9f51 +size 643799 diff --git a/lib/search/indexes/github-docs-3.2-cn.json.br b/lib/search/indexes/github-docs-3.2-cn.json.br index fdaa3c366b..d0ebd6d0f8 100644 --- a/lib/search/indexes/github-docs-3.2-cn.json.br +++ b/lib/search/indexes/github-docs-3.2-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b216768df277fd9e7cbb633f09c37f9e03d797cf14601abf960b88893320e17 -size 978690 +oid sha256:02acd1221f3a44b8cf20d97cdd1252c1c049f8af89769e83629600c0f6c11f6a +size 1112405 diff --git a/lib/search/indexes/github-docs-3.2-en-records.json.br b/lib/search/indexes/github-docs-3.2-en-records.json.br index 872f11b84a..202af42410 100644 --- a/lib/search/indexes/github-docs-3.2-en-records.json.br +++ b/lib/search/indexes/github-docs-3.2-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:329ad7aef97a2330525bbd8feb7b43d8c0cd5c3fecb41af4f37e874a0fcbb956 -size 489857 +oid sha256:85d7cae4a0ab89ea616ac65f980c08899123909a0c4e796ba5b853ae4f144ef3 +size 995313 diff --git a/lib/search/indexes/github-docs-3.2-en.json.br b/lib/search/indexes/github-docs-3.2-en.json.br index 446d304f20..5ac2116eb0 100644 --- a/lib/search/indexes/github-docs-3.2-en.json.br +++ b/lib/search/indexes/github-docs-3.2-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45ffb01e99655cdc7a4603081d512cbf70f2d446c12aa42726707a184caaaddc -size 1922271 +oid sha256:915d4ac12ed39ee8d805bc40ac2d0e3829106d44ab37da05b6b4b828d33fc3f1 +size 4053925 diff --git a/lib/search/indexes/github-docs-3.2-es-records.json.br b/lib/search/indexes/github-docs-3.2-es-records.json.br index eb0147e464..41429df3d1 100644 --- a/lib/search/indexes/github-docs-3.2-es-records.json.br +++ b/lib/search/indexes/github-docs-3.2-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:186af3d33086e659c8276b836bda4a319ef8d97c28ce9eec9cf717e7b7e3ef0b -size 491503 +oid sha256:33195effabb7bf85c30be1bd0070f3891752919a19b507ea882ce4ec412bed54 +size 567017 diff --git a/lib/search/indexes/github-docs-3.2-es.json.br b/lib/search/indexes/github-docs-3.2-es.json.br index 8d91478aa3..7837d3e9c1 100644 --- a/lib/search/indexes/github-docs-3.2-es.json.br +++ b/lib/search/indexes/github-docs-3.2-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:36eaaab4602f9d5b5845155c228ab473b367fd9298fa3243cc9800506ed6a47e -size 2020655 +oid sha256:933f00590181e00f16f306999e30a121c27fdd5f1cf67acdb51a1ec692e1de8c +size 2256867 diff --git a/lib/search/indexes/github-docs-3.2-ja-records.json.br b/lib/search/indexes/github-docs-3.2-ja-records.json.br index bb8f6e96da..61ab39f269 100644 --- a/lib/search/indexes/github-docs-3.2-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.2-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:48617865cf258547af237d2228739798023a57383d782257ca509380fe982c8e -size 584712 +oid sha256:a3f9f2993edf1981087e9674bcbafbe2afa86e9bc630f1a36d425544e8338579 +size 664566 diff --git a/lib/search/indexes/github-docs-3.2-ja.json.br b/lib/search/indexes/github-docs-3.2-ja.json.br index fa7b8e32f0..73a745438d 100644 --- a/lib/search/indexes/github-docs-3.2-ja.json.br +++ b/lib/search/indexes/github-docs-3.2-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:11a9bdcf88f8403e5c99e7945bbb92b2ca29cbd322a01304c88a4eda7f7e08bf -size 3129078 +oid sha256:5921eaeee91b77eb9f4c97d318c60430248e8a1985a62ab4f0e13409ccb5300f +size 3427114 diff --git a/lib/search/indexes/github-docs-3.2-pt-records.json.br b/lib/search/indexes/github-docs-3.2-pt-records.json.br index 453c634ae1..ea447adf65 100644 --- a/lib/search/indexes/github-docs-3.2-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.2-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4236952acfc922a2ac2e34a463f424fefbb0b3cc24266ac081f9767f84c44bcd -size 489739 +oid sha256:c54529f2258bfd2aa1119c5ea5d521dba094f84e7580ad70da8ff2cb35ab27e8 +size 564757 diff --git a/lib/search/indexes/github-docs-3.2-pt.json.br b/lib/search/indexes/github-docs-3.2-pt.json.br index 55f46a0646..c417c898aa 100644 --- a/lib/search/indexes/github-docs-3.2-pt.json.br +++ b/lib/search/indexes/github-docs-3.2-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cc71f693027f0e222872a7835533efe051b02d52c18be6c53b8dee19a55c4bc7 -size 2043249 +oid sha256:78ef6b4b389ab4edca44984e8f186967231c81e963bf5c3c9abdfeb726849c36 +size 2277190 diff --git a/lib/search/indexes/github-docs-3.3-cn-records.json.br b/lib/search/indexes/github-docs-3.3-cn-records.json.br index 1ef50e3c9d..ed7ca2e91a 100644 --- a/lib/search/indexes/github-docs-3.3-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.3-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3cf5cf2a213c5e6f5a8449ed568bc1ef7f0460a33f3714569bf24c55a86ab645 -size 568277 +oid sha256:d24c45d04ac4768b453232220f5984df505f5de3cc923b65fc140a198e96c467 +size 646529 diff --git a/lib/search/indexes/github-docs-3.3-cn.json.br b/lib/search/indexes/github-docs-3.3-cn.json.br index b5a6c4df17..ee89735134 100644 --- a/lib/search/indexes/github-docs-3.3-cn.json.br +++ b/lib/search/indexes/github-docs-3.3-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1069b90f341faf2e3ebf3d6342cd0dd5db8553288d8b607e57c337d0fdc04791 -size 988357 +oid sha256:802228637a36070084123d385b81aa3dfb0721ea1fb9ea6d13e026eea961ccd8 +size 1124483 diff --git a/lib/search/indexes/github-docs-3.3-en-records.json.br b/lib/search/indexes/github-docs-3.3-en-records.json.br index a1e807f232..da1fb6b95f 100644 --- a/lib/search/indexes/github-docs-3.3-en-records.json.br +++ b/lib/search/indexes/github-docs-3.3-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e89eb104513830c0bb29f908ac766782f82127e8f6959c187cac880392348dba -size 505923 +oid sha256:d6296cb41b9a712ce1226ded3c34f1ad7d370833a6247efd1a8cee3c44f46b23 +size 1027859 diff --git a/lib/search/indexes/github-docs-3.3-en.json.br b/lib/search/indexes/github-docs-3.3-en.json.br index 00ef9143ed..f8d35805c1 100644 --- a/lib/search/indexes/github-docs-3.3-en.json.br +++ b/lib/search/indexes/github-docs-3.3-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:14d2745dd8c7eb9e2f3d85d6577010b9651aa6437a5abc56c5743600a95d4cec -size 1984784 +oid sha256:9ce05520d9304d917ba721991a50be344802dc4553b6feae2b2b702d58243817 +size 4148399 diff --git a/lib/search/indexes/github-docs-3.3-es-records.json.br b/lib/search/indexes/github-docs-3.3-es-records.json.br index 7dd0267cad..41a637f832 100644 --- a/lib/search/indexes/github-docs-3.3-es-records.json.br +++ b/lib/search/indexes/github-docs-3.3-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:453074fca6e0d2dda82c9b3d909100e684b5c95cd6b42456b29d3f44b6333c9b -size 493379 +oid sha256:00ec3b51e522ec66d47686af8b62622de4e68d8e03cff94a6ecc0934e93845cf +size 569906 diff --git a/lib/search/indexes/github-docs-3.3-es.json.br b/lib/search/indexes/github-docs-3.3-es.json.br index 5610ac3ca9..2ca750bc2f 100644 --- a/lib/search/indexes/github-docs-3.3-es.json.br +++ b/lib/search/indexes/github-docs-3.3-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7750be504ce83ef69abf7da53c558d1bd7af7830dfe282846cbb2e43762faa23 -size 2031505 +oid sha256:06a638410ebeae217c1a663454071c4fbdbd7be74c3e7c9cb37f5f226459c513 +size 2269007 diff --git a/lib/search/indexes/github-docs-3.3-ja-records.json.br b/lib/search/indexes/github-docs-3.3-ja-records.json.br index 7c19ac7d3e..e262ce86f0 100644 --- a/lib/search/indexes/github-docs-3.3-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.3-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8111ea7768c4949ccaf0f9c4955b62675f644197c475211d18e917ee652a49e8 -size 586991 +oid sha256:f2087f7091dd0e5668d4ce76bb1d8380001dda59ab933ad18106813a4824b0d5 +size 667310 diff --git a/lib/search/indexes/github-docs-3.3-ja.json.br b/lib/search/indexes/github-docs-3.3-ja.json.br index 6d5d422bf1..2401d58d5b 100644 --- a/lib/search/indexes/github-docs-3.3-ja.json.br +++ b/lib/search/indexes/github-docs-3.3-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b46d621634b0a58358e47d277f183d76013872cfe7e726cbee44df020f722ac -size 3142123 +oid sha256:13bb4868e3e68b61c4d8e8ff3056a85823d1637578c0a3a4b258be8db2d57a95 +size 3442681 diff --git a/lib/search/indexes/github-docs-3.3-pt-records.json.br b/lib/search/indexes/github-docs-3.3-pt-records.json.br index 7d5fcdaf0d..269f242ba6 100644 --- a/lib/search/indexes/github-docs-3.3-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.3-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0af3fdaaf4d91462270189fd238377e7adf1126bba64135ef142cef492f157d5 -size 491506 +oid sha256:6340b086eab4445e0a44ed2c68acc8f1c0ab2fb890cbd487d0574d0c46215087 +size 567470 diff --git a/lib/search/indexes/github-docs-3.3-pt.json.br b/lib/search/indexes/github-docs-3.3-pt.json.br index a2e84f8f2a..7933747d6f 100644 --- a/lib/search/indexes/github-docs-3.3-pt.json.br +++ b/lib/search/indexes/github-docs-3.3-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:59d40f0ee303043cf115f8a8270968ef19d224f8aabb47dbd4b08028aa094e6a -size 2051653 +oid sha256:e06ea7e571abddd906528ad148c56c66657346b5b3c6f3f40ea8f81afe522f28 +size 2288674 diff --git a/lib/search/indexes/github-docs-dotcom-cn-records.json.br b/lib/search/indexes/github-docs-dotcom-cn-records.json.br index 41e49946a4..e342cac193 100644 --- a/lib/search/indexes/github-docs-dotcom-cn-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e6617587c4d65818e978b0797dbda344e7b739b735e0f3968858aea46eec05c2 -size 771181 +oid sha256:324201cb2e64f0b214adc2dfab5e9043579b37b2992875ec780f58d985f8bebd +size 871432 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index e6b5d15e5b..699a7b3061 100644 --- a/lib/search/indexes/github-docs-dotcom-cn.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:27f31e017ae6d357bbd8c9aa5d7f77063285254d1f24bfa7d2cf27c8b1e5c543 -size 1211416 +oid sha256:bd1de515621f11031eb5ec6d53ca91cbfd1109b9e4b83c169517f46ee24951a1 +size 1363646 diff --git a/lib/search/indexes/github-docs-dotcom-en-records.json.br b/lib/search/indexes/github-docs-dotcom-en-records.json.br index 2c2e4756f8..c01b47e24f 100644 --- a/lib/search/indexes/github-docs-dotcom-en-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f0d776d1223eeb255fc30a19488fa011881112e1a60134b82f8b225f5ba59e14 -size 652879 +oid sha256:b8c4827214d6020d4a6740a688562f63c575603ad53ebfeec3d55f9b906f8c5e +size 1318764 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index 26320412b9..5439aff0e7 100644 --- a/lib/search/indexes/github-docs-dotcom-en.json.br +++ b/lib/search/indexes/github-docs-dotcom-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9726b2eb75fbbc8943702817233c77766c827098cea4fa5cbe57823d01322c1b -size 2455956 +oid sha256:a457ef5abc4e3434d212ab78ab22f1ea5bfda183f224d10a55dd45d0acdaa31f +size 5057782 diff --git a/lib/search/indexes/github-docs-dotcom-es-records.json.br b/lib/search/indexes/github-docs-dotcom-es-records.json.br index 97f17c354b..59da1bcc81 100644 --- a/lib/search/indexes/github-docs-dotcom-es-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:89bfc4c86f392a196b1189cfb6c6e2bb48b99a1a8e1d488e2da011b81e84af28 -size 663599 +oid sha256:a5e600e2e0270b4b39953c0b929f8cdfac4eaa97a549187e42cf09fe7538d074 +size 756138 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index 31f2861fff..f93f342153 100644 --- a/lib/search/indexes/github-docs-dotcom-es.json.br +++ b/lib/search/indexes/github-docs-dotcom-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4d822256f4ed0e13ed3579c4aa5ed102f349890657a61f6184e64c24a379282a -size 2633030 +oid sha256:9da5ff6e2414f424014f67bed28aa72c4e4b0922fa440be7c6493f2bf4021616 +size 2897008 diff --git a/lib/search/indexes/github-docs-dotcom-ja-records.json.br b/lib/search/indexes/github-docs-dotcom-ja-records.json.br index de205a1b1e..c5bd0f6366 100644 --- a/lib/search/indexes/github-docs-dotcom-ja-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4013cc02d27e242919068aaa0929dea2311dd85ae4873c1a2bd7bea1dd7df58b -size 789689 +oid sha256:810614a0e0529cc4fd769cf9fd0a9bde879c7757567fc7d2985435c329797c58 +size 891823 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index 86a285d936..c27747da40 100644 --- a/lib/search/indexes/github-docs-dotcom-ja.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53acb7912441f2b5522f198cc2fba652cae7666cc768f55f863aac3f8a75ba1b -size 4091883 +oid sha256:16b5c763342d280087e5b3986a49a7f9d44d7d8d2c5e810cdcb1422310cfd9a5 +size 4462738 diff --git a/lib/search/indexes/github-docs-dotcom-pt-records.json.br b/lib/search/indexes/github-docs-dotcom-pt-records.json.br index 3c91da680c..51c8619c18 100644 --- a/lib/search/indexes/github-docs-dotcom-pt-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8a6ecb8e5e1b14d55bed2cd401c2d15b61bf3a36aa82e74e1ef3c7ac0740fc41 -size 664295 +oid sha256:1c83647cc6d901767783990a1b4c955ee8f71ac3adfef7c5f9eb6533d2b8f015 +size 756997 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index abdc772e5d..ac30af1b0c 100644 --- a/lib/search/indexes/github-docs-dotcom-pt.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1e286396a96ff47e504d32ccbd3b5721017db725b1fc5bd7c7d0b6a4801c46de -size 2670535 +oid sha256:9bbee3de96d56a7552709814e40c52da8afd084fcaffc217faec8235581a5f3b +size 2943808 diff --git a/lib/search/indexes/github-docs-ghae-cn-records.json.br b/lib/search/indexes/github-docs-ghae-cn-records.json.br index a67e22587f..4a09fe9baa 100644 --- a/lib/search/indexes/github-docs-ghae-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghae-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6cc5a208dd98bfddf4096797081abc0531d9fc5184c234eef638541b3bdb7ea1 -size 429361 +oid sha256:3e637a0d2c4265393284fe9bd6e11a48652d745f04c13468731e31e62febdb34 +size 494590 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index a2d94659bc..39b517283d 100644 --- a/lib/search/indexes/github-docs-ghae-cn.json.br +++ b/lib/search/indexes/github-docs-ghae-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fa59e2a64141c688a102a43f69b22a9517a8e0812bbf88c407f2e4334b5de9c3 -size 713062 +oid sha256:8fe8a3042aedd7ff01b8b4ed66586cfdd5919866a4cfd6f172f46dfd7c55c7d7 +size 829814 diff --git a/lib/search/indexes/github-docs-ghae-en-records.json.br b/lib/search/indexes/github-docs-ghae-en-records.json.br index b2275602e0..28b8f801f9 100644 --- a/lib/search/indexes/github-docs-ghae-en-records.json.br +++ b/lib/search/indexes/github-docs-ghae-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:16f9c5f91e1eb659876f6b9dea76ff0ffa3103c5abdaa066a888bc4bd54de7a3 -size 378699 +oid sha256:706fb0a8d3957aadbafa68c40e2c39d1e6c4fe88476cbc2b7e24597e2ed5b5fe +size 794578 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index 291770ac8a..a72841078f 100644 --- a/lib/search/indexes/github-docs-ghae-en.json.br +++ b/lib/search/indexes/github-docs-ghae-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d3bb681035e37d9683eba45e0eec70f388e729b4f902d53c714685d85a205695 -size 1418842 +oid sha256:fadc4a9a0d12c171161af6671caf701b3e6354943cb663db8a7ca31f1f0639a9 +size 3195008 diff --git a/lib/search/indexes/github-docs-ghae-es-records.json.br b/lib/search/indexes/github-docs-ghae-es-records.json.br index e5f099b012..4157973e04 100644 --- a/lib/search/indexes/github-docs-ghae-es-records.json.br +++ b/lib/search/indexes/github-docs-ghae-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b9801021a9abeb52c0468a234aa4a4bd8aee46de4323866a4d3f153c555a8ddb -size 375820 +oid sha256:36c060441d1b71d6b239044cec990a97870befef21929c5f2704b291450b9a30 +size 436007 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index 3e7323b56d..866ecabe10 100644 --- a/lib/search/indexes/github-docs-ghae-es.json.br +++ b/lib/search/indexes/github-docs-ghae-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:acd1e5993549a87b6e7f11c8b0dd8a822f0e7860be8beaa078a0f898c7a51951 -size 1483751 +oid sha256:b7c2ac69ce981b75b6e9c9d803a6ad30cf126c6b55a597deec428994cbacb547 +size 1663746 diff --git a/lib/search/indexes/github-docs-ghae-ja-records.json.br b/lib/search/indexes/github-docs-ghae-ja-records.json.br index 97dd2d8d9e..ad088fd2f0 100644 --- a/lib/search/indexes/github-docs-ghae-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghae-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bce4321514fa405bd0e5786077066d7b0436300eebe387601160da23f36afcb9 -size 445243 +oid sha256:5ef520ce22e3492aa4961f5487c1f03312b16abac065bc32c3fd93343056037f +size 510173 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index 50179e650e..d6b193c20a 100644 --- a/lib/search/indexes/github-docs-ghae-ja.json.br +++ b/lib/search/indexes/github-docs-ghae-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83680f7a8d75b54d75d3046905c64929c0a057143f2cac9b41c743b0f553d200 -size 2278248 +oid sha256:3304530e953f6b1b8d53f643560562b4b1672c47743f9cc86405e968b1c0a1f7 +size 2523743 diff --git a/lib/search/indexes/github-docs-ghae-pt-records.json.br b/lib/search/indexes/github-docs-ghae-pt-records.json.br index 2b51edb6c0..06e65bca52 100644 --- a/lib/search/indexes/github-docs-ghae-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghae-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:934331c7975d2fa820008bb77b0fab36971ecffd499a9608c5bf4f73bb184ca5 -size 374187 +oid sha256:5e86cb5552ae0efbd506c5e262a25f2d0690f029d9e840f4901ba2309b9d337f +size 435237 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index 3625989645..4de7766c3f 100644 --- a/lib/search/indexes/github-docs-ghae-pt.json.br +++ b/lib/search/indexes/github-docs-ghae-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:179623dccbeab72e81b6585877ad9f74972d87d03985a928c275cda4412afdf3 -size 1498185 +oid sha256:ac8aecb2d5eb6257d8fb646c6a33938a92cea9eefa76ca332e15526a4045d511 +size 1681540 diff --git a/lib/search/indexes/github-docs-ghec-cn-records.json.br b/lib/search/indexes/github-docs-ghec-cn-records.json.br index f03d7f96f9..165d13dc76 100644 --- a/lib/search/indexes/github-docs-ghec-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghec-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6dd5695a292d22b759ab64d1a605365c84bb3479f2e23f8aa9f09e157603d890 -size 674447 +oid sha256:eccfbe3df1d699755d4c17a4a543feb3bf38839abd74e9b8d09f6beca01d66be +size 766413 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index 76de5c30fa..2c94be2bce 100644 --- a/lib/search/indexes/github-docs-ghec-cn.json.br +++ b/lib/search/indexes/github-docs-ghec-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c13bbc4b4dc4aac35c13608d17f3442666f412c2c67ef9a4d26841acfd5d548 -size 1204148 +oid sha256:03547c87313fca89ac737e8fa8d4ceb6ccad4419e02915249868570e2aa78c83 +size 1353973 diff --git a/lib/search/indexes/github-docs-ghec-en-records.json.br b/lib/search/indexes/github-docs-ghec-en-records.json.br index 1a731bb167..ade5350a26 100644 --- a/lib/search/indexes/github-docs-ghec-en-records.json.br +++ b/lib/search/indexes/github-docs-ghec-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2c369fef907406f3404470ca25a00ab6d250ff38b3f9fded4be9743ac1ab8f20 -size 593178 +oid sha256:cffe0c754f2e8fc6cf1123cac13e67ecafe3c02790bfb3ccd9b0dc17da472729 +size 1167965 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index 3b673c8d8b..dde761e249 100644 --- a/lib/search/indexes/github-docs-ghec-en.json.br +++ b/lib/search/indexes/github-docs-ghec-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ee51da35058418c7ee0c3e71a84332c64b3b5af0c368be032b96ba0f11c35f06 -size 2336720 +oid sha256:819758457f4d1f5906ed145a8baea65ae111fa95d81ba23ae22b54e2b718dfaf +size 4713054 diff --git a/lib/search/indexes/github-docs-ghec-es-records.json.br b/lib/search/indexes/github-docs-ghec-es-records.json.br index 8a47d03440..db5ff4e6fb 100644 --- a/lib/search/indexes/github-docs-ghec-es-records.json.br +++ b/lib/search/indexes/github-docs-ghec-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:206c601f62dd671e6a20690063ab40a4579df7926fbea615d1d29b64affd1000 -size 603027 +oid sha256:721099525cb79cb5ed640b366c7212e70c91ec2446cce35ab04eee8f724ba032 +size 690032 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index 811c3973e9..afcbd0f2c5 100644 --- a/lib/search/indexes/github-docs-ghec-es.json.br +++ b/lib/search/indexes/github-docs-ghec-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2b767b1e1dd595966e312524eb10109e8feb68dfef69e1803659c0d99526dbef -size 2521974 +oid sha256:fdee5843ab57065989bd112edadbd7bd5e430bc98cacd6a21fbd0f0bb92f6955 +size 2776674 diff --git a/lib/search/indexes/github-docs-ghec-ja-records.json.br b/lib/search/indexes/github-docs-ghec-ja-records.json.br index 50688bf3d9..0a3f8d18f7 100644 --- a/lib/search/indexes/github-docs-ghec-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghec-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e8fd56d827db14bebea6e6b1e46f46d89d591c5e8eb59229cd7af77fff0147da -size 697845 +oid sha256:209d65a5d9d3680b4045100ca7cc76aee1d92caae19d8d5b9a895b1b7e0a1a71 +size 792109 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index e29a98a265..bc460701cf 100644 --- a/lib/search/indexes/github-docs-ghec-ja.json.br +++ b/lib/search/indexes/github-docs-ghec-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:843472da70903452d93a4369be8c5d3f73674f7a35afd64d62e0b093216faabd -size 3815518 +oid sha256:1b12a653938ee628c266ac310a2ef8a5367745c9f614ed308ef344be904c386b +size 4158132 diff --git a/lib/search/indexes/github-docs-ghec-pt-records.json.br b/lib/search/indexes/github-docs-ghec-pt-records.json.br index a5791a00e5..644e8a2696 100644 --- a/lib/search/indexes/github-docs-ghec-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghec-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7aa54d01ba628496fa6a7eefc19cd2d29c512f5b4cbd69cc54f8b5a6d4fb49fc -size 601748 +oid sha256:f0ada315082d9d6ab64260438fc9df308d2078343a53bcbcf7cc0c142f9f7223 +size 688788 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index f91a7c210a..17fc42244f 100644 --- a/lib/search/indexes/github-docs-ghec-pt.json.br +++ b/lib/search/indexes/github-docs-ghec-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:886c604e31d847b825cecb8b521135b072f1fe7c50b9c8133018592e35ec326f -size 2544426 +oid sha256:3e0ac3db4d173c25c32c33e4630010119d32d6979ee55456de3bee0c4a194270 +size 2804421 diff --git a/lib/search/lunr-search.js b/lib/search/lunr-search.js index 0746e1beae..f533e91860 100644 --- a/lib/search/lunr-search.js +++ b/lib/search/lunr-search.js @@ -11,6 +11,13 @@ import readFileAsync from '../readfile-async.js' import { namePrefix } from './config.js' import { decompress } from './compress.js' const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +// By default Lunr considers the `-` character to be a word boundary. +// This allows hypens to be included in the query. +// If you change this, remember to make it match the indexing separator +// in script/search/lunr-search-index.js so the query is tokenized +// identically to the way it was indexed. +lunr.QueryLexer.termSeparator = /[\s]+/ lunrStemmerSupport(lunr) tinyseg(lunr) lunrJa(lunr) @@ -21,29 +28,194 @@ const LUNR_DIR = './indexes' const lunrIndexes = new Map() const lunrRecords = new Map() +// Max size of the `.content` record included in the JSON payload that the +// middleware server will serve. +// The reason we're worrying about that here and not in the middleware +// is because what we're *ultimately* sending is HTML so we can't let +// the consumer of this module, slice it as a regular string because +// they might cut off an HTML tag in the middle. +// As of Oct 2021, with the way the CSS works inside components/Search.tsx +// roughly 450-650 characters is contained. Let's just make sure we're +// well within limit. So no visual difference, but smaller JSON payloads. +const MAX_CONTENT_LENGTH = 1000 + export default async function loadLunrResults({ version, language, query, limit }) { const indexName = `${namePrefix}-${version}-${language}` if (!lunrIndexes.has(indexName) || !lunrRecords.has(indexName)) { lunrIndexes.set(indexName, await loadLunrIndex(indexName)) lunrRecords.set(indexName, await loadLunrRecords(indexName)) } - const results = lunrIndexes - .get(indexName) - .search(query) - .slice(0, limit) - .map((result) => { - const record = lunrRecords.get(indexName)[result.ref] - return { - url: result.ref, - breadcrumbs: field(result, record, 'breadcrumbs'), - heading: field(result, record, 'heading'), - title: field(result, record, 'title'), - content: field(result, record, 'content'), - // don't highlight the topics array - topics: record.topics, + const index = lunrIndexes.get(indexName) + const records = lunrRecords.get(indexName) + const queryLength = query.trim().length + + // A search results /combined/ score is: + // + // normalizedScore + POPULARITY_FACTOR * record.popularity + // + // where the "normalizedScore" is the ratio of its Lunr score divided + // by the highest score of all found in Lunr. That means, that the record + // Lunr thinks matches the most becomes 1.0. + // + // It's the number we sort on. The `record.popularity` is always a + // number between (and including) 0-1. + // If the Lunr score is, say, 5.0 and the popularity is 0.1, and + // the POPULARITY_FACTOR is 10, the combined score is 5.0 + 10 * 0.1 = 6.0 + // If you make this too large, the Lunr score becomes insignificant and + // any single match anywhere will always favor the popular documents. + // The best way to adjust this number is to get a feeling for what + // kinds of Lunr score numbers we're usually getting and adjust + // accordingly. + // Short queries are bound to be very ambigous and the more ambiguous + // the more relevant the popularity is. + const POPULARITY_FACTOR = queryLength <= 2 ? 25 : queryLength <= 6 ? 10 : 5 + + // This number determines how much more we favor the title search first. + // It's a multiplier. We do 2 searches: one on title, one on all other fields. + // Then, we compare all scores. But the scores in the results from the title + // we multiply that with this number. + // The effect is that we favor matches in the title more than we favor + // matches that were not in the title. + // If you search for 'foobar' and it appears in the title of one + // not-so-popular record, but also appears in the content of a + // very popular record, you want to give the title-matching one a + // leg up. + // Note that the Lunr scores from the content is usually much higher + // than scores on the title. E.g. the word `codespaces` might appear + // 10 times on a page that is actually about something else. If there's + // a record whose title includes `codespaces` it might get a very low + // Lunr score but since title matches are generally a "better", we + // want to make sure this number accounts for that. + const TITLE_FIRST = queryLength <= 2 ? 45 : queryLength <= 6 ? 25 : 10 + + // Imagine that we have 1,000 documents. 100 of them contain the word + // 'foobar'. Of those 100, we want to display the top 10 "best". + // But if we only do `lunrindex.search('foobar').slice(0, 10)` we + // would slice prematurely. Instead, we do + // `lunrindex.search('foobar').slice(0, 100)` first, sort those, + // and in the final step, after any custom sorting, we `.slice(0, 10)`. + // This number decides how many to extract from Lunr in the first place + // that we're going to do our custom sorting on. + // This number can be allowed to be pretty big because we're only ever + // going to do the more time-consuming highlighting on the `limit` + // records that we finally return. + const PRE_LIMIT = 500 + + let titleQuery = query.trim() + if (titleQuery.length <= 3 && !titleQuery.endsWith('*s')) { + // When the search input is really short, force it to search with + // the "forward wild card". I.e. you typed `go` we turn it into a + // search for `go*` which means it can find things like `Google`. + titleQuery += '*' + } + + let highestTitleScore = 0.0 + const titleResults = index + .query((q) => { + if (/['"]/.test(titleQuery)) { + // If the query contains a quotation marks, you can't easily + // enough break it up into individual words. + q.term(titleQuery, { fields: ['title'] }) + } else { + // This is the structured way of doing turning 'foo bar' + // into `title:foo title:bar'. + titleQuery.split(/ /g).forEach((part) => { + q.term(part, { fields: ['title'] }) + }) } }) - return results + .slice(0, PRE_LIMIT) + .map((result) => { + const { popularity } = records[result.ref] + if (result.score > highestTitleScore) { + highestTitleScore = result.score + } + const score = result.score / highestTitleScore + return { + result, + _score: TITLE_FIRST * (score + POPULARITY_FACTOR * (popularity || 0.0)), + } + }) + + let allQuery = query.trim() + + // Unfortunately, Lunr currently doesn't support phrase matching + // so you always end up with 0 results if you search for `"foo bar"`. + // In this case it's better to do a search for `foo` and `bar`. + if ( + allQuery.startsWith('"') && + allQuery.endsWith('"') && + (allQuery.match(/"/g) || []).length === 2 + ) { + allQuery = allQuery.slice(1, -1) + } + + let highestAllScore = 0.0 + const allResults = index + .search(allQuery) + .slice(0, PRE_LIMIT) + .map((result) => { + const { popularity } = records[result.ref] + if (result.score > highestAllScore) { + highestAllScore = result.score + } + const score = result.score / highestAllScore + return { + result, + score, + _score: score + POPULARITY_FACTOR * (popularity || 0.0), + } + }) + + const _unique = new Set() + const combinedMatchData = {} + const results = [] + for (const matches of [titleResults, allResults]) { + for (const match of matches) { + const { result } = match + // We need to loop over all results (both from title searches and + // from all-field searches) but we can only keep one. + // But before we do that filtering (i.e. omitting previous kept) + // we need to merge all the matchData from each result. + // That's because the `result.matchData` from the title search + // will have Lunr match positions for 'title' but the `result.matchData` + // from the all-field search, will have positions for other things + // such as 'content' and 'breadcrumbs'. + + combinedMatchData[result.ref] = Object.assign( + combinedMatchData[result.ref] || {}, + result.matchData + ) + + if (_unique.has(result.ref)) continue + _unique.add(result.ref) + + results.push(match) + } + } + + // Highest score first + results.sort((a, b) => b._score - a._score) + + // We might have found much more than `limit` number of matches and we've + // taken them all out for our custom sorting. Now, once that's done, + // of the ones we're going to return we apply the highlighting. + // The reasonsing is that the highlighting work isn't free and it'd + // be a waste to do it on results we're not going to return anyway. + return results.slice(0, limit).map(({ result }) => { + const record = records[result.ref] + const matchData = combinedMatchData[result.ref] + return { + url: result.ref, + breadcrumbs: field(matchData, record, 'breadcrumbs'), + title: field(matchData, record, 'title'), + content: smartSlice(field(matchData, record, 'content'), MAX_CONTENT_LENGTH), + // don't highlight the topics array + topics: record.topics, + score: result.score, + popularity: record.popularity || 0.0, + } + }) } async function loadLunrIndex(indexName) { @@ -59,12 +231,12 @@ async function loadLunrRecords(indexName) { } // Highlight a match within an attribute field -function field(result, record, name) { +function field(matchData, record, name) { const text = record[name] if (!text) return text // First, get a list of all the positions of the matching tokens - const positions = Object.values(result.matchData.metadata) + const positions = Object.values(matchData.metadata) .map((fields) => get(fields, [name, 'position'])) .filter(Boolean) .flat() @@ -90,3 +262,34 @@ function field(result, record, name) { function mark(text) { return `${text}` } + +// Give a long string, "slice" it in a safe way so as to not chop any +// HTML tags in half. +// The resulting string will only be at *least* as long as the `length` +// provided. Possibly longer. +function smartSlice(text, length, needleTag = '') { + // If the needleTag isn't present at all, we can dare to use a + // very basic crude string slice because the text won't have any + // other HTML tags we might cut in half. + if (!text.includes(needleTag)) { + return text.slice(0, length) + } + + // The algorithm is simple, split the text by lines. Loop over them, + // and only include them if we've encountered the first needleTag + // and bail early if we've buffered enough in the array of lines. + const lines = [] + let sum = 0 + let started = false + for (const line of text.split('\n')) { + if (line.indexOf(needleTag) > -1) started = true + if (started) { + lines.push(line) + sum += line.length + if (sum > length) { + break + } + } + } + return lines.join('\n') +} diff --git a/package-lock.json b/package-lock.json index 4365b5c8b7..6e214140c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,11 +10,11 @@ "@alex_neo/jest-expect-message": "^1.0.5", "@hapi/accept": "^5.0.2", "@primer/components": "^31.1.0", - "@primer/css": "^18.1.0", + "@primer/css": "^18.2.0", "@primer/octicons": "^16.1.1", "@primer/octicons-react": "^16.1.1", "accept-language-parser": "^1.5.0", - "ajv": "^8.6.3", + "ajv": "^8.7.1", "ajv-formats": "^2.1.1", "bottleneck": "^2.19.5", "browser-date-formatter": "^3.0.3", @@ -31,7 +31,7 @@ "dotenv": "^10.0.0", "express": "^4.17.1", "express-basic-auth": "^1.2.0", - "express-rate-limit": "^5.5.0", + "express-rate-limit": "^5.5.1", "express-timeout-handler": "^2.2.2", "flat": "^5.0.2", "github-slugger": "^1.4.0", @@ -59,7 +59,7 @@ "mdast-util-to-string": "^3.1.0", "morgan": "^1.10.0", "next": "^11.1.2", - "node-fetch": "^3.0.0", + "node-fetch": "^3.1.0", "parse5": "^6.0.1", "port-used": "^2.0.8", "rate-limit-redis": "^2.1.0", @@ -133,7 +133,7 @@ "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.25.2", + "eslint-plugin-import": "^2.25.3", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^5.1.1", @@ -145,20 +145,19 @@ "http-status-code": "^2.1.0", "husky": "^7.0.4", "image-size": "^1.0.0", - "is-url": "^1.2.4", "japanese-characters": "^1.1.0", "javascript-stringify": "^2.1.0", "jest": "^27.3.1", "jest-github-actions-reporter": "^1.0.3", "jest-slow-test-reporter": "^1.0.0", - "linkinator": "^2.14.5", + "linkinator": "^2.15.0", "lint-staged": "^11.2.6", "make-promises-safe": "^5.1.0", "minimatch": "^3.0.4", "mkdirp": "^1.0.4", "mock-express-response": "^0.3.0", "mockdate": "^3.0.5", - "nock": "^13.1.4", + "nock": "^13.2.0", "nodemon": "^2.0.14", "npm-merge-driver-install": "^2.0.1", "object-hash": "^2.2.0", @@ -3233,66 +3232,6 @@ } } }, - "node_modules/@next/swc-darwin-arm64": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-11.1.2.tgz", - "integrity": "sha512-hZuwOlGOwBZADA8EyDYyjx3+4JGIGjSHDHWrmpI7g5rFmQNltjlbaefAbiU5Kk7j3BUSDwt30quJRFv3nyJQ0w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-11.1.2.tgz", - "integrity": "sha512-PGOp0E1GisU+EJJlsmJVGE+aPYD0Uh7zqgsrpD3F/Y3766Ptfbe1lEPPWnRDl+OzSSrSrX1lkyM/Jlmh5OwNvA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-11.1.2.tgz", - "integrity": "sha512-YcDHTJjn/8RqvyJVB6pvEKXihDcdrOwga3GfMv/QtVeLphTouY4BIcEUfrG5+26Nf37MP1ywN3RRl1TxpurAsQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-11.1.2.tgz", - "integrity": "sha512-e/pIKVdB+tGQYa1cW3sAeHm8gzEri/HYLZHT4WZojrUxgWXqx8pk7S7Xs47uBcFTqBDRvK3EcQpPLf3XdVsDdg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@node-rs/helper": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.2.1.tgz", @@ -3543,20 +3482,20 @@ } }, "node_modules/@primer/css": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/@primer/css/-/css-18.1.0.tgz", - "integrity": "sha512-B7ZjxeGPXzcaSm7dAp9n1C2tXDfJnRpdUlfLoTnsXWGKKgbHKgtDtwgRn+e0KGSDoNTmC85N3gemNfkT69D0kg==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/@primer/css/-/css-18.2.0.tgz", + "integrity": "sha512-tU84BKF4HfhyyW7eB/BijcSf862JGIKcm5Z/dFdoZW7AFM1PpMDYiUp8h4j5XtsWxtXSqe3xxqTGTFXsmKGPtw==", "dependencies": { - "@primer/primitives": "6.0.0" + "@primer/primitives": "^6.1.0" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/@primer/css/node_modules/@primer/primitives": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-6.0.0.tgz", - "integrity": "sha512-idupwQC7vpMki4G2HBpQqTAD6MusFkipgfNXxETQ1D4yLkMQ1bMuif09dnHB7bhQBO5pXUFt52LMpPAnM5Zv4w==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-6.1.0.tgz", + "integrity": "sha512-gwSVf5rVf2CMa/bU3/47LZosDHNfODMRJfKi7uJOqHWABVNl6Lf+thDM7Jb8tS9sEQQsUnrLDiGNjCScS81IXA==" }, "node_modules/@primer/octicons": { "version": "16.1.1", @@ -4637,9 +4576,9 @@ } }, "node_modules/ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.7.1.tgz", + "integrity": "sha512-gPpOObTO1QjbnN1sVMjJcp1TF9nggMfO4MBR5uQl6ZVTOaEPq5i4oq/6R9q2alMMPB3eg53wFv1RuJBLuxf3Hw==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -6029,15 +5968,6 @@ "node": ">=8" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -8496,16 +8426,6 @@ "node": ">= 0.8.0" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/escodegen/node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -8656,9 +8576,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz", - "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==", + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", "dev": true, "dependencies": { "array-includes": "^3.1.4", @@ -8666,9 +8586,9 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.0", + "eslint-module-utils": "^2.7.1", "has": "^1.0.3", - "is-core-module": "^2.7.0", + "is-core-module": "^2.8.0", "is-glob": "^4.0.3", "minimatch": "^3.0.4", "object.values": "^1.1.5", @@ -9260,9 +9180,9 @@ } }, "node_modules/express-rate-limit": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.5.0.tgz", - "integrity": "sha512-/1mrKggjXMxd1/ghPub5N3d36u5VlK8KjbQFQLxYub09BWSSgSXMQbXgFiIW0BYxjM49YCj8bkihONZR2U4+mQ==" + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.5.1.tgz", + "integrity": "sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==" }, "node_modules/express-timeout-handler": { "version": "2.2.2", @@ -9463,12 +9383,6 @@ "node": ">=6" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, "node_modules/file-url": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/file-url/-/file-url-3.0.0.tgz", @@ -9635,9 +9549,9 @@ } }, "node_modules/find-process": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.5.tgz", - "integrity": "sha512-v11rJYYISUWn+s8qZzgGnBvlzRKf3bOtlGFM8H0kw56lGQtOmLuLCzuclA5kehA2j7S5sioOWdI4woT3jDavAw==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.4.tgz", + "integrity": "sha512-rRSuT1LE4b+BFK588D2V8/VG9liW0Ark1XJgroxZXI0LtwmQJOb490DvDYvbm+Hek9ETFzTutGfJ90gumITPhQ==", "optional": true, "dependencies": { "chalk": "^4.0.0", @@ -9778,6 +9692,17 @@ "node": ">=0.4.x" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/formidable": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", @@ -9844,19 +9769,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "devOptional": true }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -13067,9 +12979,9 @@ "dev": true }, "node_modules/linkinator": { - "version": "2.14.5", - "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-2.14.5.tgz", - "integrity": "sha512-0BwL+zY8P+m7pNHJGZxx5/KKBw7UqcoYUropRpon1+E5cf6zLlVRdEWh311JW1Ze1dLGjtHrppymEG21dNHMcg==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-2.15.0.tgz", + "integrity": "sha512-9EM++6TSun0gkIH2whcEy0XlqwK2N7SWH0+ms3+JTyWC8oUVr+LliY7jhaAkhWCd5oJ3QyfEfrWPngBLcedbFw==", "dev": true, "dependencies": { "chalk": "^4.0.0", @@ -14906,12 +14818,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, "node_modules/nanoid": { "version": "3.1.30", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", @@ -15352,9 +15258,9 @@ } }, "node_modules/nock": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", - "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.0.tgz", + "integrity": "sha512-j7xjoMU9ZnvkTeoLnD2gIXNlwmLb+GNCPbnqtx7IwlNvdBBqU5aaQPK4Nw6lNmqIJkBubyka6rvrZuDNz1L7Ew==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -15367,12 +15273,13 @@ } }, "node_modules/node-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0.tgz", - "integrity": "sha512-bKMI+C7/T/SPU1lKnbQbwxptpCrG9ashG+VkytmXCPZyuM9jB6VU+hY0oi4lC8LxTtAeWdckNCTa3nrGsAdA3Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.0.tgz", + "integrity": "sha512-QU0WbIfMUjd5+MUzQOYhenAazakV7Irh1SGkWCsRzBwvm4fAhzEUaHMJ6QLP7gWT6WO9/oH2zhKMMGMuIrDyKw==", "dependencies": { - "data-uri-to-buffer": "^3.0.1", - "fetch-blob": "^3.1.2" + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.2", + "formdata-polyfill": "^4.0.10" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -15382,6 +15289,14 @@ "url": "https://opencollective.com/node-fetch" } }, + "node_modules/node-fetch/node_modules/data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "engines": { + "node": ">= 12" + } + }, "node_modules/node-html-parser": { "version": "1.4.9", "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", @@ -16267,9 +16182,9 @@ } }, "node_modules/pa11y-ci/node_modules/node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", "optional": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -16893,9 +16808,9 @@ } }, "node_modules/parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", "optional": true }, "node_modules/parse-json": { @@ -17507,9 +17422,9 @@ } }, "node_modules/puppeteer/node_modules/node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", "optional": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -17600,7 +17515,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", "engines": { "node": ">=0.4.x" } @@ -20095,15 +20009,6 @@ "node": ">= 0.8.0" } }, - "node_modules/static-eval/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/static-eval/node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -20229,15 +20134,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/static-module/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/static-module/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -21804,20 +21700,6 @@ "node": ">= 4.0.0" } }, - "node_modules/unix-dgram": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.4.tgz", - "integrity": "sha512-7tpK6x7ls7J7pDrrAU63h93R0dVhRbPwiRRCawR10cl+2e1VOvF3bHlVJc6WI1dl/8qk5He673QU+Ogv7bPNaw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bindings": "^1.3.0", - "nan": "^2.13.2" - }, - "engines": { - "node": ">=0.10.48" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -21931,7 +21813,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", "engines": { "node": ">=0.4.x" } @@ -25233,30 +25114,6 @@ "integrity": "sha512-hsoJmPfhVqjZ8w4IFzoo8SyECVnN+8WMnImTbTKrRUHOVJcYMmKLL7xf7T0ft00tWwAl/3f3Q3poWIN2Ueql/Q==", "requires": {} }, - "@next/swc-darwin-arm64": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-11.1.2.tgz", - "integrity": "sha512-hZuwOlGOwBZADA8EyDYyjx3+4JGIGjSHDHWrmpI7g5rFmQNltjlbaefAbiU5Kk7j3BUSDwt30quJRFv3nyJQ0w==", - "optional": true - }, - "@next/swc-darwin-x64": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-11.1.2.tgz", - "integrity": "sha512-PGOp0E1GisU+EJJlsmJVGE+aPYD0Uh7zqgsrpD3F/Y3766Ptfbe1lEPPWnRDl+OzSSrSrX1lkyM/Jlmh5OwNvA==", - "optional": true - }, - "@next/swc-linux-x64-gnu": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-11.1.2.tgz", - "integrity": "sha512-YcDHTJjn/8RqvyJVB6pvEKXihDcdrOwga3GfMv/QtVeLphTouY4BIcEUfrG5+26Nf37MP1ywN3RRl1TxpurAsQ==", - "optional": true - }, - "@next/swc-win32-x64-msvc": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-11.1.2.tgz", - "integrity": "sha512-e/pIKVdB+tGQYa1cW3sAeHm8gzEri/HYLZHT4WZojrUxgWXqx8pk7S7Xs47uBcFTqBDRvK3EcQpPLf3XdVsDdg==", - "optional": true - }, "@node-rs/helper": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.2.1.tgz", @@ -25481,17 +25338,17 @@ } }, "@primer/css": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/@primer/css/-/css-18.1.0.tgz", - "integrity": "sha512-B7ZjxeGPXzcaSm7dAp9n1C2tXDfJnRpdUlfLoTnsXWGKKgbHKgtDtwgRn+e0KGSDoNTmC85N3gemNfkT69D0kg==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/@primer/css/-/css-18.2.0.tgz", + "integrity": "sha512-tU84BKF4HfhyyW7eB/BijcSf862JGIKcm5Z/dFdoZW7AFM1PpMDYiUp8h4j5XtsWxtXSqe3xxqTGTFXsmKGPtw==", "requires": { - "@primer/primitives": "6.0.0" + "@primer/primitives": "^6.1.0" }, "dependencies": { "@primer/primitives": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-6.0.0.tgz", - "integrity": "sha512-idupwQC7vpMki4G2HBpQqTAD6MusFkipgfNXxETQ1D4yLkMQ1bMuif09dnHB7bhQBO5pXUFt52LMpPAnM5Zv4w==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-6.1.0.tgz", + "integrity": "sha512-gwSVf5rVf2CMa/bU3/47LZosDHNfODMRJfKi7uJOqHWABVNl6Lf+thDM7Jb8tS9sEQQsUnrLDiGNjCScS81IXA==" } } }, @@ -26441,9 +26298,9 @@ } }, "ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.7.1.tgz", + "integrity": "sha512-gPpOObTO1QjbnN1sVMjJcp1TF9nggMfO4MBR5uQl6ZVTOaEPq5i4oq/6R9q2alMMPB3eg53wFv1RuJBLuxf3Hw==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -27649,15 +27506,6 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -29607,13 +29455,6 @@ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -29809,9 +29650,9 @@ } }, "eslint-plugin-import": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz", - "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==", + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -29819,9 +29660,9 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.0", + "eslint-module-utils": "^2.7.1", "has": "^1.0.3", - "is-core-module": "^2.7.0", + "is-core-module": "^2.8.0", "is-glob": "^4.0.3", "minimatch": "^3.0.4", "object.values": "^1.1.5", @@ -30213,9 +30054,9 @@ } }, "express-rate-limit": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.5.0.tgz", - "integrity": "sha512-/1mrKggjXMxd1/ghPub5N3d36u5VlK8KjbQFQLxYub09BWSSgSXMQbXgFiIW0BYxjM49YCj8bkihONZR2U4+mQ==" + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.5.1.tgz", + "integrity": "sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==" }, "express-timeout-handler": { "version": "2.2.2", @@ -30357,12 +30198,6 @@ "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", "optional": true }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, "file-url": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/file-url/-/file-url-3.0.0.tgz", @@ -30491,9 +30326,9 @@ } }, "find-process": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.5.tgz", - "integrity": "sha512-v11rJYYISUWn+s8qZzgGnBvlzRKf3bOtlGFM8H0kw56lGQtOmLuLCzuclA5kehA2j7S5sioOWdI4woT3jDavAw==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.4.tgz", + "integrity": "sha512-rRSuT1LE4b+BFK588D2V8/VG9liW0Ark1XJgroxZXI0LtwmQJOb490DvDYvbm+Hek9ETFzTutGfJ90gumITPhQ==", "optional": true, "requires": { "chalk": "^4.0.0", @@ -30592,6 +30427,14 @@ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=" }, + "formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "requires": { + "fetch-blob": "^3.1.2" + } + }, "formidable": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", @@ -30643,12 +30486,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "devOptional": true }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -33089,9 +32926,9 @@ "dev": true }, "linkinator": { - "version": "2.14.5", - "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-2.14.5.tgz", - "integrity": "sha512-0BwL+zY8P+m7pNHJGZxx5/KKBw7UqcoYUropRpon1+E5cf6zLlVRdEWh311JW1Ze1dLGjtHrppymEG21dNHMcg==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-2.15.0.tgz", + "integrity": "sha512-9EM++6TSun0gkIH2whcEy0XlqwK2N7SWH0+ms3+JTyWC8oUVr+LliY7jhaAkhWCd5oJ3QyfEfrWPngBLcedbFw==", "dev": true, "requires": { "chalk": "^4.0.0", @@ -34417,12 +34254,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, "nanoid": { "version": "3.1.30", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", @@ -34744,9 +34575,9 @@ } }, "nock": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", - "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.0.tgz", + "integrity": "sha512-j7xjoMU9ZnvkTeoLnD2gIXNlwmLb+GNCPbnqtx7IwlNvdBBqU5aaQPK4Nw6lNmqIJkBubyka6rvrZuDNz1L7Ew==", "dev": true, "requires": { "debug": "^4.1.0", @@ -34756,12 +34587,20 @@ } }, "node-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0.tgz", - "integrity": "sha512-bKMI+C7/T/SPU1lKnbQbwxptpCrG9ashG+VkytmXCPZyuM9jB6VU+hY0oi4lC8LxTtAeWdckNCTa3nrGsAdA3Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.0.tgz", + "integrity": "sha512-QU0WbIfMUjd5+MUzQOYhenAazakV7Irh1SGkWCsRzBwvm4fAhzEUaHMJ6QLP7gWT6WO9/oH2zhKMMGMuIrDyKw==", "requires": { - "data-uri-to-buffer": "^3.0.1", - "fetch-blob": "^3.1.2" + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.2", + "formdata-polyfill": "^4.0.10" + }, + "dependencies": { + "data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" + } } }, "node-html-parser": { @@ -35577,9 +35416,9 @@ } }, "node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", "optional": true, "requires": { "whatwg-url": "^5.0.0" @@ -35988,9 +35827,9 @@ } }, "parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", "optional": true }, "parse-json": { @@ -36473,9 +36312,9 @@ } }, "node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", "optional": true, "requires": { "whatwg-url": "^5.0.0" @@ -38474,12 +38313,6 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -38579,12 +38412,6 @@ "util-deprecate": "~1.0.1" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -39776,16 +39603,6 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, - "unix-dgram": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.4.tgz", - "integrity": "sha512-7tpK6x7ls7J7pDrrAU63h93R0dVhRbPwiRRCawR10cl+2e1VOvF3bHlVJc6WI1dl/8qk5He673QU+Ogv7bPNaw==", - "optional": true, - "requires": { - "bindings": "^1.3.0", - "nan": "^2.13.2" - } - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", diff --git a/package.json b/package.json index d9d5f13e67..27510b5f22 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,11 @@ "@alex_neo/jest-expect-message": "^1.0.5", "@hapi/accept": "^5.0.2", "@primer/components": "^31.1.0", - "@primer/css": "^18.1.0", + "@primer/css": "^18.2.0", "@primer/octicons": "^16.1.1", "@primer/octicons-react": "^16.1.1", "accept-language-parser": "^1.5.0", - "ajv": "^8.6.3", + "ajv": "^8.7.1", "ajv-formats": "^2.1.1", "bottleneck": "^2.19.5", "browser-date-formatter": "^3.0.3", @@ -33,7 +33,7 @@ "dotenv": "^10.0.0", "express": "^4.17.1", "express-basic-auth": "^1.2.0", - "express-rate-limit": "^5.5.0", + "express-rate-limit": "^5.5.1", "express-timeout-handler": "^2.2.2", "flat": "^5.0.2", "github-slugger": "^1.4.0", @@ -61,7 +61,7 @@ "mdast-util-to-string": "^3.1.0", "morgan": "^1.10.0", "next": "^11.1.2", - "node-fetch": "^3.0.0", + "node-fetch": "^3.1.0", "parse5": "^6.0.1", "port-used": "^2.0.8", "rate-limit-redis": "^2.1.0", @@ -135,7 +135,7 @@ "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.25.2", + "eslint-plugin-import": "^2.25.3", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^5.1.1", @@ -147,20 +147,19 @@ "http-status-code": "^2.1.0", "husky": "^7.0.4", "image-size": "^1.0.0", - "is-url": "^1.2.4", "japanese-characters": "^1.1.0", "javascript-stringify": "^2.1.0", "jest": "^27.3.1", "jest-github-actions-reporter": "^1.0.3", "jest-slow-test-reporter": "^1.0.0", - "linkinator": "^2.14.5", + "linkinator": "^2.15.0", "lint-staged": "^11.2.6", "make-promises-safe": "^5.1.0", "minimatch": "^3.0.4", "mkdirp": "^1.0.4", "mock-express-response": "^0.3.0", "mockdate": "^3.0.5", - "nock": "^13.1.4", + "nock": "^13.2.0", "nodemon": "^2.0.14", "npm-merge-driver-install": "^2.0.1", "object-hash": "^2.2.0", @@ -216,7 +215,7 @@ "rest-dev": "script/rest/update-files.js && npm run dev", "start": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja' nodemon server.mjs", "start-all-languages": "cross-env NODE_ENV=development nodemon server.mjs", - "sync-search": "start-server-and-test sync-search-server 4002 sync-search-indices", + "sync-search": "cross-env NODE_OPTIONS='--max_old_space_size=8192' start-server-and-test sync-search-server 4002 sync-search-indices", "sync-search-ghes-release": "cross-env GHES_RELEASE=1 start-server-and-test sync-search-server 4002 sync-search-indices", "sync-search-indices": "script/sync-search-indices.js", "sync-search-server": "cross-env NODE_ENV=production WEB_CONCURRENCY=1 PORT=4002 node server.mjs", @@ -224,7 +223,8 @@ "translation-check-server": "cross-env NODE_ENV=test PORT=4002 node server.mjs", "translation-check-test": "script/i18n/test-html-pages.js", "test": "cross-env NODE_OPTIONS='--max_old_space_size=8192 --experimental-vm-modules' jest", - "test-watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch --notify --notifyMode=change --coverage" + "test-watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch --notify --notifyMode=change --coverage", + "tsc": "tsc --noEmit" }, "lint-staged": { "*.{js,mjs,ts,tsx}": "eslint --cache --fix", diff --git a/script/search/build-records.js b/script/search/build-records.js index 3bf7d23e4b..269318d07a 100644 --- a/script/search/build-records.js +++ b/script/search/build-records.js @@ -61,19 +61,13 @@ export default async function buildRecords( const waiter = domwaiter(permalinks, { maxConcurrent: MAX_CONCURRENT, minTime: MIN_TIME }) .on('page', (page) => { process.stdout.write(pageMarker) - const newRecords = parsePageSectionsIntoRecords(page.href, page.$) + const newRecord = parsePageSectionsIntoRecords(page) const hrefWithoutLocale = page.href.split('/').slice(2).join('/') const popularity = (hasPopularPages && popularPages[hrefWithoutLocale]) || 0.0 - - for (const newRecord of newRecords) { - newRecord.popularity = popularity - } - if (!newRecords.length) { - console.log(chalk.red(`\nno records found: ${page.href}`)) - } - process.stdout.write(recordMarker.repeat(newRecords.length)) - records.push(...newRecords) + newRecord.popularity = popularity + process.stdout.write(recordMarker) + records.push(newRecord) }) .on('error', (err) => { console.error(err) diff --git a/script/search/find-indexable-pages.js b/script/search/find-indexable-pages.js index 43458dba81..72ab2dc73d 100644 --- a/script/search/find-indexable-pages.js +++ b/script/search/find-indexable-pages.js @@ -8,8 +8,8 @@ export default async function findIndexablePages() { .filter((page) => !page.hidden) // exclude pages that are part of WIP or hidden products .filter((page) => !page.parentProduct || !page.parentProduct.wip || page.parentProduct.hidden) - // exclude index homepages - .filter((page) => !page.relativePath.endsWith('index.md')) + // exclude absolute home page (e.g. /en or /ja) + .filter((page) => page.relativePath !== 'index.md') console.log('total pages', allPages.length) console.log('indexable pages', indexablePages.length) diff --git a/script/search/lunr-search-index.js b/script/search/lunr-search-index.js index 7dbd79e22b..a697395455 100755 --- a/script/search/lunr-search-index.js +++ b/script/search/lunr-search-index.js @@ -48,12 +48,18 @@ export default class LunrIndex { this.use(lunr[language]) } + // By default Lunr considers the `-` character to be a word boundary. + // This allows hyphens to be included in the search index. + // If you change this, remember to make it match the indexing separator + // in lib/search/lunr-search.js so the query is tokenized + // identically to the way it was indexed. + this.tokenizer.separator = /[\s]+/ + this.ref('objectID') this.field('url') - this.field('slug') this.field('breadcrumbs') - this.field('heading') - this.field('title') + this.field('headings', { boost: 3 }) + this.field('title', { boost: 5 }) this.field('content') this.field('topics') this.field('customRanking') diff --git a/script/search/parse-page-sections-into-records.js b/script/search/parse-page-sections-into-records.js index 8542d3e3be..da94072408 100644 --- a/script/search/parse-page-sections-into-records.js +++ b/script/search/parse-page-sections-into-records.js @@ -1,18 +1,18 @@ #!/usr/bin/env node -import { chain } from 'lodash-es' import { maxContentLength } from '../../lib/search/config.js' + // This module takes cheerio page object and divides it into sections // using H1,H2 heading elements as section delimiters. The text // that follows each heading becomes the content of the search record. -const urlPrefix = 'https://docs.github.com' -const ignoredHeadingSlugs = ['in-this-article', 'further-reading'] +const ignoredHeadingSlugs = ['in-this-article', 'further-reading', 'prerequisites'] -export default function parsePageSectionsIntoRecords(href, $) { +export default function parsePageSectionsIntoRecords(page) { + const { href, $, languageCode } = page const title = $('h1').text().trim() - const breadcrumbsArray = $('nav.breadcrumbs a') + const breadcrumbsArray = $('[data-search=breadcrumbs] nav.breadcrumbs a') .map((i, el) => { - return $(el).text().trim().replace(/\n/g, ' ').replace(/\s+/g, ' ') + return $(el).text().trim().replace('/', '').replace(/\s+/g, ' ') }) .get() .slice(0, -1) @@ -28,66 +28,109 @@ export default function parsePageSectionsIntoRecords(href, $) { topics.push(productName.replace('GitHub ', '')) } - let records + const objectID = href - const $sections = $('[data-search=article-content] h2') + const rootSelector = '[data-search=article-body]' + const $root = $(rootSelector) + + const $sections = $('h2', $root) .filter('[id]') .filter((i, el) => { return !ignoredHeadingSlugs.includes($(el).attr('id')) }) - if ($sections.length > 0) { - records = $sections - .map((i, el) => { - const heading = $(el).text().trim() - const slug = $(el).attr('id') - const objectID = [href, slug].join('#') - const url = [urlPrefix, objectID].join('') - const content = $(el) - // Platform-specific content is nested in a DIV - // GraphQL content in nested in two DIVS - .nextUntil('h2, div > h2, div > div > h2') - .map((i, el) => $(el).text()) - .get() - .join(' ') - .trim() - .slice(0, maxContentLength) - return { - objectID, - url, - slug, - breadcrumbs, - heading, - title, - content, - topics, - } - }) - .get() - } else { - // There are no sections. Treat the entire article as the record. - const objectID = href - const url = [urlPrefix, objectID].join('') - const content = $( - '[data-search=article-body] p, [data-search=article-body] ul, [data-search=article-body] ol, [data-search=article-body] table' - ) - .map((i, el) => $(el).text()) - .get() - .join(' ') - .trim() - .slice(0, maxContentLength) + const headings = $sections + .map((i, el) => $(el).text()) + .get() + .join(' ') + .trim() - records = [ - { - objectID, - url, - breadcrumbs, - title, - content, - topics, - }, - ] + const intro = $('[data-search=lead] p').text().trim() + + let body = '' + // Typical example pages with no `$root` are: + // https://docs.github.com/en/code-security/guides or + // https://docs.github.com/en/graphql/overview/explorer + // + // We need to avoid these because if you use `getAllText()` on these + // pages, it will extract *everything* from the page, which will + // include the side bar and footer. + // TODO: Come up a custom solution to extract some text from these + // pages that yields some decent content to be searched on, because + // when you view these pages in a browser, there's clearly text there. + if ($root.length > 0) { + body = getAllText($, $root) } - return chain(records).uniqBy('objectID').value() + if (!body && !intro) { + console.warn(`${objectID} has no body and no intro.`) + } + + if (languageCode !== 'en' && body.length > maxContentLength) { + body = body.slice(0, maxContentLength) + } + + const content = `${intro}\n${body}`.trim() + + return { + objectID, + breadcrumbs, + title, + headings, + content, + topics, + } +} + +function getAllText($, $root) { + let text = '' + + // We need this so we can know if we processed, for example, + // a followed by a

    because if that's the case, don't use + // a ' ' to concatenate the texts together but a '\n' instead. + // That means, given this input: + // + //

    Bla

    FooBar

    Hi again

    + // + // we can produce this outcome: + // + // 'Bla\nFoo Bar\nHi again' + // + let previousTagName = '' + + $('p, h2, h3, td, pre, li', $root).each((i, element) => { + const $element = $(element) + if (previousTagName === 'td' && element.tagName !== 'td') { + text += '\n' + } + // Because our cheerio selector is all the block level tags, + // what you might end up with is, from: + // + //
  3. Text

  4. + //
  5. Code
  6. + // + // ['Text', 'Text', 'Code', 'Code'] + // + // because it will spot both the
  7. and the

    . + // If all HTML was exactly like that, you could omit the

  8. selector, + // but a lot of HTML is like this: + // + //
  9. Bare text
  10. + // + // So we need to bail if we're inside a block level element whose parent + // already was a
  11. . + if ((element.tagName === 'p' || element.tagName === 'pre') && element.parent.tagName === 'li') { + return + } + text += $element.text() + if (element.tagName === 'td') { + text += ' ' + } else { + text += '\n' + } + previousTagName = element.tagName + }) + text = text.trim().replace(/\s*[\r\n]+/g, '\n') + + return text } diff --git a/script/search/rank.js b/script/search/rank.js index 3ca7348198..1e20a1091a 100644 --- a/script/search/rank.js +++ b/script/search/rank.js @@ -10,7 +10,7 @@ const rankings = ['/rest', '/graphql', '/site-policy'].reverse() export default function rank(record) { for (const index in rankings) { const pattern = rankings[index] - if (record.url.includes(pattern)) return Number(index) + if (record.objectID.includes(pattern)) return Number(index) } // Set the default ranking to the highest possible diff --git a/script/search/validate-records.js b/script/search/validate-records.js index f252f6a5a9..209e74f749 100644 --- a/script/search/validate-records.js +++ b/script/search/validate-records.js @@ -1,9 +1,7 @@ #!/usr/bin/env node import assert from 'assert' import { isArray, isString, inRange } from 'lodash-es' -import isURL from 'is-url' import countArrayValues from 'count-array-values' -import { maxRecordLength } from '../../lib/search/config.js' export default function validateRecords(name, records) { assert(isString(name) && name.length, '`name` is required') @@ -27,21 +25,10 @@ export default function validateRecords(name, records) { `title must be a string. received: ${record.title}, ${JSON.stringify(record)}` ) - assert( - isURL(record.url), - `url must be a fully qualified URL. received: ${record.url}, ${JSON.stringify(record)}` - ) - assert( inRange(record.customRanking, 0, 4), `customRanking must be an in-range number. received: ${record.customRanking}, (record: ${record.url})` ) - - const recordLength = JSON.stringify(record).length - assert( - recordLength <= maxRecordLength, - `record ${record.url} is too long! ${recordLength} (max: ${maxRecordLength})` - ) }) return true diff --git a/tests/unit/search/fixtures/page-with-sections.html b/tests/unit/search/fixtures/page-with-sections.html index 32f8dc8289..801e8bb927 100644 --- a/tests/unit/search/fixtures/page-with-sections.html +++ b/tests/unit/search/fixtures/page-with-sections.html @@ -1,30 +1,59 @@ -
    + -

    In this article

    -

    This should be ignored.

    +

    I am the page title

    -

    First heading

    -

    Here's a paragraph.

    +
    +

    This is an introduction to the article.

    +
    -

    And another.

    +
    +

    In this article

    +

    This won't be ignored.

    -

    Second heading

    -

    Here's a paragraph in the second section.

    +

    First heading

    -

    And another.

    + +

    Here's a paragraph.

    And another.

    -

    Further reading

    -

    This should be ignored.

    +

    Second heading

    +

    Here's a paragraph in the second section.

    + +

    And another.

    + +

    Table heading

    + + + + + + +
    PeterHuman
    + +
      +
    • Bullet

    • +
    • Point

    • +
    + +
      +
    1. Numbered
    2. +
    3. List
    4. +
    + +

    Further reading

    +

    This won't be ignored.

    This is out the article tag so it should be ignored

    diff --git a/tests/unit/search/fixtures/page-without-body.html b/tests/unit/search/fixtures/page-without-body.html new file mode 100644 index 0000000000..2ce35a0b4f --- /dev/null +++ b/tests/unit/search/fixtures/page-without-body.html @@ -0,0 +1,18 @@ + + + +

    I am outside the article and should not be included

    + + + +

    A page without body

    + +
    +

    This is an introduction to the article.

    +
    diff --git a/tests/unit/search/fixtures/page-without-sections.html b/tests/unit/search/fixtures/page-without-sections.html index 04f619d566..d337a9deb1 100644 --- a/tests/unit/search/fixtures/page-without-sections.html +++ b/tests/unit/search/fixtures/page-without-sections.html @@ -3,16 +3,22 @@

    I am outside the article and should not be included

    -
    +
    - -

    A page without sections

    - -

    First paragraph.

    - -

    Second paragraph.

    +
    + +

    A page without sections

    + +
    +

    This is an introduction to the article.

    +
    + +
    +

    First paragraph.

    + +

    Second paragraph.

    diff --git a/tests/unit/search/parse-page-sections-into-records.js b/tests/unit/search/parse-page-sections-into-records.js index befa1d15b8..5f4f8026a9 100644 --- a/tests/unit/search/parse-page-sections-into-records.js +++ b/tests/unit/search/parse-page-sections-into-records.js @@ -4,6 +4,7 @@ import fs from 'fs/promises' import cheerio from 'cheerio' import parsePageSectionsIntoRecords from '../../../script/search/parse-page-sections-into-records.js' const __dirname = path.dirname(fileURLToPath(import.meta.url)) + const fixtures = { pageWithSections: await fs.readFile( path.join(__dirname, 'fixtures/page-with-sections.html'), @@ -13,6 +14,10 @@ const fixtures = { path.join(__dirname, 'fixtures/page-without-sections.html'), 'utf8' ), + pageWithoutBody: await fs.readFile( + path.join(__dirname, 'fixtures/page-without-body.html'), + 'utf8' + ), } describe('search parsePageSectionsIntoRecords module', () => { @@ -20,52 +25,57 @@ describe('search parsePageSectionsIntoRecords module', () => { const html = fixtures.pageWithSections const $ = cheerio.load(html) const href = '/example/href' - const records = parsePageSectionsIntoRecords(href, $) - expect(Array.isArray(records)).toBe(true) - expect(records.length).toBe(2) - const expected = [ - { - objectID: '/example/href#first', - url: 'https://docs.github.com/example/href#first', - slug: 'first', - breadcrumbs: 'GitHub Actions / actions learning path', - heading: 'First heading', - title: 'I am the page title', - content: "Here's a paragraph. And another.", - topics: ['topic1', 'topic2', 'GitHub Actions', 'Actions'], - }, - { - objectID: '/example/href#second', - url: 'https://docs.github.com/example/href#second', - slug: 'second', - breadcrumbs: 'GitHub Actions / actions learning path', - heading: 'Second heading', - title: 'I am the page title', - content: "Here's a paragraph in the second section. And another.", - topics: ['topic1', 'topic2', 'GitHub Actions', 'Actions'], - }, - ] + const record = parsePageSectionsIntoRecords({ href, $, languageCode: 'en' }) + const expected = { + objectID: '/example/href', + breadcrumbs: 'GitHub Actions / actions learning path', + title: 'I am the page title', + headings: 'First heading Second heading Table heading', + content: + 'This is an introduction to the article.\n' + + "In this article\nThis won't be ignored.\nFirst heading\n" + + "Here's a paragraph.\nAnd another.\nSecond heading\n" + + "Here's a paragraph in the second section.\nAnd another.\n" + + 'Table heading\nPeter Human\n' + + 'Bullet\nPoint\nNumbered\nList\n' + + "Further reading\nThis won't be ignored.", + topics: ['topic1', 'topic2', 'GitHub Actions', 'Actions'], + } - expect(records).toEqual(expected) + expect(record).toEqual(expected) }) test('works for pages without sections', () => { const html = fixtures.pageWithoutSections const $ = cheerio.load(html) const href = '/example/href' - const records = parsePageSectionsIntoRecords(href, $) - expect(Array.isArray(records)).toBe(true) - expect(records.length).toBe(1) - const expected = [ - { - objectID: '/example/href', - url: 'https://docs.github.com/example/href', - breadcrumbs: 'Education / map topic', - title: 'A page without sections', - content: 'First paragraph. Second paragraph.', - topics: ['key1', 'key2', 'key3', 'Education'], - }, - ] - expect(records).toEqual(expected) + const record = parsePageSectionsIntoRecords({ href, $, languageCode: 'en' }) + const expected = { + objectID: '/example/href', + breadcrumbs: 'Education / map topic', + title: 'A page without sections', + headings: '', + content: 'This is an introduction to the article.\nFirst paragraph.\nSecond paragraph.', + topics: ['key1', 'key2', 'key3', 'Education'], + } + + expect(record).toEqual(expected) + }) + + test('works for pages without content', () => { + const html = fixtures.pageWithoutBody + const $ = cheerio.load(html) + const href = '/example/href' + const record = parsePageSectionsIntoRecords({ href, $, languageCode: 'en' }) + const expected = { + objectID: '/example/href', + breadcrumbs: 'Education / map topic', + title: 'A page without body', + headings: '', + content: 'This is an introduction to the article.', + topics: ['key1', 'key2', 'key3', 'Education'], + } + + expect(record).toEqual(expected) }) }) diff --git a/tests/unit/search/rank.js b/tests/unit/search/rank.js index 72907da83f..e174865306 100644 --- a/tests/unit/search/rank.js +++ b/tests/unit/search/rank.js @@ -2,14 +2,14 @@ import rank from '../../../script/search/rank.js' test('search custom rankings', () => { const expectedRankings = [ - ['https://docs.github.com/en/github/actions', 3], - ['https://docs.github.com/en/rest/reference', 2], - ['https://docs.github.com/en/graphql', 1], - ['https://docs.github.com/en/github/site-policy', 0], + ['/en/github/actions', 3], + ['/en/rest/reference', 2], + ['/en/graphql', 1], + ['/en/github/site-policy', 0], ] - expectedRankings.forEach(([url, expectedRanking]) => { - const expectationMessage = `expected ${url} to have a custom ranking of ${expectedRanking}` - expect(rank({ url }), expectationMessage).toBe(expectedRanking) + expectedRankings.forEach(([objectID, expectedRanking]) => { + const expectationMessage = `expected ${objectID} to have a custom ranking of ${expectedRanking}` + expect(rank({ objectID }), expectationMessage).toBe(expectedRanking) }) })