diff --git a/content/actions/reference/workflows-and-actions/expressions.md b/content/actions/reference/workflows-and-actions/expressions.md index f89a80af8da8..418da047a5fe 100644 --- a/content/actions/reference/workflows-and-actions/expressions.md +++ b/content/actions/reference/workflows-and-actions/expressions.md @@ -59,7 +59,7 @@ env: | `==` | Equal | | `!=` | Not equal | | `&&` | And | -| \|\| | Or | +| \|\| | Or | > [!NOTE] > * {% data variables.product.company_short %} ignores case when comparing strings. diff --git a/content/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency.md b/content/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency.md index 44287bf53166..17d4da8fd46d 100644 --- a/content/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency.md +++ b/content/admin/data-residency/feature-overview-for-github-enterprise-cloud-with-data-residency.md @@ -24,7 +24,7 @@ The following features are currently unavailable on {% data variables.enterprise | {% data variables.product.prodname_copilot_short %} Metrics API | Currently unavailable | [AUTOTITLE](/rest/copilot/copilot-metrics) | | {% data variables.product.prodname_github_codespaces %} | Currently unavailable. | [AUTOTITLE](/codespaces/quickstart) | | {% data variables.product.prodname_importer %} (the "Import repository" button on {% data variables.product.prodname_dotcom_the_website %}) | Instead, the **{% data variables.product.prodname_importer_proper_name %}** is available to migrate data. See [AUTOTITLE](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer). | [AUTOTITLE](/migrations/importing-source-code/using-github-importer/about-github-importer) | -| {% data variables.product.prodname_marketplace %} | Currently, apps from {% data variables.product.prodname_marketplace %} are unavailable. {% data variables.product.prodname_actions %} workflows from {% data variables.product.prodname_marketplace %} may not function as expected. For more information, see [{% data variables.product.prodname_actions %} workflows from {% data variables.product.prodname_marketplace %}](#github-actions-workflows-from-github-marketplace). | [AUTOTITLE](/search-github/searching-on-github/searching-github-marketplace) | [AUTOTITLE](/enterprise-server@latest/admin/configuration/configuring-github-connect/about-github-connect#github-connect-features) in the {% data variables.product.prodname_ghe_server %} documentation | +| {% data variables.product.prodname_marketplace %} | Currently, apps from {% data variables.product.prodname_marketplace %} are unavailable. {% data variables.product.prodname_actions %} workflows from {% data variables.product.prodname_marketplace %} may not function as expected. For more information, see [{% data variables.product.prodname_actions %} workflows from {% data variables.product.prodname_marketplace %}](#github-actions-workflows-from-github-marketplace). | [AUTOTITLE](/search-github/searching-on-github/searching-github-marketplace)
[AUTOTITLE](/enterprise-server@latest/admin/configuration/configuring-github-connect/about-github-connect#github-connect-features) in the {% data variables.product.prodname_ghe_server %} documentation | | {% data variables.product.prodname_github_models %} | Currently unavailable | [AUTOTITLE](/github-models/about-github-models) | | macOS runners for {% data variables.product.prodname_actions %} | Currently unavailable. | [AUTOTITLE](/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners) | | Maven and Gradle support for {% data variables.product.prodname_registry %} | Currently unavailable. | [AUTOTITLE](/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry) | diff --git a/content/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events.md b/content/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events.md index 68c23da1ba5c..e3dcd0897ca7 100644 --- a/content/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events.md +++ b/content/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events.md @@ -221,9 +221,9 @@ const localWebhookUrl = `http://${host}:${port}${path}`; // // Octokit's `createNodeMiddleware` function takes care of generating this middleware function for you. The resulting middleware function will: // -// - Check the signature of the incoming webhook event to make sure that it matches your webhook secret. This verifies that the incoming webhook event is a valid {% data variables.product.company_short %} event. -// - Parse the webhook event payload and identify the type of event. -// - Trigger the corresponding webhook event handler. +// - Check the signature of the incoming webhook event to make sure that it matches your webhook secret. This verifies that the incoming webhook event is a valid {% data variables.product.company_short %} event. +// - Parse the webhook event payload and identify the type of event. +// - Trigger the corresponding webhook event handler. const middleware = createNodeMiddleware(app.webhooks, {path}); // This creates a Node.js server that listens for incoming HTTP requests (including webhook payloads from {% data variables.product.company_short %}) on the specified port. When the server receives a request, it executes the `middleware` function that you defined earlier. Once the server is running, it logs messages to the console to indicate that it is listening. 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 e7d997675541..f301d7a2f06a 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 @@ -217,8 +217,8 @@ Some of the features listed below are limited to organizations using {% data var |:--------------------|:------:|:-------:|:-------:| | Invite people to join the organization | | | | | Edit and cancel invitations to join the organization | | | | -| Remove members from the organization | | | | | -| Reinstate former members to the organization | | | | | +| Remove members from the organization | | | | +| Reinstate former members to the organization | | | | | Add and remove people from **all teams** | | | | | Promote organization members to _team maintainer_ | | | | | Configure code review assignments (see [AUTOTITLE](/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team)) | | | | @@ -237,10 +237,10 @@ Some of the features listed below are limited to organizations using {% data var | Manage security and analysis settings (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)) | | | | | View the security overview for the organization (see [AUTOTITLE](/code-security/security-overview/about-the-security-overview)) | | | | | {% ifversion security-delegated-alert-dismissal %} | -| Review and manage {% data variables.product.prodname_secret_scanning %} dismissal requests | | | | | | +| Review and manage {% data variables.product.prodname_secret_scanning %} dismissal requests | | | | | {% endif %} | | {% ifversion security-delegated-alert-dismissal %} | -| Review and manage {% data variables.product.prodname_code_scanning %} dismissal requests | | | | | | +| Review and manage {% data variables.product.prodname_code_scanning %} dismissal requests | | | | | {% endif %} | | Manage {% data variables.product.prodname_dependabot_security_updates %} (see [AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates)) | | | | | Manage an organization's SSH certificate authorities (see [AUTOTITLE](/organizations/managing-git-access-to-your-organizations-repositories/managing-your-organizations-ssh-certificate-authorities)) | | | | @@ -258,7 +258,7 @@ Some of the features listed below are limited to organizations using {% data var | [Export a list of people with access to an organization repository](/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/viewing-people-with-access-to-your-repository#exporting-a-list-of-people-with-access-to-your-repository) | | | | | Manage default labels (see [AUTOTITLE](/organizations/managing-organization-settings/managing-default-labels-for-repositories-in-your-organization)) | | | | | {% ifversion pull-request-approval-limit %} | -| Manage pull request reviews in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-pull-request-reviews-in-your-organization)) | | | | | +| Manage pull request reviews in the organization (see [AUTOTITLE](/organizations/managing-organization-settings/managing-pull-request-reviews-in-your-organization)) | | | | | {% endif %} | {% endrowheaders %} diff --git a/content/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization.md b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization.md index f5189fff8f27..e94199a78a80 100644 --- a/content/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization.md @@ -193,12 +193,14 @@ In this section, you can find the access required for security features, such as |:---|:---:|:---:|:---:|:---:|:---:| | Receive [{% data variables.product.prodname_dependabot_alerts %} for insecure dependencies](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) in a repository | | | | | | | [Dismiss {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts) | | | | | | -| {% ifversion ghes or ghec %}| +| {% ifversion ghes or ghec %} | | [Designate additional people or teams to receive security alerts](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) | | | | | | | {% endif %} | | {% ifversion fpt or ghec %} | -| Create [security advisories](/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories) | | | | | |{% endif %}{% ifversion ghes or ghec %} -| Manage access to {% data variables.product.prodname_GHAS %} features (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)) | | | | | |{% endif %}{% ifversion fpt or ghec %} +| Create [security advisories](/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories) | | | | | | +| {% endif %} | +| Manage access to {% data variables.product.prodname_GHAS %} features (see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)) | | | | | | +|{% ifversion fpt or ghec %}| | [Enable the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository) for a private repository | | | | | | | {% endif %} | | {% ifversion ghes or ghec %} | diff --git a/content/site-policy/site-policy-deprecated/github-enterprise-service-level-agreement.md b/content/site-policy/site-policy-deprecated/github-enterprise-service-level-agreement.md index 80a77f4d81e8..6a76712aa2b0 100644 --- a/content/site-policy/site-policy-deprecated/github-enterprise-service-level-agreement.md +++ b/content/site-policy/site-policy-deprecated/github-enterprise-service-level-agreement.md @@ -23,7 +23,7 @@ For definitions of each Service feature (“**Service Feature**”) and to revie | **Service Feature** | **Uptime Calculation** | **Definitions** | **Service Credits Calculation** | |---|---|---|---| -| **Issues**,
**Pull Requests**,
**Git Operations**,
**API Requests (for Service Features only)**,
**Webhooks**,
**Pages** | (total minutes in a calendar quarter - Downtime) / total minutes in a calendar quarter | “**Downtime**” is a period of time where either (a) the error rate exceeds five percent (5%) in a given minute for any Service Feature or (b) the Service was unavailable as determined by a combination of GitHub's internal and external monitoring systems. | A Service Credits claim may be based on either (not both) of the following calculations: | | +| **Issues**,
**Pull Requests**,
**Git Operations**,
**API Requests (for Service Features only)**,
**Webhooks**,
**Pages** | (total minutes in a calendar quarter - Downtime) / total minutes in a calendar quarter | “**Downtime**” is a period of time where either (a) the error rate exceeds five percent (5%) in a given minute for any Service Feature or (b) the Service was unavailable as determined by a combination of GitHub's internal and external monitoring systems. | A Service Credits claim may be based on either (not both) of the following calculations: | | **Actions** | (Total Triggered Executions – Unavailable Executions) / (Total Triggered Executions) x 100 | “**Total Triggered Executions**” is the total number of all Actions executions triggered by Customer in a calendar quarter.

“**Unavailable Executions**” is the total number of executions within Total Triggered Executions which failed to run in a calendar quarter. An execution failed to run when the Actions history log did not capture any output five (5) minutes after the trigger was successfully fired. | Same as above | | **Packages** | Transfers Uptime = same as Actions

Storage Uptime = 100% - Average Error Rate*

*The Uptime Calculation excludes public usage and storage transactions that do not count toward either Total Storage Transactions or Failed Storage Transactions (including pre-authentication failures; authentication failures; attempted transactions for storage accounts over their prescribed quotas). | “**Error Rate**” is the total number of Failed Storage Transactions divided by the Total Storage Transactions during a set time interval (currently set at one hour). If the Total Storage Transactions in a given one-hour interval is zero, the error rate for that interval is 0%.

“**Average Error Rate**” is the sum of Error Rates for each hour in a calendar quarter divided by the total number of hours in a calendar quarter. | Same as above | diff --git a/data/reusables/dependabot/dependabot-updates-supported-versioning-tags.md b/data/reusables/dependabot/dependabot-updates-supported-versioning-tags.md index 59619470c56e..8defe0b0fa6f 100644 --- a/data/reusables/dependabot/dependabot-updates-supported-versioning-tags.md +++ b/data/reusables/dependabot/dependabot-updates-supported-versioning-tags.md @@ -4,9 +4,9 @@ The `dependabot.yml` file doesn't control the versioning tags that you can use, #### Supported versioning tags -| **Package Manager** | **YAML value** | **Supported Tags** | **Examples** | -|---------------------|-------------------|--------------------------------------------------------------------------------------------------------------------|-------------------------------------------| -| Maven | `maven` | `alpha, a, beta, b, milestone, m, rc, cr, sp, ga, final, release, snapshot` | `spring-security-web@5.6.0-SNAPSHOT`, `spring-core@5.2.0.RELEASE` | -| npm | `npm` | `alpha`, `beta`, `canary`, `dev`, `experimental`, `latest`, `legacy`, `next`, `nightly`, `rc`, `release`, `stable` | `lodash@beta`, `react@latest`, `express@next` | | -| pnpm | `npm` | `alpha`, `beta`, `canary`, `dev`, `experimental`, `latest`, `legacy`, `next`, `nightly`, `rc`, `release`, `stable` | `lodash@1.2.0-alpha`, `react@alpha`, `vue@next` | -| yarn | `npm` | `alpha`, `beta`, `canary`, `dev`, `experimental`, `latest`, `legacy`, `next`, `nightly`, `rc`, `release`, `stable` | `lodash@1.2.0-alpha`, `axios@latest`, `moment@nightly` | +| **Package Manager** | **YAML value** | **Supported Tags** | **Examples** | +|---------------------|----------------|--------------------|--------------| +| Maven | `maven` | `alpha, a, beta, b, milestone, m, rc, cr, sp, ga, final, release, snapshot` | `spring-security-web@5.6.0-SNAPSHOT`, `spring-core@5.2.0.RELEASE` | +| npm | `npm` | `alpha`, `beta`, `canary`, `dev`, `experimental`, `latest`, `legacy`, `next`, `nightly`, `rc`, `release`, `stable` | `lodash@beta`, `react@latest`, `express@next` | +| pnpm | `npm` | `alpha`, `beta`, `canary`, `dev`, `experimental`, `latest`, `legacy`, `next`, `nightly`, `rc`, `release`, `stable` | `lodash@1.2.0-alpha`, `react@alpha`, `vue@next` | +| yarn | `npm` | `alpha`, `beta`, `canary`, `dev`, `experimental`, `latest`, `legacy`, `next`, `nightly`, `rc`, `release`, `stable` | `lodash@1.2.0-alpha`, `axios@latest`, `moment@nightly` | diff --git a/src/journeys/middleware/journey-track.ts b/src/journeys/middleware/journey-track.ts index 5321058f96fa..e6e412785796 100644 --- a/src/journeys/middleware/journey-track.ts +++ b/src/journeys/middleware/journey-track.ts @@ -1,6 +1,5 @@ import type { Response, NextFunction } from 'express' import type { ExtendedRequest, Context } from '@/types' -import { resolveJourneyContext } from '../lib/journey-path-resolver' export default async function journeyTrack( req: ExtendedRequest & { context: Context }, @@ -10,8 +9,30 @@ export default async function journeyTrack( if (!req.context) throw new Error('request is not contextualized') if (!req.context.page) return next() + // Only run journey resolution if the page has journey tracks defined + if (!(req.context.page as any).journeyTracks) { + req.context.currentJourneyTrack = null + return next() + } + try { - const journeyContext = await resolveJourneyContext( + // Import and use the journey resolver which uses renderContent, need the + // async import since it uses fs Node apis + const journeyResolver = await import('../lib/journey-path-resolver') + + // resolve the journey tracks which renders the journey content like the + // description to handle liquid rendering + const resolvedTracks = await journeyResolver.resolveJourneyTracks( + (req.context.page as any).journeyTracks, + req.context, + ) + + // Store resolved tracks on the page context for later use in getServerSideProps + ;(req.context.page as any).resolvedJourneyTracks = resolvedTracks + + // resolve the current journey context since we're on a journey track page + // i.e. next/prev articles in the track, this article's position in the track + const journeyContext = await journeyResolver.resolveJourneyContext( req.pagePath || '', req.context.pages || {}, req.context, diff --git a/src/landings/context/LandingContext.tsx b/src/landings/context/LandingContext.tsx index e6dc490b38cb..25994d5d2f44 100644 --- a/src/landings/context/LandingContext.tsx +++ b/src/landings/context/LandingContext.tsx @@ -60,12 +60,9 @@ export const getLandingContextFromRequest = async ( } } - let journeyTracks: JourneyTrack[] = [] - if (landingType === 'journey' && page.journeyTracks) { - // Need a dynamic import because journey-path-resolver uses Node fs apis - const { resolveJourneyTracks } = await import('@/journeys/lib/journey-path-resolver') - journeyTracks = await resolveJourneyTracks(page.journeyTracks, req.context) - } + // Note: Journey tracks are resolved in middleware and added to the request + // context to avoid the error using server side apis client side + const journeyTracks: JourneyTrack[] = [] return { landingType, diff --git a/src/landings/pages/product.tsx b/src/landings/pages/product.tsx index c69b7344d7b6..07ffc9bd08a6 100644 --- a/src/landings/pages/product.tsx +++ b/src/landings/pages/product.tsx @@ -178,6 +178,13 @@ export const getServerSideProps: GetServerSideProps = async (context) => additionalUINamespaces.push('product_landing') } else if (currentLayoutName === 'journey-landing' || req.query?.feature === 'journey-landing') { props.journeyContext = await getLandingContextFromRequest(req, 'journey') + + // journey tracks are resolved in middleware and added to the request + // so we need to add them to the journey context here + if ((req.context.page as any).resolvedJourneyTracks) { + props.journeyContext.journeyTracks = (req.context.page as any).resolvedJourneyTracks + } + additionalUINamespaces.push('journey_landing', 'product_landing') } else if ( currentLayoutName === 'discovery-landing' || diff --git a/tsconfig.json b/tsconfig.json index 7bc98921f899..d6800988c957 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,7 +16,7 @@ "moduleResolution": "Bundler", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "baseUrl": ".", "noEmit": true, "allowSyntheticDefaultImports": true, @@ -41,6 +41,7 @@ "**/*.ts", "**/*.tsx", "*.d.ts", - ".next/types/**/*.ts" + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts" ] }