; rel="next",
## PublicEvent
{% data reusables.webhooks.public_short_desc %}
-### Event `payload` object
+### Event `payload` object for PublicEvent
This event returns an empty `payload` object.
{% endif %}
@@ -185,7 +185,7 @@ This event returns an empty `payload` object.
{% data reusables.webhooks.events_api_payload %}
-### Event `payload` object
+### Event `payload` object for PullRequestEvent
{% data reusables.webhooks.pull_request_event_api_properties %}
{% data reusables.webhooks.pull_request_properties %}
@@ -196,7 +196,7 @@ This event returns an empty `payload` object.
{% data reusables.webhooks.events_api_payload %}
-### Event `payload` object
+### Event `payload` object for PullRequestReviewEvent
Key | Type | Description
----|------|-------------
@@ -210,7 +210,7 @@ Key | Type | Description
{% data reusables.webhooks.events_api_payload %}
-### Event `payload` object
+### Event `payload` object for PullRequestReviewCommentEvent
{% data reusables.webhooks.pull_request_review_comment_event_api_properties %}
{% data reusables.webhooks.pull_request_review_comment_properties %}
@@ -221,7 +221,7 @@ Key | Type | Description
{% data reusables.webhooks.events_api_payload %}
-### Event `payload` object
+### Event `payload` object for PullRequestReviewThreadEvent
{% data reusables.webhooks.pull_request_thread_properties %}
@@ -231,7 +231,7 @@ Key | Type | Description
{% data reusables.webhooks.events_api_payload %}
-### Event `payload` object
+### Event `payload` object for PushEvent
Key | Type | Description
----|------|-------------
@@ -256,7 +256,7 @@ Key | Type | Description
{% data reusables.webhooks.events_api_payload %}
-### Event `payload` object
+### Event `payload` object for ReleaseEvent
{% data reusables.webhooks.release_event_api_properties %}
{% data reusables.webhooks.release_properties %}
@@ -266,7 +266,7 @@ Key | Type | Description
{% data reusables.webhooks.sponsorship_short_desc %}
-### Event `payload` object
+### Event `payload` object for SponsorshipEvent
{% data reusables.webhooks.sponsorship_event_api_properties %}
{% data reusables.webhooks.sponsorship_properties %}
@@ -278,6 +278,6 @@ Key | Type | Description
{% data reusables.webhooks.events_api_payload %}
-### Event `payload` object
+### Event `payload` object for WatchEvent
{% data reusables.webhooks.watch_properties %}
diff --git a/content/developers/webhooks-and-events/events/issue-event-types.md b/content/developers/webhooks-and-events/events/issue-event-types.md
index a382c2fbb9..c49d3550bc 100644
--- a/content/developers/webhooks-and-events/events/issue-event-types.md
+++ b/content/developers/webhooks-and-events/events/issue-event-types.md
@@ -18,7 +18,7 @@ GitHub's REST API considers every pull request to be an issue, but not every iss
## Issue event object common properties
-Issue events all have the same object structure, except events that are only available in the Timeline Events API. Some events also include additional properties that provide more context about the event resources. Refer to the specific event to for details about any properties that differ from this object format.
+Issue events all have the same object structure, except events that are only available in the Timeline Events API. Some events also include additional properties that provide more context about the event resources. Refer to the specific event for details about any properties that differ from this object format.
{% data reusables.issue-events.issue-event-common-properties %}
@@ -26,13 +26,13 @@ Issue events all have the same object structure, except events that are only ava
The issue or pull request was added to a project board. {% data reusables.projects.disabled-projects %}
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for added_to_project
{% data reusables.pre-release-program.starfox-preview %}
{% data reusables.pre-release-program.api-preview-warning %}
@@ -44,13 +44,13 @@ The issue or pull request was added to a project board. {% data reusables.projec
The issue or pull request was assigned to a user.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for assigned
{% data reusables.issue-events.issue-event-common-properties %}
{% data reusables.issue-events.assignee-properties %}
@@ -59,13 +59,13 @@ The issue or pull request was assigned to a user.
GitHub unsuccessfully attempted to automatically change the base branch of the pull request.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | |
-### Event object properties
+### Properties for automatic_base_change_failed
{% data reusables.issue-events.issue-event-common-properties %}
@@ -73,13 +73,13 @@ GitHub unsuccessfully attempted to automatically change the base branch of the p
GitHub successfully attempted to automatically change the base branch of the pull request.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | |
-### Event object properties
+### Properties for automatic_base_change_succeeded
{% data reusables.issue-events.issue-event-common-properties %}
@@ -87,13 +87,13 @@ GitHub successfully attempted to automatically change the base branch of the pul
The base reference branch of the pull request changed.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | |
-### Event object properties
+### Properties for base_ref_changed
{% data reusables.issue-events.issue-event-common-properties %}
@@ -101,13 +101,13 @@ The base reference branch of the pull request changed.
The issue or pull request was closed. When the `commit_id` is present, it identifies the commit that closed the issue using "closes / fixes" syntax. For more information about the syntax, see "[Linking a pull request to an issue](/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)".
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for closed
{% data reusables.issue-events.issue-event-common-properties %}
@@ -115,13 +115,13 @@ The issue or pull request was closed. When the `commit_id` is present, it identi
A comment was added to the issue or pull request.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | | **X** |
-### Event object properties
+### Properties for commented
{% data reusables.issue-events.timeline_events_object_properties %}
@@ -144,13 +144,13 @@ Name | Type | Description
A commit was added to the pull request's `HEAD` branch.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | | **X** |
-### Event object properties
+### Properties for committed
{% data reusables.issue-events.timeline_events_object_properties %}
@@ -172,13 +172,13 @@ Name | Type | Description
The issue or pull request was linked to another issue or pull request. For more information, see "[Linking a pull request to an issue](/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue)".
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for connected
{% data reusables.issue-events.issue-event-common-properties %}
@@ -186,13 +186,13 @@ The issue or pull request was linked to another issue or pull request. For more
The pull request was converted to draft mode.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for convert_to_draft
{% data reusables.issue-events.issue-event-common-properties %}
@@ -200,13 +200,13 @@ The pull request was converted to draft mode.
The issue was created by converting a note in a project board to an issue. {% data reusables.projects.disabled-projects %}
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for converted_note_to_issue
{% data reusables.pre-release-program.starfox-preview %}
{% data reusables.pre-release-program.api-preview-warning %}
@@ -218,13 +218,13 @@ The issue was created by converting a note in a project board to an issue. {% da
The issue was closed and converted to a discussion.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|-----|-----|-----|
| | **X** | |
-### Event Object Properties
+### Properties for converted_to_discussion
{% data reusables.issue-events.issue-event-common-properties %}
@@ -232,13 +232,13 @@ The issue was closed and converted to a discussion.
The issue or pull request was referenced from another issue or pull request.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | | **X** |
-### Event object properties
+### Properties for cross-referenced
{% data reusables.issue-events.timeline_events_object_properties %}
@@ -256,13 +256,13 @@ Name | Type | Description
The issue or pull request was removed from a milestone.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for demilestoned
{% data reusables.issue-events.issue-event-common-properties %}
`milestone` | `object` | The milestone object.
@@ -272,13 +272,13 @@ The issue or pull request was removed from a milestone.
The pull request was deployed.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for deployed
{% data reusables.issue-events.issue-event-common-properties %}
@@ -286,13 +286,13 @@ The pull request was deployed.
The pull request deployment environment was changed.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | |
-### Event object properties
+### Properties for deployment_environment_changed
{% data reusables.issue-events.issue-event-common-properties %}
@@ -300,13 +300,13 @@ The pull request deployment environment was changed.
The issue or pull request was unlinked from another issue or pull request. For more information, see "[Linking a pull request to an issue](/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue)".
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for disconnected
{% data reusables.issue-events.issue-event-common-properties %}
@@ -314,13 +314,13 @@ The issue or pull request was unlinked from another issue or pull request. For m
The pull request's `HEAD` branch was deleted.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for head_ref_deleted
{% data reusables.issue-events.issue-event-common-properties %}
@@ -328,7 +328,7 @@ The pull request's `HEAD` branch was deleted.
The pull request's `HEAD` branch was restored to the last known commit.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
@@ -338,13 +338,13 @@ The pull request's `HEAD` branch was restored to the last known commit.
The pull request's HEAD branch was force pushed.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for head_ref_force_pushed
{% data reusables.issue-events.issue-event-common-properties %}
@@ -352,13 +352,13 @@ The pull request's HEAD branch was force pushed.
A label was added to the issue or pull request.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for labeled
{% data reusables.issue-events.issue-event-common-properties %}
{% data reusables.issue-events.label-properties %}
@@ -367,13 +367,13 @@ A label was added to the issue or pull request.
The issue or pull request was locked.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for locked
{% data reusables.issue-events.issue-event-common-properties %}
`lock_reason` | `string` | The reason an issue or pull request conversation was locked, if one was provided.
@@ -382,13 +382,13 @@ The issue or pull request was locked.
The `actor` was `@mentioned` in an issue or pull request body.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for mentioned
{% data reusables.issue-events.issue-event-common-properties %}
@@ -396,13 +396,13 @@ The `actor` was `@mentioned` in an issue or pull request body.
A user with write permissions marked an issue as a duplicate of another issue, or a pull request as a duplicate of another pull request.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for marked_as_duplicate
{% data reusables.issue-events.issue-event-common-properties %}
@@ -410,13 +410,13 @@ A user with write permissions marked an issue as a duplicate of another issue, o
The pull request was merged. The `commit_id` attribute is the SHA1 of the `HEAD` commit that was merged. The `commit_repository` is always the same as the main repository.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for merged
{% data reusables.issue-events.issue-event-common-properties %}
@@ -424,13 +424,13 @@ The pull request was merged. The `commit_id` attribute is the SHA1 of the `HEAD`
The issue or pull request was added to a milestone.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for milestoned
{% data reusables.issue-events.issue-event-common-properties %}
`milestone` | `object` | The milestone object.
@@ -440,13 +440,13 @@ The issue or pull request was added to a milestone.
The issue or pull request was moved between columns in a project board. {% data reusables.projects.disabled-projects %}
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for moved_columns_in_project
{% data reusables.pre-release-program.starfox-preview %}
{% data reusables.pre-release-program.api-preview-warning %}
@@ -459,13 +459,13 @@ The issue or pull request was moved between columns in a project board. {% data
The issue was pinned.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for pinned
{% data reusables.issue-events.issue-event-common-properties %}
@@ -473,13 +473,13 @@ The issue was pinned.
A draft pull request was marked as ready for review.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for ready_for_review
{% data reusables.issue-events.issue-event-common-properties %}
@@ -487,13 +487,13 @@ A draft pull request was marked as ready for review.
The issue was referenced from a commit message. The `commit_id` attribute is the commit SHA1 of where that happened and the commit_repository is where that commit was pushed.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for referenced
{% data reusables.issue-events.issue-event-common-properties %}
@@ -501,13 +501,13 @@ The issue was referenced from a commit message. The `commit_id` attribute is the
The issue or pull request was removed from a project board. {% data reusables.projects.disabled-projects %}
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for removed_from_project
{% data reusables.pre-release-program.starfox-preview %}
{% data reusables.pre-release-program.api-preview-warning %}
@@ -519,13 +519,13 @@ The issue or pull request was removed from a project board. {% data reusables.pr
The issue or pull request title was changed.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for renamed
{% data reusables.issue-events.issue-event-common-properties %}
`rename` | `object` | The name details.
@@ -536,13 +536,13 @@ The issue or pull request title was changed.
The issue or pull request was reopened.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for reopened
{% data reusables.issue-events.issue-event-common-properties %}
@@ -550,13 +550,13 @@ The issue or pull request was reopened.
The pull request review was dismissed.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for review_dismissed
{% data reusables.issue-events.issue-event-common-properties %}
{% data reusables.issue-events.review-dismissed-properties %}
@@ -565,13 +565,13 @@ The pull request review was dismissed.
A pull request review was requested.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for review_requested
{% data reusables.issue-events.issue-event-common-properties %}
{% data reusables.issue-events.review-request-properties %}
@@ -580,13 +580,13 @@ A pull request review was requested.
A pull request review request was removed.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for review_request_removed
{% data reusables.issue-events.issue-event-common-properties %}
{% data reusables.issue-events.review-request-properties %}
@@ -595,13 +595,13 @@ A pull request review request was removed.
The pull request was reviewed.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | | **X** |
-### Event object properties
+### Properties for reviewed
{% data reusables.issue-events.timeline_events_object_properties %}
@@ -624,13 +624,13 @@ Name | Type | Description
Someone subscribed to receive notifications for an issue or pull request.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for subscribed
{% data reusables.issue-events.issue-event-common-properties %}
@@ -638,13 +638,13 @@ Someone subscribed to receive notifications for an issue or pull request.
The issue was transferred to another repository.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for transferred
{% data reusables.issue-events.issue-event-common-properties %}
@@ -652,13 +652,13 @@ The issue was transferred to another repository.
A user was unassigned from the issue.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for unassigned
{% data reusables.issue-events.issue-event-common-properties %}
{% data reusables.issue-events.assignee-properties %}
@@ -667,13 +667,13 @@ A user was unassigned from the issue.
A label was removed from the issue.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for unlabeled
{% data reusables.issue-events.issue-event-common-properties %}
{% data reusables.issue-events.label-properties %}
@@ -682,13 +682,13 @@ A label was removed from the issue.
The issue was unlocked.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for unlocked
{% data reusables.issue-events.issue-event-common-properties %}
`lock_reason` | `string` | The reason an issue or pull request conversation was locked, if one was provided.
@@ -697,13 +697,13 @@ The issue was unlocked.
An issue that a user had previously marked as a duplicate of another issue is no longer considered a duplicate, or a pull request that a user had previously marked as a duplicate of another pull request is no longer considered a duplicate.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for unmarked_as_duplicate
{% data reusables.issue-events.issue-event-common-properties %}
@@ -711,13 +711,13 @@ An issue that a user had previously marked as a duplicate of another issue is no
The issue was unpinned.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for unpinned
{% data reusables.issue-events.issue-event-common-properties %}
@@ -725,13 +725,13 @@ The issue was unpinned.
Someone unsubscribed from receiving notifications for an issue or pull request.
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | | **X** |
-### Event object properties
+### Properties for unsubscribed
{% data reusables.issue-events.issue-event-common-properties %}
@@ -740,13 +740,13 @@ Someone unsubscribed from receiving notifications for an issue or pull request.
An organization owner blocked a user from the organization. This was done [through one of the blocked user's comments on the issue](/communities/maintaining-your-safety-on-github/blocking-a-user-from-your-organization#blocking-a-user-in-a-comment).
-### Availability
+This event is available for the following issue types:
|Issue type | Issue events API | Timeline events API|
|:----------|:----------------:|:-----------------:|
| | **X** | **X** |
-### Event object properties
+### Properties for user_blocked
{% data reusables.issue-events.issue-event-common-properties %}
diff --git a/content/discussions/index.md b/content/discussions/index.md
index 74bda42192..58e449560e 100644
--- a/content/discussions/index.md
+++ b/content/discussions/index.md
@@ -5,7 +5,7 @@ intro: '{% data variables.product.prodname_discussions %} is a collaborative com
introLinks:
quickstart: /discussions/quickstart
featuredLinks:
- guides:
+ startHere:
- /discussions/collaborating-with-your-community-using-discussions/about-discussions
- /discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion
- /discussions/managing-discussions-for-your-community/moderating-discussions
diff --git a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-experts.md b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-experts.md
deleted file mode 100644
index a2da8c5e3e..0000000000
--- a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-experts.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: About Campus Experts
-intro: 'As a student, learn the skills you need to build your school''s technology community and a real-world portfolio, with {% data variables.product.prodname_dotcom %} Campus Experts training.'
-redirect_from:
- - /education/teach-and-learn-with-github-education/about-campus-experts
- - /github/teaching-and-learning-with-github-education/about-campus-experts
- - /articles/about-campus-experts
- - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/about-campus-experts
-versions:
- fpt: '*'
----
-Learn public speaking skills, technical writing, community leadership, and software development skills as a {% data variables.product.prodname_dotcom %} Campus Expert.
-
-To learn more about training programs for student leaders, see "[{% data variables.product.prodname_dotcom %} Campus Experts](https://education.github.com/students/experts)."
diff --git a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-experts.md b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-experts.md
new file mode 100644
index 0000000000..06948a4475
--- /dev/null
+++ b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-experts.md
@@ -0,0 +1,38 @@
+---
+title: About GitHub Campus Experts
+intro: 'Enrich your college’s technical community by becoming a {% data variables.product.prodname_student_leader_program_singular %}.'
+redirect_from:
+ - /education/teach-and-learn-with-github-education/about-campus-experts
+ - /github/teaching-and-learning-with-github-education/about-campus-experts
+ - /articles/about-campus-experts
+ - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/about-campus-experts
+ - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-experts
+versions:
+ fpt: '*'
+shortTitle: GitHub Campus Experts Program
+---
+
+Learn the skills to build and grow diverse technology communities on campus with training, mentorship, and support from {% data variables.product.prodname_dotcom %} as part of the {% data variables.product.prodname_student_leader_program %} program. For more information on applying to the {% data variables.product.prodname_student_leader_program %}, see “[Applying to be a {% data variables.product.prodname_student_leader_program_singular %}](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert).”
+
+## About {% data variables.product.prodname_student_leader_program %}
+
+{% data variables.product.prodname_student_leader_program %} are student leaders that strive to build diverse and inclusive spaces to learn skills, share their experiences, and build projects together. {% data variables.product.prodname_student_leader_program %} can be found across the globe leading in-person and online conferences, meetups, and hackathons, and maintaining open-source projects. For more information on {% data variables.product.prodname_student_leader_program %}, go to [https://education.github.com/experts](https://education.github.com/experts).
+
+### About {% data variables.product.prodname_student_leader_program %} program training
+
+As local leaders, {% data variables.product.prodname_student_leader_program %} know the challenges students on their campuses face. Program training is the most significant benefit any student can get from the program. Over six weeks, you’ll analyze your community and gain leadership skills like public speaking, technical writing, and software development. At the end of your training, you’ll write a community impact proposal to serve as a guide for activities you've planned and goals you've set for your community. With the skills from your {% data variables.product.prodname_student_leader_program %} training, you can build a strong technical community, teach other students, create new opportunities for your student community, and position your institution within a global community of student leaders.
+
+### Contact your closest {% data variables.product.prodname_student_leader_program_singular %}
+
+Optionally, to learn more about the program, contact your closest {% data variables.product.prodname_student_leader_program_singular %}.
+
+1. Go to the “[{% data variables.product.prodname_student_leader_program %} program](https://education.github.com/students/experts)” site.
+1. Click **Find a Campus Expert**.
+1. In the “Contact your local Campus Expert” section, click **Contact us**.
+1. Hover over the map that appears, then click {% octicon "plus" aria-label="The plus icon" %} and {% octicon "dash" aria-label="The dash icon" %} or scroll in and out to find a {% data variables.product.prodname_student_leader_program_singular %} near you. {% data variables.product.prodname_student_leader_program %} are represented on the map as flags.
+1. Click a flag, then click the profile link that appears in a pop-up window.
+1. On the {% data variables.product.prodname_student_leader_program_singular %}’s profile, click a social media link to contact them.
+
+## Further reading
+
+- “[Applying to be a {% data variables.product.prodname_student_leader_program_singular %}](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert)”
diff --git a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert.md b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert.md
new file mode 100644
index 0000000000..0809e2eec6
--- /dev/null
+++ b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert.md
@@ -0,0 +1,63 @@
+---
+title: Applying to be a GitHub Campus Expert
+intro: 'As a student, you can apply to be a {% data variables.product.prodname_student_leader_program_singular %} to gain new skills and grow your college’s technical community.'
+versions:
+ fpt: '*'
+shortTitle: Apply to Campus Experts
+---
+
+## Applying to the {% data variables.product.prodname_student_leader_program %} program
+
+To apply to the {% data variables.product.prodname_student_leader_program %} program, you must first submit an application form, then submit a video resume. Applications to the program open in February and August, and you’ll have a full month to apply.
+
+{% note %}
+
+**Note:** The application process helps us get to know the applicant. Here are some things we want to learn about you:
+- Motivation: What makes you tick? What drives you?
+- Interest: Why do you want to be part of the program?
+- Growth and potential: What skills do you want to learn, and how will they help you grow personally and professionally?
+- Contribution: What impact do you want to make on your campus?
+
+{% endnote %}
+
+### Eligibility criteria
+
+To become a {% data variables.product.prodname_student_leader_program_singular %}, you must:
+
+- Be a {% data variables.product.prodname_dotcom %} user for at least six months.
+- Be at least 18 years of age.
+- Be enrolled in a post-secondary formal education institution.
+- Have more than one year left as a student before graduating.
+- Not be enrolled in the {% data variables.product.prodname_dotcom %} Campus Advisors Program.
+- Validate your student status through the [{% data variables.product.prodname_student_pack %}](https://education.github.com/pack).
+
+### Submitting your application form
+
+In the application form, we’re looking for students to tell us about the challenges their student community faces, what opportunities they want to build for their peers, and the potential they see for growth.
+1. Go to [https://education.github.com/experts](https://education.github.com/experts).
+1. To learn if applications are open, click **Become a Campus Expert** {% octicon "arrow-right" aria-label="The right arrow icon" %}.
+1. If applications are open, a new page will appear titled “Your journey starts here”. To start your application, click **Apply Now**.
+
+ Otherwise, if applications are closed, a message will appear with the dates of the next application cycle.
+1. Following the prompts in the form, complete the application.
+1. Click **Submit Application**.
+1. Optionally, to confirm your application was submitted successfully, check the email address you provided for an email confirming your submission.
+1. Two weeks after the program applications close, check for an email containing an update on your application status and instructions to submit your video resume.
+
+### Submitting your video resume
+
+In your video resume, we look forward to getting to know you as an individual.
+
+{% note %}
+
+**Note:** A video using your webcam and computer microphone is more than enough! We understand this process might not be accessible to all students. If you require an alternative method to make your submission, please reach out to the GitHub Education team.
+
+{% endnote %}
+
+1. Open the email you received after submitting your application form.
+1. Using the guidelines included in the application status email, record your video resume.
+1. Once your video is ready to be submitted, click **Upload video** at the bottom of the application status email.
+1. On the video submission form, add your email address and upload your video.
+1. Click **Submit** at the bottom of the form to send your video in for review.
+
+ After your video has been submitted, we’ll take about a week to review it. If the program is the right fit, you’ll be accepted and receive invitations to start the {% data variables.product.prodname_student_leader_program %} training and join an onboarding call.
diff --git a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/index.md b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/index.md
index 206004a52a..08a345c072 100644
--- a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/index.md
+++ b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/index.md
@@ -9,7 +9,7 @@ versions:
fpt: '*'
children:
- /about-github-campus-program
- - /about-campus-experts
+ - /about-github-campus-experts
+ - /applying-to-be-a-github-campus-expert
shortTitle: At your institution
---
-
diff --git a/content/education/guides.md b/content/education/guides.md
index 6297d01bf7..10244d575e 100644
--- a/content/education/guides.md
+++ b/content/education/guides.md
@@ -46,5 +46,6 @@ Participate in the community, get training from {% data variables.product.compan
- [{% data variables.product.prodname_education_community %}]({% data variables.product.prodname_education_forum_link %})
- [About {% data variables.product.prodname_global_campus %} for students](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-global-campus-for-students/about-github-global-campus-for-students)
-- [About Campus Experts](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/about-campus-experts)
+- [About {% data variables.product.prodname_student_leader_program %}](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-experts)
+- [Applying to be a {% data variables.product.prodname_student_leader_program_singular %}](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert)
- [Contribute with GitHub Community Exchange](/education/contribute-with-github-community-exchange)
diff --git a/content/education/index.md b/content/education/index.md
index f60de845d0..931060e0f2 100644
--- a/content/education/index.md
+++ b/content/education/index.md
@@ -5,7 +5,7 @@ intro: '{% data variables.product.prodname_education %} helps you teach or learn
introLinks:
quickstart: /education/quickstart
featuredLinks:
- guides:
+ startHere:
- education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-global-campus-for-students/apply-to-github-global-campus-as-a-student
- /education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-global-campus-for-teachers/apply-to-github-global-campus-as-a-teacher
- /education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution
diff --git a/content/get-started/index.md b/content/get-started/index.md
index 52a6cc048a..65806aa63d 100644
--- a/content/get-started/index.md
+++ b/content/get-started/index.md
@@ -25,7 +25,7 @@ layout: product-landing
introLinks:
quickstart: /get-started/quickstart
featuredLinks:
- guides:
+ startHere:
- /get-started/learning-about-github/githubs-products
- /get-started/onboarding/getting-started-with-your-github-account
- /get-started/onboarding/getting-started-with-github-team
diff --git a/content/get-started/learning-about-github/about-github-advanced-security.md b/content/get-started/learning-about-github/about-github-advanced-security.md
index 9e50914e40..2ee5f56951 100644
--- a/content/get-started/learning-about-github/about-github-advanced-security.md
+++ b/content/get-started/learning-about-github/about-github-advanced-security.md
@@ -18,7 +18,7 @@ shortTitle: GitHub Advanced Security
{% data variables.product.prodname_dotcom %} has many features that help you improve and maintain the quality of your code. Some of these are included in all plans{% ifversion not ghae %}, such as dependency graph and {% data variables.product.prodname_dependabot_alerts %}{% endif %}. Other security features require a {% data variables.product.prodname_GH_advanced_security %}{% ifversion fpt or ghec %} license to run on repositories apart from public repositories on {% data variables.product.prodname_dotcom_the_website %}{% endif %}.
-{% ifversion ghes %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% elsif ghec %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[Signing up for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security)."{% elsif ghae %}There is no charge for {% data variables.product.prodname_GH_advanced_security %} on {% data variables.product.prodname_ghe_managed %} during the beta release.{% elsif fpt %}To purchase a {% data variables.product.prodname_GH_advanced_security %} license, you must be using {% data variables.product.prodname_enterprise %}. For information about upgrading to {% data variables.product.prodname_enterprise %} with {% data variables.product.prodname_GH_advanced_security %}, see "[GitHub's products](/get-started/learning-about-github/githubs-products)" and "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% endif %}
+{% ifversion ghes %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% elsif ghec %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[Signing up for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security)."{% elsif ghae %}There is no charge for {% data variables.product.prodname_GH_advanced_security %} on {% data variables.product.prodname_ghe_managed %} during the beta release.{% elsif fpt %}To purchase a {% data variables.product.prodname_GH_advanced_security %} license, you must be using {% data variables.product.prodname_enterprise %}. For information about upgrading to {% data variables.product.prodname_enterprise %} with {% data variables.product.prodname_GH_advanced_security %}, see "[{% data variables.product.prodname_dotcom %}'s products](/get-started/learning-about-github/githubs-products)" and "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% endif %}
## About {% data variables.product.prodname_advanced_security %} features
@@ -28,7 +28,7 @@ A {% data variables.product.prodname_GH_advanced_security %} license provides th
- **{% data variables.product.prodname_secret_scanning_caps %}** - Detect secrets, for example keys and tokens, that have been checked into {% ifversion fpt %} private repositories{% else %} the repository{% endif %}. {% ifversion fpt%}{% data variables.secret-scanning.user_alerts_caps %} and {% data variables.secret-scanning.partner_alerts %} are available and free of charge for public repositories on {% data variables.product.prodname_dotcom_the_website %}.{% endif %}{% ifversion secret-scanning-push-protection %} If push protection is enabled, also detects secrets when they are pushed to your repository. For more information, see "[About {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/about-secret-scanning)" and "[Protecting pushes with {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/protecting-pushes-with-secret-scanning)."{% else %} For more information, see "[About {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/about-secret-scanning)."{% endif %}
-- **Dependency review** - Show the full impact of changes to dependencies and see details of any vulnerable versions before you merge a pull request. For more information, see "[About dependency review](/code-security/supply-chain-security/about-dependency-review)."
+- **Dependency review** - Show the full impact of changes to dependencies and see details of any vulnerable versions before you merge a pull request. For more information, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review)."
{% ifversion ghes < 3.7 or ghae %}
@@ -62,7 +62,7 @@ To learn about what you need to know to plan your {% data variables.product.prod
## Enabling {% data variables.product.prodname_advanced_security %} features
{%- ifversion ghes %}
-The site administrator must enable {% data variables.product.prodname_advanced_security %} for {% data variables.location.product_location %} before you can use these features. For more information, see "[Configuring Advanced Security features](/admin/configuration/configuring-advanced-security-features).
+The site administrator must enable {% data variables.product.prodname_advanced_security %} for {% data variables.location.product_location %} before you can use these features. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise).
Once your system is set up, you can enable and disable these features at the organization or repository level.
@@ -74,10 +74,10 @@ For other repositories, once you have a license for your enterprise account, you
{%- elsif ghae %}
You can enable and disable these features at the organization or repository level.
{%- endif %}
-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)" and "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)."
+For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)" and "[Managing security and analysis settings for your repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository)."
{% ifversion ghec or ghes %}
-If you have an enterprise account, license use for the entire enterprise is shown on your enterprise license page. For more information, see "[Viewing your {% data variables.product.prodname_GH_advanced_security %} usage](/billing/managing-licensing-for-github-advanced-security/viewing-your-github-advanced-security-usage)."
+If you have an enterprise account, license use for the entire enterprise is shown on your enterprise license page. For more information, see "[Viewing your {% data variables.product.prodname_GH_advanced_security %} usage](/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage)."
{% endif %}
{% endif %}
@@ -95,7 +95,7 @@ For more information on starter workflows, see "[Configuring {% data variables.p
{% ifversion ghec or ghes or ghae %}
## Further reading
-- "[Enforcing policies for {% data variables.product.prodname_advanced_security %} in your enterprise account](/admin/policies/enforcing-policies-for-advanced-security-in-your-enterprise)"
+- "[Enforcing policies for {% data variables.product.prodname_advanced_security %} in your enterprise account](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise)"
{% endif %}
{% endif %}
diff --git a/content/get-started/learning-about-github/access-permissions-on-github.md b/content/get-started/learning-about-github/access-permissions-on-github.md
index 8967160362..92c1571cc9 100644
--- a/content/get-started/learning-about-github/access-permissions-on-github.md
+++ b/content/get-started/learning-about-github/access-permissions-on-github.md
@@ -27,15 +27,15 @@ Roles work differently for different types of accounts. For more information abo
## Personal accounts
-A repository owned by a personal account has two permission levels: the *repository owner* and *collaborators*. For more information, see "[Permission levels for a personal account repository](/articles/permission-levels-for-a-user-account-repository)."
+A repository owned by a personal account has two permission levels: the *repository owner* and *collaborators*. For more information, see "[Permission levels for a personal account repository](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/permission-levels-for-a-personal-account-repository)."
## Organization accounts
Organization members can have *owner*{% ifversion fpt or ghec %}, *billing manager*,{% endif %} or *member* roles. Owners have complete administrative access to your organization{% ifversion fpt or ghec %}, while billing managers can manage billing settings{% endif %}. Member is the default role for everyone else. You can manage access permissions for multiple members at a time with teams. For more information, see:
- "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)"
-- "[Project board permissions for an organization](/articles/project-board-permissions-for-an-organization)"
-- "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)"
-- "[About teams](/articles/about-teams)"
+- "[Project board permissions for an organization](/organizations/managing-access-to-your-organizations-project-boards/project-board-permissions-for-an-organization)"
+- "[Repository roles for an organization](/organizations/managing-user-access-to-your-organizations-repositories/repository-roles-for-an-organization)"
+- "[About teams](/organizations/organizing-members-into-teams/about-teams)"
## Enterprise accounts
@@ -47,10 +47,10 @@ For more information about permissions for enterprise accounts, see [the {% data
*Enterprise owners* have ultimate power over the enterprise account and can take every action in the enterprise account.{% ifversion ghec or ghes %} *Billing managers* can manage your enterprise account's billing settings.{% endif %} Members and outside collaborators of organizations owned by your enterprise account are automatically members of the enterprise account, although they have no access to the enterprise account itself or its settings. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)."
{% ifversion ghec %}
-If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new personal accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.enterprise.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.enterprise.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)."
+If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new personal accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.enterprise.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.enterprise.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users)."
{% endif %}
{% endif %}
## Further reading
-- "[Types of {% data variables.product.prodname_dotcom %} accounts](/articles/types-of-github-accounts)"
+- "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)"
diff --git a/content/get-started/learning-about-github/faq-about-changes-to-githubs-plans.md b/content/get-started/learning-about-github/faq-about-changes-to-githubs-plans.md
index eada5712c9..2a282ab684 100644
--- a/content/get-started/learning-about-github/faq-about-changes-to-githubs-plans.md
+++ b/content/get-started/learning-about-github/faq-about-changes-to-githubs-plans.md
@@ -63,11 +63,11 @@ Customers who are currently paying annually for Pro and Team plans and signed up
## What is the difference between GitHub Free for individual developers and GitHub Free for organizations?
-For details on the differences for each GitHub Free product, see "[{% data variables.product.prodname_dotcom %}'s products](/articles/github-s-products)."
+For details on the differences for each GitHub Free product, see "[{% data variables.product.prodname_dotcom %}'s products](/get-started/learning-about-github/githubs-products)."
## How can I get more Actions minutes if I need more than allocated in the GitHub Team plan?
-Most small teams use fewer than 3,000 Actions minutes/month, but some teams might use more. If your team needs additional minutes for private repositories, you can increase your spending limit for GitHub Actions. Actions minutes and Packages storage are still free for your public repositories. For more information, see "[Managing your spending limit for GitHub Actions](/billing/managing-billing-for-github-actions/managing-your-spending-limit-for-github-actions)."
+Most small teams use fewer than 3,000 Actions minutes/month, but some teams might use more. If your team needs additional minutes for private repositories, you can increase your spending limit for GitHub Actions. Actions minutes and Packages storage are still free for your public repositories. For more information, see "[Managing your spending limit for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/managing-your-spending-limit-for-github-actions)."
## How do the seat limit changes affect me?
@@ -91,6 +91,6 @@ If you’re currently an invoice customer, email your sales representative for a
## How will this impact users and organizations in regions where U.S. government sanctions are applied?
-Due to U.S. trade controls law restrictions, GitHub is unable to provide private repository services and paid services to accounts in U.S. sanctioned regions. GitHub has preserved, however, access to free public repository services. Please read about [GitHub and Trade Controls](/free-pro-team@latest/github/site-policy/github-and-trade-controls) for more information.
+Due to U.S. trade controls law restrictions, GitHub is unable to provide private repository services and paid services to accounts in U.S. sanctioned regions. GitHub has preserved, however, access to free public repository services. Please read about [GitHub and Trade Controls](/free-pro-team@latest/site-policy/other-site-policies/github-and-trade-controls) for more information.
GitHub will continue advocating with U.S. regulators for the greatest possible access to free code collaboration services to developers in sanctioned regions, including free private repositories. We believe that offering those free services supports U.S. foreign policy of encouraging the free flow of information and free speech in those regions.
diff --git a/content/get-started/learning-about-github/github-language-support.md b/content/get-started/learning-about-github/github-language-support.md
index 70d4abc463..fdb1ce8630 100644
--- a/content/get-started/learning-about-github/github-language-support.md
+++ b/content/get-started/learning-about-github/github-language-support.md
@@ -16,7 +16,7 @@ redirect_from:
## About supported languages
-Most {% data variables.product.prodname_dotcom %} features work regardless of which languages your code is written in. You can search for code or enable syntax highlighting based on any language known to {% data variables.product.prodname_dotcom %}. For more information, see "[Searching code](/github/searching-for-information-on-github/searching-code#search-by-language)" or "[Creating and highlighting code blocks](/github/writing-on-github/creating-and-highlighting-code-blocks#syntax-highlighting)."
+Most {% data variables.product.prodname_dotcom %} features work regardless of which languages your code is written in. You can search for code or enable syntax highlighting based on any language known to {% data variables.product.prodname_dotcom %}. For more information, see "[Searching code](/search-github/searching-on-github/searching-code#search-by-language)" or "[Creating and highlighting code blocks](/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks#syntax-highlighting)."
Some {% data variables.product.prodname_dotcom %} products have features that are currently only supported for a subset of programming languages.
diff --git a/content/get-started/learning-about-github/githubs-products.md b/content/get-started/learning-about-github/githubs-products.md
index 53b7ebe918..67b8fa98e1 100644
--- a/content/get-started/learning-about-github/githubs-products.md
+++ b/content/get-started/learning-about-github/githubs-products.md
@@ -105,14 +105,14 @@ In addition to the features available with {% data variables.product.prodname_te
- Authentication with SAML single sign-on
- Access provisioning with SAML or SCIM
- {% data variables.product.prodname_github_connect %}
-- The option to purchase {% data variables.product.prodname_GH_advanced_security %}. For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/github/getting-started-with-github/about-github-advanced-security)."
+- The option to purchase {% data variables.product.prodname_GH_advanced_security %}. For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security)."
{% data variables.product.prodname_ghe_cloud %} specifically includes:
- 50,000 {% data variables.product.prodname_actions %} minutes per month
- 50 GB {% data variables.product.prodname_registry %} storage
- A service level agreement for 99.9% monthly uptime
- The option to centrally manage policy and billing for multiple {% data variables.product.prodname_dotcom_the_website %} organizations with an enterprise account. For more information, see "[About enterprise accounts](/enterprise-cloud@latest/admin/overview/about-enterprise-accounts)."
-- The option to provision and manage the user accounts for your developers, by using {% data variables.product.prodname_emus %}. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)."
+- The option to provision and manage the user accounts for your developers, by using {% data variables.product.prodname_emus %}. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users)."
You can set up trials to evaluate {% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_ghe_server %}. For more information, see "[Setting up a trial of {% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-cloud)" and "[Setting up a trial of {% data variables.product.prodname_ghe_server %}](/enterprise-server@latest/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-server)."
diff --git a/content/get-started/learning-about-github/types-of-github-accounts.md b/content/get-started/learning-about-github/types-of-github-accounts.md
index 70b4afd8f5..63ee918b28 100644
--- a/content/get-started/learning-about-github/types-of-github-accounts.md
+++ b/content/get-started/learning-about-github/types-of-github-accounts.md
@@ -37,7 +37,7 @@ Every person who uses {% data variables.location.product_location %} signs into
Your personal account can own resources such as repositories, packages, and projects. Any time you take any action on {% data variables.location.product_location %}, such as creating an issue or reviewing a pull request, the action is attributed to your personal account.
-{% ifversion fpt or ghec %}Each personal account uses either {% data variables.product.prodname_free_user %} or {% data variables.product.prodname_pro %}. All personal accounts can own an unlimited number of public and private repositories, with an unlimited number of collaborators on those repositories. If you use {% data variables.product.prodname_free_user %}, private repositories owned by your personal account have a limited feature set. You can upgrade to {% data variables.product.prodname_pro %} to get a full feature set for private repositories. For more information, see "[{% data variables.product.prodname_dotcom %}'s products](/articles/githubs-products)." {% else %}You can create an unlimited number of repositories owned by your personal account, with an unlimited number of collaborators on those repositories.{% endif %}
+{% ifversion fpt or ghec %}Each personal account uses either {% data variables.product.prodname_free_user %} or {% data variables.product.prodname_pro %}. All personal accounts can own an unlimited number of public and private repositories, with an unlimited number of collaborators on those repositories. If you use {% data variables.product.prodname_free_user %}, private repositories owned by your personal account have a limited feature set. You can upgrade to {% data variables.product.prodname_pro %} to get a full feature set for private repositories. For more information, see "[{% data variables.product.prodname_dotcom %}'s products](/get-started/learning-about-github/githubs-products)." {% else %}You can create an unlimited number of repositories owned by your personal account, with an unlimited number of collaborators on those repositories.{% endif %}
{% tip %}
@@ -46,7 +46,7 @@ Your personal account can own resources such as repositories, packages, and proj
{% endtip %}
{% ifversion fpt or ghec %}
-Most people will use one personal account for all their work on {% data variables.product.prodname_dotcom_the_website %}, including both open source projects and paid employment. If you're currently using more than one personal account that you created for yourself, we suggest combining the accounts. For more information, see "[Merging multiple personal accounts](/articles/merging-multiple-user-accounts)."
+Most people will use one personal account for all their work on {% data variables.product.prodname_dotcom_the_website %}, including both open source projects and paid employment. If you're currently using more than one personal account that you created for yourself, we suggest combining the accounts. For more information, see "[Merging multiple personal accounts](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/merging-multiple-personal-accounts)."
{% endif %}
## Organization accounts
@@ -62,7 +62,7 @@ The personal accounts within an organization can be given different roles in the
{% ifversion fpt or ghec %}
Even if you're a member of an organization that uses SAML single sign-on, you will still sign into your own personal account on {% data variables.product.prodname_dotcom_the_website %}, and that personal account will be linked to your identity in your organization's identity provider (IdP). For more information, see "[About authentication with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation{% else %}."{% endif %}
-However, if you're a member of an enterprise that uses {% data variables.product.prodname_emus %}, instead of using a personal account that you created, a new account will be provisioned for you by the enterprise's IdP. To access any organizations owned by that enterprise, you must authenticate using their IdP instead of a {% data variables.product.prodname_dotcom_the_website %} username and password. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}
+However, if you're a member of an enterprise that uses {% data variables.product.prodname_emus %}, instead of using a personal account that you created, a new account will be provisioned for you by the enterprise's IdP. To access any organizations owned by that enterprise, you must authenticate using their IdP instead of a {% data variables.product.prodname_dotcom_the_website %} username and password. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}
{% endif %}
You can also create nested sub-groups of organization members called teams, to reflect your group's structure and simplify access management. For more information, see "[About teams](/organizations/organizing-members-into-teams/about-teams)."
@@ -84,6 +84,6 @@ Your enterprise account is a collection of all the organizations {% ifversion gh
## Further reading
{% ifversion fpt or ghec %}
-- "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/articles/signing-up-for-a-new-github-account)"{% endif %}
-- "[Creating a new organization account](/articles/creating-a-new-organization-account)"
+- "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/get-started/signing-up-for-github/signing-up-for-a-new-github-account)"{% endif %}
+- "[Creating a new organization from scratch](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)"
- [Organizing people for successful collaboration](https://vimeo.com/333786093) video in {% data variables.product.company_short %} Resources
diff --git a/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md b/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md
index 27fffa2f10..a02a2a3e5e 100644
--- a/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md
+++ b/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md
@@ -44,7 +44,7 @@ If you create a new clone of the repository, you won't lose any of your Git hist
{% endwindows %}
```shell
- $ git filter-repo --path FOLDER-NAME1/ --path FOLDER-NAME2/
+ $ git filter-repo --path FOLDER-NAME/
# Filter the specified branch in your directory and remove empty commits
> Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89)
> Ref 'refs/heads/BRANCH-NAME' was rewritten
diff --git a/content/get-started/using-github/github-command-palette.md b/content/get-started/using-github/github-command-palette.md
index a634ee7f40..bd5c18c0db 100644
--- a/content/get-started/using-github/github-command-palette.md
+++ b/content/get-started/using-github/github-command-palette.md
@@ -40,7 +40,7 @@ When you open the command palette, it shows your location at the top left and us
**Notes:**
- If you are editing Markdown text, open the command palette with Ctrl+Alt+K (Windows and Linux) or Command+Option+K (Mac).{% ifversion projects-v2 %}
-- If you are working on a {% data variables.projects.project_v2 %}, a project-specific command palette is displayed instead. For more information, see "[Customizing a view](/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-a-view)."{% endif %}
+- If you are working on a {% data variables.projects.project_v2 %}, a project-specific command palette is displayed instead. For more information, see "[Customizing a view](/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/changing-the-layout-of-a-view)."{% endif %}
{% endnote %}
@@ -219,11 +219,11 @@ These commands are available only when you open the command palette from a pull
| Command | Behavior|
| :- | :- |
-|`Close`/`reopen pull request`|Close or reopen the current pull request. For more information, see "[About pull requests](/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)."|
-|`Convert to draft`/`Mark pull request as ready for review`|Change the state of the pull request to show it as ready, or not ready, for review. For more information, see "[Changing the state of a pull request](/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request)."|
+|`Close`/`reopen pull request`|Close or reopen the current pull request. For more information, see "[About pull requests](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)."|
+|`Convert to draft`/`Mark pull request as ready for review`|Change the state of the pull request to show it as ready, or not ready, for review. For more information, see "[Changing the state of a pull request](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request)."|
|`Copy current branch name`| Add the name of the head branch for the pull request to the clipboard.
|`Edit pull request body`|Open the main body of the pull request ready for editing.
|`Edit pull request title`|Open the title of the pull request ready for editing.
|`Open in new codespace`|Create and open a codespace for the head branch of the pull request. For more information, see "[Creating a codespace for a repository](/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository)."
|`Subscribe`/`unsubscribe`|Opt in or out of notifications for changes to this pull request. For more information, see "[About notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications)."
-|`Update current branch`|Update the head branch of the pull request with changes from the base branch. This is available only for pull requests that target the default branch of the repository. For more information, see "[About branches](/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches)."|
+|`Update current branch`|Update the head branch of the pull request with changes from the base branch. This is available only for pull requests that target the default branch of the repository. For more information, see "[About branches](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches)."|
diff --git a/content/get-started/using-github/github-mobile.md b/content/get-started/using-github/github-mobile.md
index 74cd8e8b2a..34d4634022 100644
--- a/content/get-started/using-github/github-mobile.md
+++ b/content/get-started/using-github/github-mobile.md
@@ -29,9 +29,9 @@ With {% data variables.product.prodname_mobile %} you can:
{% ifversion fpt or ghec %}- Secure your GitHub.com account with two-factor authentication
- Verify your sign in attempts on unrecognized devices{% endif %}
-For more information about notifications for {% data variables.product.prodname_mobile %}, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#enabling-push-notifications-with-github-mobile)."
+For more information about notifications for {% data variables.product.prodname_mobile %}, see "[Configuring notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#enabling-push-notifications-with-github-mobile)."
-{% ifversion fpt or ghec %}- For more information on two-factor authentication using {% data variables.product.prodname_mobile %}, see "[Configuring {% data variables.product.prodname_mobile %}](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication#configuring-two-factor-authentication-using-github-mobile) and [Authenticating using {% data variables.product.prodname_mobile %}](/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication##verifying-with-github-mobile)." {% endif %}
+{% ifversion fpt or ghec %}- For more information on two-factor authentication using {% data variables.product.prodname_mobile %}, see "[Configuring {% data variables.product.prodname_mobile %}](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication#configuring-two-factor-authentication-using-github-mobile) and [Authenticating using {% data variables.product.prodname_mobile %}](/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication#verifying-with-github-mobile)." {% endif %}
## Installing {% data variables.product.prodname_mobile %}
@@ -49,7 +49,7 @@ You can be simultaneously signed into mobile with one personal account on {% dat
You must install {% data variables.product.prodname_mobile %} 1.4 or later on your device to use {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}.
-To use {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}, {% data variables.location.product_location %} must be version 3.0 or greater, and your enterprise owner must enable mobile support for your enterprise. For more information, see {% ifversion ghes %}"[Release notes](/enterprise-server/admin/release-notes)" and {% endif %}"[Managing {% data variables.product.prodname_mobile %} for your enterprise]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %}
+To use {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}, {% data variables.location.product_location %} must be version 3.0 or greater, and your enterprise owner must enable mobile support for your enterprise. For more information, see {% ifversion ghes %}"[Release notes](/admin/release-notes)" and {% endif %}"[Managing {% data variables.product.prodname_mobile %} for your enterprise]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %}
During the beta for {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}, you must be signed in with a personal account on {% data variables.product.prodname_dotcom_the_website %}.
diff --git a/content/get-started/using-github/keyboard-shortcuts.md b/content/get-started/using-github/keyboard-shortcuts.md
index e8960f8a57..de716b7b32 100644
--- a/content/get-started/using-github/keyboard-shortcuts.md
+++ b/content/get-started/using-github/keyboard-shortcuts.md
@@ -31,7 +31,7 @@ The following sections list some of the available keyboard shortcuts, organized
| Keyboard shortcut | Description
|-----------|------------
|S or / | Focus the search bar. For more information, see "[About searching on {% data variables.product.company_short %}](/search-github/getting-started-with-searching-on-github/about-searching-on-github)."
-|G N | Go to your notifications. For more information, see "[About notifications](/github/managing-subscriptions-and-notifications-on-github/about-notifications)."
+|G N | Go to your notifications. For more information, see "[About notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications)."
|Esc | When focused on a user, issue, or pull request hovercard, closes the hovercard and refocuses on the element the hovercard is in
{% ifversion command-palette %}|Command+K (Mac) or Ctrl+K (Windows/Linux) | Opens the {% data variables.product.prodname_command_palette %}. If you are editing Markdown text, open the command palette with Command+Option+K or Ctrl+Alt+K. For more information, see "[{% data variables.product.prodname_command_palette %}](/get-started/using-github/github-command-palette)."{% endif %}
@@ -40,10 +40,10 @@ The following sections list some of the available keyboard shortcuts, organized
| Keyboard shortcut | Description
|-----------|------------
|G C | Go to the **Code** tab
-|G I | Go to the **Issues** tab. For more information, see "[About issues](/articles/about-issues)."
+|G I | Go to the **Issues** tab. For more information, see "[About issues](/issues/tracking-your-work-with-issues/about-issues)."
|G P | Go to the **Pull requests** tab. For more information, see "[About pull requests](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)."{% ifversion fpt or ghes or ghec %}
-|G A | Go to the **Actions** tab. For more information, see "[About Actions](/actions/getting-started-with-github-actions/about-github-actions)."{% endif %}
-|G B | Go to the **Projects** tab. For more information, see "[About project boards](/articles/about-project-boards)."
+|G A | Go to the **Actions** tab. For more information, see "[About Actions](/actions/learn-github-actions)."{% endif %}
+|G B | Go to the **Projects** tab. For more information, see "[About project boards](/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)."
|G W | Go to the **Wiki** tab. For more information, see "[About wikis](/communities/documenting-your-project-with-wikis/about-wikis)."{% ifversion discussions %}
|G G | Go to the **Discussions** tab. For more information, see "[About discussions](/discussions/collaborating-with-your-community-using-discussions/about-discussions)."{% endif %}
@@ -80,10 +80,10 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr
|T | Activates the file finder
|L | Jump to a line in your code
|W | Switch to a new branch or tag
-|Y | Expand a URL to its canonical form. For more information, see "[Getting permanent links to files](/articles/getting-permanent-links-to-files)."
-|I | Show or hide comments on diffs. For more information, see "[Commenting on the diff of a pull request](/articles/commenting-on-the-diff-of-a-pull-request)."
+|Y | Expand a URL to its canonical form. For more information, see "[Getting permanent links to files](/repositories/working-with-files/using-files/getting-permanent-links-to-files)."
+|I | Show or hide comments on diffs. For more information, see "[Commenting on a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request)."
|A | Show or hide annotations on diffs
-|B | Open blame view. For more information, see "[Tracing changes in a file](/articles/tracing-changes-in-a-file)."
+|B | Open blame view. For more information, see "[Viewing a file](/repositories/working-with-files/using-files/viewing-a-file)."
## Comments
@@ -100,10 +100,10 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr
|Command+Shift+7 (Mac) or Ctrl+Shift+7 (Windows/Linux) | Inserts Markdown formatting for an ordered list
|Command+Shift+8 (Mac) or Ctrl+Shift+8 (Windows/Linux) | Inserts Markdown formatting for an unordered list
|Command+Enter (Mac) or Ctrl+Enter (Windows/Linux) | Submits a comment
-|Ctrl+. and then Ctrl+[saved reply number] | Opens saved replies menu and then autofills comment field with a saved reply. For more information, see "[About saved replies](/articles/about-saved-replies)."
+|Ctrl+. and then Ctrl+[saved reply number] | Opens saved replies menu and then autofills comment field with a saved reply. For more information, see "[About saved replies](/get-started/writing-on-github/working-with-saved-replies/about-saved-replies)."
|Command+Shift+. (Mac) or Ctrl+Shift+. (Windows/Linux) | Inserts Markdown formatting for a quote{% ifversion fpt or ghec %}
|Command+G (Mac) or Ctrl+G (Windows/Linux) | Insert a suggestion. 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)." |{% endif %}
-|R | Quote the selected text in your reply. For more information, see "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax#quoting-text)." |
+|R | Quote the selected text in your reply. For more information, see "[Basic writing and formatting syntax](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#quoting-text)." |
## Issue and pull request lists
@@ -112,24 +112,24 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr
|C | Create an issue
|Command+/ (Mac) or Ctrl+/ (Windows/Linux) | Focus your cursor on the issues or pull requests search bar. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)."||
|U | Filter by author
-|L | Filter by or edit labels. For more information, see "[Filtering issues and pull requests by labels](/articles/filtering-issues-and-pull-requests-by-labels)."
-|Alt and click | While filtering by labels, exclude labels. For more information, see "[Filtering issues and pull requests by labels](/articles/filtering-issues-and-pull-requests-by-labels)."
-|M | Filter by or edit milestones. For more information, see "[Filtering issues and pull requests by milestone](/articles/filtering-issues-and-pull-requests-by-milestone)."
-|A | Filter by or edit assignee. For more information, see "[Filtering issues and pull requests by assignees](/articles/filtering-issues-and-pull-requests-by-assignees)."
+|L | Filter by or edit labels. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)."
+|Alt and click | While filtering by labels, exclude labels. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)."
+|M | Filter by or edit milestones. For more information, see "[Filtering issues and pull requests by milestone](/issues/using-labels-and-milestones-to-track-work/filtering-issues-and-pull-requests-by-milestone)."
+|A | Filter by or edit assignee. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)."
|O or Enter | Open issue
## Issues and pull requests
| Keyboard shortcut | Description
|-----------|------------
-|Q | Request a reviewer. For more information, see "[Requesting a pull request review](/articles/requesting-a-pull-request-review/)."
-|M | Set a milestone. For more information, see "[Associating milestones with issues and pull requests](/articles/associating-milestones-with-issues-and-pull-requests/)."
-|L | Apply a label. For more information, see "[Applying labels to issues and pull requests](/articles/applying-labels-to-issues-and-pull-requests/)."
-|A | Set an assignee. For more information, see "[Assigning issues and pull requests to other {% data variables.product.company_short %} users](/articles/assigning-issues-and-pull-requests-to-other-github-users/)."
-|X | Link an issue or pull request from the same repository. For more information, see "[Linking a pull request to an issue](/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue/)."
+|Q | Request a reviewer. 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)."
+|M | Set a milestone. For more information, see "[Associating milestones with issues and pull requests](/issues/using-labels-and-milestones-to-track-work/associating-milestones-with-issues-and-pull-requests)."
+|L | Apply a label. For more information, see "[Managing labels](/issues/using-labels-and-milestones-to-track-work/managing-labels#applying-a-label)."
+|A | Set an assignee. For more information, see "[Assigning issues and pull requests to other {% data variables.product.company_short %} users](/issues/tracking-your-work-with-issues/assigning-issues-and-pull-requests-to-other-github-users)."
+|X | Link an issue or pull request from the same repository. For more information, see "[Linking a pull request to an issue](/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)."
|Command+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux) | Toggles between the **Write** and **Preview** tabs{% ifversion fpt or ghec %}
-|Alt and click | When creating an issue from a task list, open the new issue form in the current tab by holding Alt and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."
-|Shift and click | When creating an issue from a task list, open the new issue form in a new tab by holding Shift and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."
-|Command and click (Mac) or Ctrl+Shift and click (Windows/Linux) | When creating an issue from a task list, open the new issue form in the new window by holding Command or Ctrl+Shift and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."{% endif %}
+|Alt and click | When creating an issue from a task list, open the new issue form in the current tab by holding Alt and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists)."
+|Shift and click | When creating an issue from a task list, open the new issue form in a new tab by holding Shift and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists)."
+|Command and click (Mac) or Ctrl+Shift and click (Windows/Linux) | When creating an issue from a task list, open the new issue form in the new window by holding Command or Ctrl+Shift and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists)."{% endif %}
## "Files changed" tab in pull requests
@@ -139,7 +139,7 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr
|T | Move your cursor to the "Filter changed files" field
|Command+Shift+Enter (Mac) or Ctrl+Shift+Enter (Windows/Linux) | Submit a review comment |
|Option and click (Mac) or Alt and click (Windows/Linux) | Toggle between collapsing and expanding all outdated or resolved review comments in a pull request (for example, by holding down Alt and clicking **Show outdated** or **Hide outdated**) |
-|Click, then Shift and click | Comment on multiple lines of a pull request by clicking a line number, holding Shift, then clicking another line number. For more information, see "[Commenting on a pull request](/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)."|
+|Click, then Shift and click | Comment on multiple lines of a pull request by clicking a line number, holding Shift, then clicking another line number. For more information, see "[Commenting on a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)."|
{% ifversion projects-v2 %}
diff --git a/content/get-started/using-github/troubleshooting-connectivity-problems.md b/content/get-started/using-github/troubleshooting-connectivity-problems.md
index bdd31c3320..0034cf1c9b 100644
--- a/content/get-started/using-github/troubleshooting-connectivity-problems.md
+++ b/content/get-started/using-github/troubleshooting-connectivity-problems.md
@@ -14,7 +14,7 @@ Most often, connection problems occur because a firewall, proxy server, corporat
## Allowing {% data variables.product.prodname_dotcom %}'s IP addresses
-Make sure your network is configured to allow {% data variables.product.prodname_dotcom %}'s IP addresses. For more information, see "[About {% data variables.product.prodname_dotcom %}'s IP addresses](/articles/about-github-s-ip-addresses)."
+Make sure your network is configured to allow {% data variables.product.prodname_dotcom %}'s IP addresses. For more information, see "[About {% data variables.product.prodname_dotcom %}'s IP addresses](/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses)."
## Using a company or organization's network
@@ -24,7 +24,7 @@ If you're having connectivity problems on your company or organization's network
If you're unable to verify with the captcha:
- Ensure JavaScript is enabled on your browser.
-- Ensure your browser is supported. If your browser isn't supported, upgrade your browser or install a supported browser. For a list of supported browsers, see "[Supported browsers](/articles/supported-browsers)."
+- Ensure your browser is supported. If your browser isn't supported, upgrade your browser or install a supported browser. For a list of supported browsers, see "[Supported browsers](/get-started/using-github/supported-browsers)."
- Ensure your network configuration is not blocking https://octocaptcha.com/ or https://arkoselabs.com/. If you're behind a corporate firewall, contact your IT administrator to allow those domains. To verify access to these domains, visit https://octocaptcha.com/test and ensure the text "Connection successfully made!" is displayed, then visit https://client-demo.arkoselabs.com/github and ensure you are able to load the captcha.
- Ensure your browser does not have plug-ins or extensions that may be interfering with GitHub. If so, temporarily disable the plug-ins or extensions during captcha verification.
@@ -34,7 +34,7 @@ Switching from cloning via SSH to cloning via HTTPS, or vice versa may improve c
If you prefer to use SSH but the port is blocked, you can use an alternative port. For more information, see "[Using SSH over the HTTPS port](/authentication/troubleshooting-ssh/using-ssh-over-the-https-port)".
-If you're encountering timeouts with SSH, see "[Error: Bad file number](/articles/error-bad-file-number)."
+If you're encountering timeouts with SSH, see "[Error: Bad file number](/authentication/troubleshooting-ssh/error-bad-file-number)."
## Troubleshooting slow downloads and intermittent slow connections
diff --git a/content/github-cli/index.md b/content/github-cli/index.md
index 31e6a7c123..936c8c5b38 100644
--- a/content/github-cli/index.md
+++ b/content/github-cli/index.md
@@ -14,7 +14,7 @@ introLinks:
quickstart: /github-cli/github-cli/quickstart
reference: /github-cli/github-cli/github-cli-reference
featuredLinks:
- guides:
+ startHere:
- /github-cli/github-cli/creating-github-cli-extensions
- /github-cli/github-cli/using-github-cli-extensions
- /actions/using-workflows/using-github-cli-in-workflows
diff --git a/content/graphql/index.md b/content/graphql/index.md
index dd53bd6357..c4403abd60 100644
--- a/content/graphql/index.md
+++ b/content/graphql/index.md
@@ -5,7 +5,7 @@ shortTitle: GraphQL API
introLinks:
overview: /graphql/overview/about-the-graphql-api
featuredLinks:
- guides:
+ startHere:
- /graphql/guides/forming-calls-with-graphql
- /graphql/guides/introduction-to-graphql
- /graphql/guides/using-the-explorer
diff --git a/content/issues/index.md b/content/issues/index.md
index f2d6365fbb..8cbbcd0723 100644
--- a/content/issues/index.md
+++ b/content/issues/index.md
@@ -6,7 +6,7 @@ introLinks:
overview: /issues/tracking-your-work-with-issues/about-issues
quickstart: /issues/tracking-your-work-with-issues/quickstart
featuredLinks:
- guides:
+ startHere:
- /issues/tracking-your-work-with-issues/creating-an-issue
- /issues/planning-and-tracking-with-projects/learning-about-projects/quickstart-for-projects
- /issues/planning-and-tracking-with-projects/learning-about-projects/best-practices-for-projects
diff --git a/content/organizations/index.md b/content/organizations/index.md
index 652c907aca..98ed7fe1a3 100644
--- a/content/organizations/index.md
+++ b/content/organizations/index.md
@@ -9,7 +9,7 @@ redirect_from:
introLinks:
overview: /organizations/collaborating-with-groups-in-organizations/about-organizations
featuredLinks:
- guides:
+ startHere:
- /get-started/learning-about-github/types-of-github-accounts
- /organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization
- /organizations/organizing-members-into-teams/about-teams
diff --git a/content/packages/index.md b/content/packages/index.md
index 135fbcf6bc..b3a0a13866 100644
--- a/content/packages/index.md
+++ b/content/packages/index.md
@@ -6,7 +6,7 @@ introLinks:
quickstart: /packages/quickstart
reference: /packages/manage-packages
featuredLinks:
- guides:
+ startHere:
- /packages/learn-github-packages
- /packages/managing-github-packages-using-github-actions-workflows
- /packages/learn-github-packages/installing-a-package
diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md
index 51e552ba91..c4a3042480 100644
--- a/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md
+++ b/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md
@@ -97,12 +97,24 @@ $ npm login --scope=@OWNER --auth-type=legacy --registry=https://HOSTNAME/_regis
## Publishing a package
+{% ifversion packages-npm-v2 %}
+{% note %}
+
+**Note:**
+
+- Package names and scopes must only use lowercase letters.
+- The tarball for an npm version must be smaller than 256MB in size.
+
+{% endnote %}
+{% else %}
{% note %}
**Note:** Package names and scopes must only use lowercase letters.
{% endnote %}
+{% endif %}
+
{% ifversion packages-npm-v2 %}
The {% data variables.product.prodname_registry %} registry stores npm packages within your organization or personal account, and allows you to associate a package with a repository. You can choose whether to inherit permissions from a repository, or set granular permissions independently of a repository.
diff --git a/content/pages/index.md b/content/pages/index.md
index 19adbee123..0015c38cb2 100644
--- a/content/pages/index.md
+++ b/content/pages/index.md
@@ -6,7 +6,7 @@ introLinks:
quickstart: /pages/quickstart
overview: /pages/getting-started-with-github-pages/about-github-pages
featuredLinks:
- guides:
+ startHere:
- /pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site
- /pages/getting-started-with-github-pages/creating-a-github-pages-site
- '{% ifversion fpt or ghec %}/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site{% endif %}'
diff --git a/content/pull-requests/index.md b/content/pull-requests/index.md
index 8d7d2bc412..7e3908af44 100644
--- a/content/pull-requests/index.md
+++ b/content/pull-requests/index.md
@@ -4,7 +4,7 @@ intro: 'Learn how to use pull requests to suggest changes to a project, receive
introLinks:
overview: /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests
featuredLinks:
- guides:
+ startHere:
- /pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message
- /pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line
- /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository
diff --git a/content/repositories/index.md b/content/repositories/index.md
index 21d934c624..ecd3f0dedc 100644
--- a/content/repositories/index.md
+++ b/content/repositories/index.md
@@ -5,7 +5,7 @@ introLinks:
quickstart: /get-started/quickstart/create-a-repo
overview: /repositories/creating-and-managing-repositories/about-repositories
featuredLinks:
- guides:
+ startHere:
- /repositories/creating-and-managing-repositories/cloning-a-repository
- /repositories/creating-and-managing-repositories/restoring-a-deleted-repository
- /repositories/working-with-files/managing-files/adding-a-file-to-a-repository
diff --git a/content/rest/actions/self-hosted-runners.md b/content/rest/actions/self-hosted-runners.md
index 7df45d9eee..8a9e027ee7 100644
--- a/content/rest/actions/self-hosted-runners.md
+++ b/content/rest/actions/self-hosted-runners.md
@@ -14,4 +14,4 @@ versions:
You can use the REST API to register, view, and delete self-hosted runners in {% data variables.product.prodname_actions %}. {% data reusables.actions.about-self-hosted-runners %} For more information, see "[Hosting your own runners](/actions/hosting-your-own-runners)."
-{% data reusables.actions.actions-authentication %} {% data variables.product.prodname_github_apps %} must have the `administration` permission for repositories the `organization_self_hosted_runners` permission for organizations. Authenticated users must have admin access to repositories or organizations, or the `manage_runners:enterprise` scope for enterprises to use these endpoints.
+{% data reusables.actions.actions-authentication %} {% data variables.product.prodname_github_apps %} must have the `administration` permission for repositories and the `organization_self_hosted_runners` permission for organizations. Authenticated users must have admin access to repositories or organizations, or the `manage_runners:enterprise` scope for enterprises to use these endpoints.
diff --git a/content/rest/index.md b/content/rest/index.md
index aa1f4b6c48..552d5fe041 100644
--- a/content/rest/index.md
+++ b/content/rest/index.md
@@ -6,7 +6,7 @@ introLinks:
quickstart: /rest/quickstart
overview: /rest/guides/getting-started-with-the-rest-api
featuredLinks:
- guides:
+ startHere:
- /rest/guides/getting-started-with-the-rest-api
- /rest/guides/basics-of-authentication
- /rest/guides/best-practices-for-integrators
diff --git a/content/rest/overview/media-types.md b/content/rest/overview/media-types.md
index 8bdb3aff9c..d6eb3d162d 100644
--- a/content/rest/overview/media-types.md
+++ b/content/rest/overview/media-types.md
@@ -43,28 +43,28 @@ put it after `github`:
The body of a comment can be written in [{% data variables.product.prodname_dotcom %} Flavored Markdown][gfm]. The APIs to manage [issues](/rest/reference/issues), [issue comments](/rest/reference/issues#comments), [pull request comments](/rest/reference/pulls#comments), and [gist comments](/rest/reference/gists#comments) all accept these same media types:
-### Raw
+### Raw media type for comment body properties
application/vnd.github.raw+json
Return the raw markdown body. Response will include `body`. This is the
default if you do not pass any specific media type.
-### Text
+### Text media type for comment body properties
application/vnd.github.text+json
Return a text only representation of the markdown body. Response will
include `body_text`.
-### HTML
+### HTML media type for comment body properties
application/vnd.github.html+json
Return HTML rendered from the body's markdown. Response will include
`body_html`.
-### Full
+### Full media type for comment body properties
application/vnd.github.full+json
@@ -75,7 +75,7 @@ Return raw, text and HTML representations. Response will include `body`,
The following media types are allowed when [getting a blob](/rest/reference/git#get-a-blob):
-### JSON
+### JSON media type for Git blob properties
application/vnd.github+json
application/json
@@ -83,7 +83,7 @@ The following media types are allowed when [getting a blob](/rest/reference/git#
Return JSON representation of the blob with `content` as a base64
encoded string. This is the default if nothing is passed.
-### Raw
+### Raw media type for Git blob properties
application/vnd.github.raw
@@ -93,27 +93,27 @@ Return the raw blob data.
The REST API to manage [commits](/rest/reference/repos#commits) and [pull requests](/rest/reference/pulls) support [diff][git-diff] and [patch][git-patch] formats:
-### diff
+### diff media type for commits, commit comparison, and pull requests
application/vnd.github.diff
-### patch
+### patch media type for commits, commit comparison, and pull requests
application/vnd.github.patch
-### sha
+### sha media type for commits, commit comparison, and pull requests
application/vnd.github.sha
## Repository contents
-### Raw
+### Raw media type for repository contents
application/vnd.github.raw
Return the raw contents of a file. This is the default if you do not pass any specific media type.
-### HTML
+### HTML media type for repository contents
application/vnd.github.html
@@ -121,13 +121,13 @@ For markup files such as Markdown or AsciiDoc, you can retrieve the rendered HTM
## Gists
-### Raw
+### Raw media type for gists
application/vnd.github.raw
Return the raw contents of a gist. This is the default if you do not pass any specific media type.
-### base64
+### base64 media type for gists
application/vnd.github.base64
diff --git a/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md b/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md
index 0174fae54a..9304c84b09 100644
--- a/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md
+++ b/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md
@@ -49,7 +49,7 @@ Query | Example
------------- | -------------
>YYYY-MM-DD | **[cats created:>2016-04-29](https://github.com/search?utf8=%E2%9C%93&q=cats+created%3A%3E2016-04-29&type=Issues)** matches issues with the word "cats" that were created after April 29, 2016.
>=YYYY-MM-DD | **[cats created:>=2017-04-01](https://github.com/search?utf8=%E2%9C%93&q=cats+created%3A%3E%3D2017-04-01&type=Issues)** matches issues with the word "cats" that were created on or after April 1, 2017.
-<YYYY-MM-DD | **[cats pushed:<2012-07-05](https://github.com/search?q=cats+pushed%3A%3C2012-07-05&type=Code&utf8=%E2%9C%93)** matches code with the word "cats" in repositories that were pushed to before July 5, 2012.
+<YYYY-MM-DD | **[cats pushed:<2012-07-05](https://github.com/search?q=cats+pushed%3A%3C2012-07-05&type=Repositories&utf8=%E2%9C%93)** matches repositories with the word "cats" that were pushed to before July 5, 2012.
<=YYYY-MM-DD | **[cats created:<=2012-07-04](https://github.com/search?utf8=%E2%9C%93&q=cats+created%3A%3C%3D2012-07-04&type=Issues)** matches issues with the word "cats" that were created on or before July 4, 2012.
YYYY-MM-DD..YYYY-MM-DD | **[cats pushed:2016-04-30..2016-07-04](https://github.com/search?utf8=%E2%9C%93&q=cats+pushed%3A2016-04-30..2016-07-04&type=Repositories)** matches repositories with the word "cats" that were pushed to between the end of April and July of 2016.
YYYY-MM-DD..* | **[cats created:2012-04-30..*](https://github.com/search?utf8=%E2%9C%93&q=cats+created%3A2012-04-30..*&type=Issues)** matches issues created after April 30th, 2012 containing the word "cats."
diff --git a/content/search-github/index.md b/content/search-github/index.md
index 83660a584d..18250aa52c 100644
--- a/content/search-github/index.md
+++ b/content/search-github/index.md
@@ -4,7 +4,7 @@ intro: 'Learn how to use the search functions available on GitHub to find differ
introLinks:
overview: /search-github/getting-started-with-searching-on-github/about-searching-on-github
featuredLinks:
- guides:
+ startHere:
- /search-github/searching-on-github/searching-issues-and-pull-requests
- /search-github/searching-on-github/searching-code
- /search-github/searching-on-github/searching-for-repositories
diff --git a/content/sponsors/getting-started-with-github-sponsors/about-github-sponsors.md b/content/sponsors/getting-started-with-github-sponsors/about-github-sponsors.md
index 1e44b4bbff..e58fc9c6c3 100644
--- a/content/sponsors/getting-started-with-github-sponsors/about-github-sponsors.md
+++ b/content/sponsors/getting-started-with-github-sponsors/about-github-sponsors.md
@@ -15,6 +15,8 @@ topics:
## About {% data variables.product.prodname_sponsors %}
+{% data reusables.sponsors.paypal-deprecation %}
+
{% data reusables.sponsors.sponsorship-details %}
{% data reusables.sponsors.no-fees %} For more information, see "[About billing for {% data variables.product.prodname_sponsors %}](/articles/about-billing-for-github-sponsors)."
diff --git a/content/sponsors/index.md b/content/sponsors/index.md
index 6954595c03..ffd1c53593 100644
--- a/content/sponsors/index.md
+++ b/content/sponsors/index.md
@@ -11,7 +11,7 @@ changelog:
label: sponsors
examples_source: data/product-examples/sponsors/user-examples.yml
featuredLinks:
- guides:
+ startHere:
- /sponsors/sponsoring-open-source-contributors/managing-your-sponsorship
- /sponsors/sponsoring-open-source-contributors/attributing-sponsorships-to-your-organization
- /sponsors/receiving-sponsorships-through-github-sponsors/managing-your-payouts-from-github-sponsors
diff --git a/content/sponsors/sponsoring-open-source-contributors/sponsoring-an-open-source-contributor.md b/content/sponsors/sponsoring-open-source-contributors/sponsoring-an-open-source-contributor.md
index bb966aba1b..c9f4074a7f 100644
--- a/content/sponsors/sponsoring-open-source-contributors/sponsoring-an-open-source-contributor.md
+++ b/content/sponsors/sponsoring-open-source-contributors/sponsoring-an-open-source-contributor.md
@@ -17,6 +17,8 @@ topics:
shortTitle: Sponsor a contributor
---
+{% data reusables.sponsors.paypal-deprecation %}
+
{% data reusables.sponsors.org-sponsors-release-phase %}
## About sponsorships
@@ -39,7 +41,7 @@ We may share certain limited tax information with sponsored accounts. For more i
{% data reusables.sponsors.manage-updates-for-orgs %}
-You can choose whether to display your sponsorship publicly. One-time sponsorships remain visible for one month.
+You can choose whether to display your sponsorship publicly. One-time sponsorships remain visible for one month.
If the sponsored account retires your tier, the tier will remain in place for you until you choose a different tier or cancel your subscription. For more information, see "[Upgrading a sponsorship](/articles/upgrading-a-sponsorship)" and "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)."
diff --git a/content/support/index.md b/content/support/index.md
index 98fa54b58b..819488c610 100644
--- a/content/support/index.md
+++ b/content/support/index.md
@@ -22,7 +22,7 @@ topics:
introLinks:
overview: /support/learning-about-github-support/about-github-support
featuredLinks:
- guides:
+ startHere:
- /support/contacting-github-support/creating-a-support-ticket
- /support/contacting-github-support/viewing-and-updating-support-tickets
- '{% ifversion ghes or ghec %}/support/learning-about-github-support/about-ticket-priority{% endif %}'
diff --git a/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml b/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml
index 5832b267da..3cd779c189 100644
--- a/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml
+++ b/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml
@@ -172,6 +172,54 @@ upcoming_changes:
date: '2023-04-01T00:00:00+00:00'
criticality: breaking
owner: jamestran201
+ - location: MergeQueue.headOid
+ description: '`headOid` will be removed. Use `entry.headOid` instead.'
+ reason: '`headOid` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueue.mergeMethod
+ description: '`mergeMethod` will be removed. Use `configuration.merge_method` instead.'
+ reason: '`mergeMethod` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueue.mergingEntries
+ description: '`mergingEntries` will be removed.'
+ reason: '`mergingEntries` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueue.pendingRemovalEntries
+ description: '`pendingRemovalEntries` will be removed.'
+ reason: '`pendingRemovalEntries` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.blockedByMergeConflicts
+ description: '`blockedByMergeConflicts` will be removed. Use `state` instead.'
+ reason: '`blockedByMergeConflicts` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.checkStatus
+ description: '`checkStatus` will be removed. Use `state` instead.'
+ reason: '`checkStatus` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.hasJumpedQueue
+ description: '`hasJumpedQueue` will be removed. Use `jump` instead.'
+ reason: '`hasJumpedQueue` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.isSolo
+ description: '`isSolo` will be removed. Use `solo` instead.'
+ reason: '`isSolo` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
- location: ProjectV2ItemFieldGroup.field
description:
'`field` will be removed. Check out the `ProjectV2ItemFieldGroup#groupByField`
diff --git a/data/graphql/ghec/graphql_upcoming_changes.public.yml b/data/graphql/ghec/graphql_upcoming_changes.public.yml
index 17b213e367..a654de7fc9 100644
--- a/data/graphql/ghec/graphql_upcoming_changes.public.yml
+++ b/data/graphql/ghec/graphql_upcoming_changes.public.yml
@@ -192,6 +192,54 @@ upcoming_changes:
date: '2023-04-01T00:00:00+00:00'
criticality: breaking
owner: jamestran201
+ - location: MergeQueue.headOid
+ description: '`headOid` will be removed. Use `entry.headOid` instead.'
+ reason: '`headOid` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueue.mergeMethod
+ description: '`mergeMethod` will be removed. Use `configuration.merge_method` instead.'
+ reason: '`mergeMethod` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueue.mergingEntries
+ description: '`mergingEntries` will be removed.'
+ reason: '`mergingEntries` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueue.pendingRemovalEntries
+ description: '`pendingRemovalEntries` will be removed.'
+ reason: '`pendingRemovalEntries` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.blockedByMergeConflicts
+ description: '`blockedByMergeConflicts` will be removed. Use `state` instead.'
+ reason: '`blockedByMergeConflicts` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.checkStatus
+ description: '`checkStatus` will be removed. Use `state` instead.'
+ reason: '`checkStatus` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.hasJumpedQueue
+ description: '`hasJumpedQueue` will be removed. Use `jump` instead.'
+ reason: '`hasJumpedQueue` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.isSolo
+ description: '`isSolo` will be removed. Use `solo` instead.'
+ reason: '`isSolo` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
- location: ProjectV2ItemFieldGroup.field
description:
'`field` will be removed. Check out the `ProjectV2ItemFieldGroup#groupByField`
diff --git a/data/graphql/graphql_upcoming_changes.public.yml b/data/graphql/graphql_upcoming_changes.public.yml
index 17b213e367..a654de7fc9 100644
--- a/data/graphql/graphql_upcoming_changes.public.yml
+++ b/data/graphql/graphql_upcoming_changes.public.yml
@@ -192,6 +192,54 @@ upcoming_changes:
date: '2023-04-01T00:00:00+00:00'
criticality: breaking
owner: jamestran201
+ - location: MergeQueue.headOid
+ description: '`headOid` will be removed. Use `entry.headOid` instead.'
+ reason: '`headOid` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueue.mergeMethod
+ description: '`mergeMethod` will be removed. Use `configuration.merge_method` instead.'
+ reason: '`mergeMethod` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueue.mergingEntries
+ description: '`mergingEntries` will be removed.'
+ reason: '`mergingEntries` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueue.pendingRemovalEntries
+ description: '`pendingRemovalEntries` will be removed.'
+ reason: '`pendingRemovalEntries` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.blockedByMergeConflicts
+ description: '`blockedByMergeConflicts` will be removed. Use `state` instead.'
+ reason: '`blockedByMergeConflicts` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.checkStatus
+ description: '`checkStatus` will be removed. Use `state` instead.'
+ reason: '`checkStatus` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.hasJumpedQueue
+ description: '`hasJumpedQueue` will be removed. Use `jump` instead.'
+ reason: '`hasJumpedQueue` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
+ - location: MergeQueueEntry.isSolo
+ description: '`isSolo` will be removed. Use `solo` instead.'
+ reason: '`isSolo` will be removed.'
+ date: '2023-07-01T00:00:00+00:00'
+ criticality: breaking
+ owner: github/merge_queue
- location: ProjectV2ItemFieldGroup.field
description:
'`field` will be removed. Check out the `ProjectV2ItemFieldGroup#groupByField`
diff --git a/data/release-notes/enterprise-server/3-6/0.yml b/data/release-notes/enterprise-server/3-6/0.yml
index 9286815981..2b1423ae06 100644
--- a/data/release-notes/enterprise-server/3-6/0.yml
+++ b/data/release-notes/enterprise-server/3-6/0.yml
@@ -20,11 +20,11 @@ sections:
notes:
# https://github.com/github/releases/issues/1569
- |
- GitHub has changed the supported algorithms and hash functions for all SSH connections to GitHub Enterprise Server, disabled the unencrypted and unauthenticated Git protocol, and optionally allowed the advertisement of an Ed25519 host key. For more information, see the [GitHub Blog](https://github.blog/2022-06-28-improving-git-protocol-security-on-github-enterprise-server/) and the following articles.
+ Site administrators can configure a cutoff date for allowing Git operations over SSH that use an RSA key and are signed by the SHA-1 hash function. By default, these connections will fail for RSA keys added to user accounts after the cutoff date of midnight UTC on August 1, 2022. For more information, see [Deprecations](#changes-to-supported-ssh-algorithms). [Updated: 2023-01-31]
- - "[Configuring SSH connections to your instance](/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance)"
- - "[Enforcing repository management policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#configuring-anonymous-git-read-access)"
- - "[Configuring host keys for your instance](/admin/configuration/configuring-your-enterprise/configuring-host-keys-for-your-instance)"
+ # https://github.com/github/releases/issues/1569
+ - |
+ GitHub Enterprise Server optionally allows the advertisement of an Ed25519 host key. For more information, see "[Configuring host keys for your instance](/admin/configuration/configuring-your-enterprise/configuring-host-keys-for-your-instance)."
# https://github.com/github/releases/issues/2341
- |
@@ -280,6 +280,15 @@ sections:
When editing a Markdown file in the web interface, clicking the **Preview** tab will automatically scroll to the place in the preview that you were editing. The scroll location is based on the position of your cursor before you clicked the **Preview** tab.
changes:
+ # https://github.com/github/releases/issues/1569
+ - |
+ The unencrypted and unauthenticated Git protocol is now disabled by default. If you do not re-enable the protocol after you upgrade to GitHub Enterprise Server 3.6 or later, `git://` connections on port 9418 will return the following error.
+
+ ```
+ The unauthenticated git protocol on port 9418 is no longer supported.
+ ```
+
+ If you wish to support the protocol in your environment, you must manually re-enable the feature. For more information, see "[Enforcing repository management policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#configuring-anonymous-git-read-access)" and the [GitHub Blog](https://github.blog/2022-06-28-improving-git-protocol-security-on-github-enterprise-server/). [Updated: 2023-01-31]
- Interactive elements in the web interface such as links and buttons show a visible outline when focused with a keyboard, to help users find the current position on a page. In addition, when focused, form fields have a higher contrast outline.
- If a user refreshes the page while creating a new issue or pull request, the assignees, reviewers, labels and projects will all be preserved.
- |
@@ -302,4 +311,15 @@ sections:
After upgrading a replica node to GitHub Enterprise Server 3.6.0 or later and restarting replication, Git replication may stop progressing and continue to show `WARNING: git replication is behind the primary …`. If you encounter this known issue, [contact {% data variables.contact.enterprise_support %}](https://docs.github.com/en/enterprise-server@3.6/support/contacting-github-support/creating-a-support-ticket). [Updated: 2022-10-03]
- |
GitHub Pages builds may time out on instances in AWS that are configured for high availability. [Updated: 2022-11-28]
- - '{% data reusables.release-notes.babeld-max-threads-performance-issue %}'
\ No newline at end of file
+ - '{% data reusables.release-notes.babeld-max-threads-performance-issue %}'
+
+ deprecations:
+ - heading: Changes to supported SSH algorithms
+ notes:
+ # https://github.com/github/releases/issues/1569
+ - |
+ In GitHub Enterprise Server 3.6 and later, GitHub is changing the supported algorithms and hash functions for Git operations over SSH. By default, SSH connections that satisfy **both** of the following conditions will fail.
+
+ {% data reusables.ssh.rsa-sha-1-connection-failure-criteria %}
+
+ You can adjust the cutoff date. For more information, see "[Configuring SSH connections to your instance](/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance)." [Updated: 2023-01-31]
diff --git a/data/reusables/actions/change-retention-period-for-artifacts-logs.md b/data/reusables/actions/change-retention-period-for-artifacts-logs.md
index 42ee3bc464..77c70f2d1a 100644
--- a/data/reusables/actions/change-retention-period-for-artifacts-logs.md
+++ b/data/reusables/actions/change-retention-period-for-artifacts-logs.md
@@ -1,2 +1,2 @@
-1. Under **Artifact and log retention**, enter a new value.
+1. {% ifversion actions-cache-admin-ui %}In the "Artifact, log, and cache settings" section, u{% else %}U{% endif %}nder **Artifact and log retention**, enter a new value.
1. Click **Save** to apply the change.
diff --git a/data/reusables/actions/workflow-dispatch-inputs-example.md b/data/reusables/actions/workflow-dispatch-inputs-example.md
new file mode 100644
index 0000000000..552042ea3d
--- /dev/null
+++ b/data/reusables/actions/workflow-dispatch-inputs-example.md
@@ -0,0 +1,34 @@
+```yaml
+on:
+ workflow_dispatch:
+ inputs:
+ logLevel:
+ description: 'Log level'
+ required: true
+ default: 'warning' {% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
+ type: choice
+ options:
+ - info
+ - warning
+ - debug {% endif %}
+ print_tags:
+ description: 'True to print to STDOUT'
+ required: true {% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
+ type: boolean {% endif %}
+ tags:
+ description: 'Test scenario tags'
+ required: true {% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %}
+ type: string
+ environment:
+ description: 'Environment to run tests against'
+ type: environment
+ required: true {% endif %}
+
+jobs:
+ print-tag:
+ runs-on: ubuntu-latest
+ if: {% ifversion actions-unified-inputs %}{% raw %} ${{ inputs.print_tags }} {% endraw %}{% else %}{% raw %} ${{ github.event.inputs.print_tags == 'true' }} {% endraw %}{% endif %}
+ steps:
+ - name: Print the input tag to STDOUT
+ run: {% ifversion actions-unified-inputs %}echo {% raw %} The tags are ${{ inputs.tags }} {% endraw %}{% else %}echo {% raw %} The tags are ${{ github.event.inputs.tags }} {% endraw %}{% endif %}
+```
diff --git a/data/reusables/actions/workflow-dispatch-inputs.md b/data/reusables/actions/workflow-dispatch-inputs.md
index ffb4fa151d..0096580d42 100644
--- a/data/reusables/actions/workflow-dispatch-inputs.md
+++ b/data/reusables/actions/workflow-dispatch-inputs.md
@@ -1,5 +1,3 @@
-When using the `workflow_dispatch` event, you can optionally specify inputs that are passed to the workflow.
-
The triggered workflow receives the inputs in the {% ifversion actions-unified-inputs %}`inputs`{% else %}`github.event.inputs`{% endif %} context. For more information, see "[Contexts]({% ifversion actions-unified-inputs %}/actions/learn-github-actions/contexts#inputs-context{% else %}/actions/learn-github-actions/contexts#github-context{% endif %})."
{% data reusables.actions.inputs-vs-github-event-inputs %}
diff --git a/data/reusables/actions/workflow-dispatch.md b/data/reusables/actions/workflow-dispatch.md
new file mode 100644
index 0000000000..96b746c427
--- /dev/null
+++ b/data/reusables/actions/workflow-dispatch.md
@@ -0,0 +1 @@
+When using the `workflow_dispatch` event, you can optionally specify inputs that are passed to the workflow.
\ No newline at end of file
diff --git a/data/reusables/form-schema/required-key.md b/data/reusables/form-schema/required-key.md
index ac51643433..80aedc05f8 100644
--- a/data/reusables/form-schema/required-key.md
+++ b/data/reusables/form-schema/required-key.md
@@ -1 +1 @@
-| `required` | Prevents form submission until element is completed. | Optional | Boolean | false | {% octicon "dash" aria-label="The dash icon" %} |
+| `required` | Prevents form submission until element is completed. Only for public repositories. | Optional | Boolean | false | {% octicon "dash" aria-label="The dash icon" %} |
diff --git a/data/reusables/gpg/copy-ssh-public-key.md b/data/reusables/gpg/copy-ssh-public-key.md
index 3306792aba..9811ec0c81 100644
--- a/data/reusables/gpg/copy-ssh-public-key.md
+++ b/data/reusables/gpg/copy-ssh-public-key.md
@@ -23,7 +23,7 @@
{% tip %}
- **Tip:** If `clip` isn't working, you can locate the hidden `.ssh` folder, open the file in your favorite text editor, and copy it to your clipboard.
+ **Tip:** With Windows Subsystem for Linux (WSL), you can use `clip.exe`. Otherwise if `clip` isn't working, you can locate the hidden `.ssh` folder, open the file in your favorite text editor, and copy it to your clipboard.
{% endtip %}
{% endwindows %}
diff --git a/data/reusables/sponsors/paypal-deprecation.md b/data/reusables/sponsors/paypal-deprecation.md
new file mode 100644
index 0000000000..5551fe5e58
--- /dev/null
+++ b/data/reusables/sponsors/paypal-deprecation.md
@@ -0,0 +1,9 @@
+{% note %}
+
+**Note**: Starting on **February 23rd, 2023**, {% data variables.product.prodname_sponsors %} will no longer support PayPal as a payment processor. Sponsors that currently use PayPal will be required to update their payment method to pay by credit or debit card.
+
+If your sponsorship is still using PayPal as a payment method, it will be cancelled on your next billing date. For example: if you have a recurring sponsorship and paid on February 22nd using PayPal, your sponsorship will be cancelled on your next billing date on March 22nd.
+
+For more information about updating your payment method, see "[Adding or editing a payment method](/billing/managing-your-github-billing-settings/adding-or-editing-a-payment-method)."
+
+{% endnote %}
\ No newline at end of file
diff --git a/data/ui.yml b/data/ui.yml
index 879ad7b7ff..ea68ef2cc6 100644
--- a/data/ui.yml
+++ b/data/ui.yml
@@ -46,7 +46,7 @@ homepage:
toc:
getting_started: Getting started
popular: Popular
- guides: Guides
+ startHere: Start here
whats_new: What's new
videos: Videos
all_changelogs: All changelog posts
diff --git a/data/variables/product.yml b/data/variables/product.yml
index cd2e02fa53..74e812e578 100644
--- a/data/variables/product.yml
+++ b/data/variables/product.yml
@@ -47,6 +47,8 @@ prodname_campus_program: 'GitHub Campus Program'
prodname_student_pack: 'GitHub Student Developer Pack'
prodname_global_campus: 'GitHub Global Campus'
prodname_community_exchange: 'GitHub Community Exchange'
+prodname_student_leader_program: 'GitHub Campus Experts'
+prodname_student_leader_program_singular: 'GitHub Campus Expert'
# GitHub CLI
prodname_cli: 'GitHub CLI'
diff --git a/lib/all-products.js b/lib/all-products.js
index 1593436582..0c71575607 100644
--- a/lib/all-products.js
+++ b/lib/all-products.js
@@ -3,9 +3,10 @@ import path from 'path'
import frontmatter from './read-frontmatter.js'
import getApplicableVersions from './get-applicable-versions.js'
import removeFPTFromPath from './remove-fpt-from-path.js'
+import { ROOT } from './constants.js'
// Both internal and external products are specified in content/index.md
-const homepage = path.posix.join(process.cwd(), 'content/index.md')
+const homepage = path.posix.join(ROOT, 'content/index.md')
const { data } = frontmatter(await fs.readFile(homepage, 'utf8'))
export const productIds = data.children
@@ -15,7 +16,7 @@ const internalProducts = {}
for (const productId of productIds) {
const relPath = productId
- const dir = path.posix.join('content', relPath)
+ const dir = path.join(ROOT, 'content', relPath)
// Early Access may not exist in the current checkout
try {
diff --git a/lib/constants.js b/lib/constants.js
index 370bbc99a1..8a98f93edf 100644
--- a/lib/constants.js
+++ b/lib/constants.js
@@ -1,2 +1,3 @@
+export const ROOT = process.env.ROOT || '.'
export const USER_LANGUAGE_COOKIE_NAME = 'user_language'
export const TRANSLATIONS_ROOT = process.env.TRANSLATIONS_ROOT || 'translations'
diff --git a/lib/find-page.js b/lib/find-page.js
index d461a965bb..14f51a0306 100644
--- a/lib/find-page.js
+++ b/lib/find-page.js
@@ -3,7 +3,7 @@ import getRedirect from './get-redirect.js'
export default function findPage(href, pages, redirects) {
// remove any fragments
- href = href.replace(/#.*$/, '')
+ href = new URL(href, 'http://example.com').pathname
const redirectsContext = { redirects, pages }
diff --git a/lib/frontmatter.js b/lib/frontmatter.js
index d61fd003f5..a61bbb51c0 100644
--- a/lib/frontmatter.js
+++ b/lib/frontmatter.js
@@ -97,7 +97,7 @@ export const schema = {
type: 'array',
items: { type: 'string' },
},
- guides: {
+ startHere: {
type: 'array',
items: { type: 'string' },
},
diff --git a/lib/graphql/static/changelog.json b/lib/graphql/static/changelog.json
index bc164e1486..cf1bb63bc0 100644
--- a/lib/graphql/static/changelog.json
+++ b/lib/graphql/static/changelog.json
@@ -1,4 +1,29 @@
[
+ {
+ "schemaChanges": [
+ {
+ "title": "The GraphQL schema includes these changes:",
+ "changes": []
+ }
+ ],
+ "previewChanges": [],
+ "upcomingChanges": [
+ {
+ "title": "The following changes will be made to the schema:",
+ "changes": [
+ "On member MergeQueue.headOid:headOid will be removed. Use entry.headOid instead. Effective 2023-07-01.
",
+ "On member MergeQueue.mergeMethod:mergeMethod will be removed. Use configuration.merge_method instead. Effective 2023-07-01.
",
+ "On member MergeQueue.mergingEntries:mergingEntries will be removed. Effective 2023-07-01.
",
+ "On member MergeQueue.pendingRemovalEntries:pendingRemovalEntries will be removed. Effective 2023-07-01.
",
+ "On member MergeQueueEntry.blockedByMergeConflicts:blockedByMergeConflicts will be removed. Use state instead. Effective 2023-07-01.
",
+ "On member MergeQueueEntry.checkStatus:checkStatus will be removed. Use state instead. Effective 2023-07-01.
",
+ "On member MergeQueueEntry.hasJumpedQueue:hasJumpedQueue will be removed. Use jump instead. Effective 2023-07-01.
",
+ "On member MergeQueueEntry.isSolo:isSolo will be removed. Use solo instead. Effective 2023-07-01.
"
+ ]
+ }
+ ],
+ "date": "2023-02-07"
+ },
{
"schemaChanges": [
{
diff --git a/lib/graphql/static/upcoming-changes.json b/lib/graphql/static/upcoming-changes.json
index 3a5b612f0d..e597184862 100644
--- a/lib/graphql/static/upcoming-changes.json
+++ b/lib/graphql/static/upcoming-changes.json
@@ -8,6 +8,70 @@
"date": "2023-07-01",
"criticality": "breaking",
"owner": "stevepopovich"
+ },
+ {
+ "location": "MergeQueueEntry.isSolo",
+ "description": "isSolo will be removed. Use solo instead.
",
+ "reason": "isSolo will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueueEntry.hasJumpedQueue",
+ "description": "hasJumpedQueue will be removed. Use jump instead.
",
+ "reason": "hasJumpedQueue will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueueEntry.checkStatus",
+ "description": "checkStatus will be removed. Use state instead.
",
+ "reason": "checkStatus will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueueEntry.blockedByMergeConflicts",
+ "description": "blockedByMergeConflicts will be removed. Use state instead.
",
+ "reason": "blockedByMergeConflicts will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.pendingRemovalEntries",
+ "description": "pendingRemovalEntries will be removed.
",
+ "reason": "pendingRemovalEntries will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.mergingEntries",
+ "description": "mergingEntries will be removed.
",
+ "reason": "mergingEntries will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.mergeMethod",
+ "description": "mergeMethod will be removed. Use configuration.merge_method instead.
",
+ "reason": "mergeMethod will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.headOid",
+ "description": "headOid will be removed. Use entry.headOid instead.
",
+ "reason": "headOid will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
}
],
"2023-04-01": [
@@ -248,6 +312,70 @@
"date": "2023-07-01",
"criticality": "breaking",
"owner": "stevepopovich"
+ },
+ {
+ "location": "MergeQueueEntry.isSolo",
+ "description": "isSolo will be removed. Use solo instead.
",
+ "reason": "isSolo will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueueEntry.hasJumpedQueue",
+ "description": "hasJumpedQueue will be removed. Use jump instead.
",
+ "reason": "hasJumpedQueue will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueueEntry.checkStatus",
+ "description": "checkStatus will be removed. Use state instead.
",
+ "reason": "checkStatus will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueueEntry.blockedByMergeConflicts",
+ "description": "blockedByMergeConflicts will be removed. Use state instead.
",
+ "reason": "blockedByMergeConflicts will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.pendingRemovalEntries",
+ "description": "pendingRemovalEntries will be removed.
",
+ "reason": "pendingRemovalEntries will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.mergingEntries",
+ "description": "mergingEntries will be removed.
",
+ "reason": "mergingEntries will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.mergeMethod",
+ "description": "mergeMethod will be removed. Use configuration.merge_method instead.
",
+ "reason": "mergeMethod will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.headOid",
+ "description": "headOid will be removed. Use entry.headOid instead.
",
+ "reason": "headOid will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
}
],
"2023-04-01": [
@@ -1140,6 +1268,70 @@
"date": "2023-07-01",
"criticality": "breaking",
"owner": "stevepopovich"
+ },
+ {
+ "location": "MergeQueueEntry.isSolo",
+ "description": "isSolo will be removed. Use solo instead.
",
+ "reason": "isSolo will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueueEntry.hasJumpedQueue",
+ "description": "hasJumpedQueue will be removed. Use jump instead.
",
+ "reason": "hasJumpedQueue will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueueEntry.checkStatus",
+ "description": "checkStatus will be removed. Use state instead.
",
+ "reason": "checkStatus will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueueEntry.blockedByMergeConflicts",
+ "description": "blockedByMergeConflicts will be removed. Use state instead.
",
+ "reason": "blockedByMergeConflicts will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.pendingRemovalEntries",
+ "description": "pendingRemovalEntries will be removed.
",
+ "reason": "pendingRemovalEntries will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.mergingEntries",
+ "description": "mergingEntries will be removed.
",
+ "reason": "mergingEntries will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.mergeMethod",
+ "description": "mergeMethod will be removed. Use configuration.merge_method instead.
",
+ "reason": "mergeMethod will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
+ },
+ {
+ "location": "MergeQueue.headOid",
+ "description": "headOid will be removed. Use entry.headOid instead.
",
+ "reason": "headOid will be removed.
",
+ "date": "2023-07-01",
+ "criticality": "breaking",
+ "owner": "github/merge_queue"
}
],
"2023-04-01": [
diff --git a/lib/languages.js b/lib/languages.js
index 6d9168ac28..c52fa7ecc5 100644
--- a/lib/languages.js
+++ b/lib/languages.js
@@ -4,7 +4,7 @@
import dotenv from 'dotenv'
-import { TRANSLATIONS_ROOT } from './constants.js'
+import { ROOT, TRANSLATIONS_ROOT } from './constants.js'
import path from 'path'
dotenv.config()
@@ -21,7 +21,7 @@ const possibleEnvVars = {
}
function getRoot(languageCode) {
- if (languageCode === 'en') return ''
+ if (languageCode === 'en') return ROOT
if (languageCode in possibleEnvVars) {
const possibleEnvVar = possibleEnvVars[languageCode]
if (possibleEnvVar) {
diff --git a/lib/redirects/precompile.js b/lib/redirects/precompile.js
index f7b7f6ca00..53b1ffaad2 100755
--- a/lib/redirects/precompile.js
+++ b/lib/redirects/precompile.js
@@ -1,14 +1,8 @@
-import path from 'path'
-import { fileURLToPath } from 'url'
-
import { readCompressedJsonFileFallback } from '../read-json-file.js'
import getExceptionRedirects from './exception-redirects.js'
-
import { latest } from '../enterprise-server-releases.js'
-const __dirname = path.dirname(fileURLToPath(import.meta.url))
-
-const EXCEPTIONS_FILE = path.join(__dirname, './static/redirect-exceptions.txt')
+const EXCEPTIONS_FILE = './lib/redirects/static/redirect-exceptions.txt'
// This function runs at server warmup and precompiles possible redirect routes.
// It outputs them in key-value pairs within a neat Javascript object: { oldPath: newPath }
diff --git a/lib/rest/static/decorated/api.github.com.2022-11-28.json b/lib/rest/static/decorated/api.github.com.2022-11-28.json
index 24bb4ea917..b592ba12ed 100644
--- a/lib/rest/static/decorated/api.github.com.2022-11-28.json
+++ b/lib/rest/static/decorated/api.github.com.2022-11-28.json
@@ -344164,7 +344164,7 @@
}
],
"previews": [],
- "descriptionHTML": "Start a source import to a GitHub repository using GitHub Importer.
",
+ "descriptionHTML": "Start a source import to a GitHub repository using GitHub Importer. Importing into a GitHub repository with GitHub Actions enabled is not supported and will return a status 422 Unprocessable Entity response.
",
"statusCodes": [
{
"httpStatusCode": "201",
diff --git a/lib/rest/static/decorated/ghec.2022-11-28.json b/lib/rest/static/decorated/ghec.2022-11-28.json
index 3b38b2ac98..123741c5d6 100644
--- a/lib/rest/static/decorated/ghec.2022-11-28.json
+++ b/lib/rest/static/decorated/ghec.2022-11-28.json
@@ -357334,7 +357334,7 @@
}
],
"previews": [],
- "descriptionHTML": "Start a source import to a GitHub Enterprise Cloud repository using GitHub Enterprise Cloud Importer.
",
+ "descriptionHTML": "Start a source import to a GitHub Enterprise Cloud repository using GitHub Enterprise Cloud Importer. Importing into a GitHub Enterprise Cloud repository with GitHub Actions enabled is not supported and will return a status 422 Unprocessable Entity response.
",
"statusCodes": [
{
"httpStatusCode": "201",
diff --git a/lib/webhooks/static/decorated/api.github.com.json b/lib/webhooks/static/decorated/api.github.com.json
index 165d20f4e7..ee423705cc 100644
--- a/lib/webhooks/static/decorated/api.github.com.json
+++ b/lib/webhooks/static/decorated/api.github.com.json
@@ -57202,7 +57202,7 @@
"merge_group": {
"default": {
"descriptionHtml": "Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued.
\nWhen you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses.
",
- "summaryHtml": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"
\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.
\nNote: The pull request merge queue feature is currently in limited private beta and subject to change.
",
+ "summaryHtml": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"
\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.
\nNote: The pull request merge queue feature is currently in public beta and subject to change.
",
"bodyParameters": [
{
"type": "string",
diff --git a/lib/webhooks/static/decorated/ghec.json b/lib/webhooks/static/decorated/ghec.json
index 7c7371af9d..7d0316d8f9 100644
--- a/lib/webhooks/static/decorated/ghec.json
+++ b/lib/webhooks/static/decorated/ghec.json
@@ -57202,7 +57202,7 @@
"merge_group": {
"default": {
"descriptionHtml": "Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued.
\nWhen you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses.
",
- "summaryHtml": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"
\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.
\nNote: The pull request merge queue feature is currently in limited private beta and subject to change.
",
+ "summaryHtml": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"
\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.
\nNote: The pull request merge queue feature is currently in public beta and subject to change.
",
"bodyParameters": [
{
"type": "string",
diff --git a/lib/webhooks/static/decorated/ghes-3.7.json b/lib/webhooks/static/decorated/ghes-3.7.json
index 7b68d6d75a..ea6dc52d1a 100644
--- a/lib/webhooks/static/decorated/ghes-3.7.json
+++ b/lib/webhooks/static/decorated/ghes-3.7.json
@@ -56982,7 +56982,7 @@
"merge_group": {
"default": {
"descriptionHtml": "Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued.
\nWhen you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses.
",
- "summaryHtml": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"
\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.
\nNote: The pull request merge queue feature is currently in limited private beta and subject to change.
",
+ "summaryHtml": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"
\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.
\nNote: The pull request merge queue feature is currently in public beta and subject to change.
",
"bodyParameters": [
{
"type": "string",
diff --git a/lib/webhooks/static/decorated/github.ae.json b/lib/webhooks/static/decorated/github.ae.json
index de59324269..51c192d5b6 100644
--- a/lib/webhooks/static/decorated/github.ae.json
+++ b/lib/webhooks/static/decorated/github.ae.json
@@ -56982,7 +56982,7 @@
"merge_group": {
"default": {
"descriptionHtml": "Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued.
\nWhen you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses.
",
- "summaryHtml": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"
\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.
\nNote: The pull request merge queue feature is currently in limited private beta and subject to change.
",
+ "summaryHtml": "This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"
\nTo subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.
\nNote: The pull request merge queue feature is currently in public beta and subject to change.
",
"bodyParameters": [
{
"type": "string",
diff --git a/middleware/contextualizers/features.js b/middleware/contextualizers/features.js
index 0de51a8781..c05c71329e 100644
--- a/middleware/contextualizers/features.js
+++ b/middleware/contextualizers/features.js
@@ -1,3 +1,6 @@
+import path from 'path'
+
+import { ROOT } from '../../lib/constants.js'
import getApplicableVersions from '../../lib/get-applicable-versions.js'
import { getDeepDataByLanguage } from '../../lib/get-data.js'
@@ -29,7 +32,10 @@ function getFeaturesByVersion(currentVersion) {
// Determine whether the currentVersion belongs to the list of versions the feature is available in.
for (const [featureName, feature] of Object.entries(allFeatures)) {
const { versions } = feature
- const applicableVersions = getApplicableVersions(versions, `data/features/${featureName}.yml`)
+ const applicableVersions = getApplicableVersions(
+ versions,
+ path.join(ROOT, `data/features/${featureName}.yml`)
+ )
// Adding the resulting boolean to the context object gives us the ability to use
// `{% if featureName ... %}` conditionals in content files.
diff --git a/middleware/find-page.js b/middleware/find-page.js
index eae0bab518..7e1097cddd 100644
--- a/middleware/find-page.js
+++ b/middleware/find-page.js
@@ -1,12 +1,13 @@
import path from 'path'
import { existsSync } from 'fs'
+import { ROOT } from '../lib/constants.js'
import Page from '../lib/page.js'
import { languageKeys } from '../lib/languages.js'
const languagePrefixRegex = new RegExp(`^/(${languageKeys.join('|')})(/|$)`)
const englishPrefixRegex = /^\/en(\/|$)/
-const CONTENT_ROOT = 'content'
+const CONTENT_ROOT = path.join(ROOT, 'content')
export default async function findPage(
req,
diff --git a/next.config.js b/next.config.js
index 50aa6fcec0..e096412938 100644
--- a/next.config.js
+++ b/next.config.js
@@ -3,8 +3,9 @@ import path from 'path'
import frontmatter from 'gray-matter'
import { languageKeys } from './lib/languages.js'
+import { ROOT } from './lib/constants.js'
-const homepage = path.posix.join(process.cwd(), 'content/index.md')
+const homepage = path.posix.join(ROOT, 'content/index.md')
const { data } = frontmatter(fs.readFileSync(homepage, 'utf8'))
const productIds = data.children
diff --git a/package-lock.json b/package-lock.json
index 32a58f8752..3d72df984b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,8 +112,8 @@
"@types/react-dom": "^18.0.5",
"@types/react-syntax-highlighter": "^15.5.2",
"@types/uuid": "^9.0.0",
- "@typescript-eslint/eslint-plugin": "5.48.0",
- "@typescript-eslint/parser": "5.48.0",
+ "@typescript-eslint/eslint-plugin": "5.50.0",
+ "@typescript-eslint/parser": "5.50.0",
"babel-loader": "^9.0.1",
"babel-plugin-styled-components": "^2.0.7",
"babel-preset-env": "^1.7.0",
@@ -123,7 +123,7 @@
"cross-env": "^7.0.3",
"csp-parse": "0.0.2",
"dedent": "^0.7.0",
- "eslint": "8.31.0",
+ "eslint": "8.33.0",
"eslint-config-prettier": "^8.5.0",
"eslint-config-standard": "^17.0.0",
"eslint-plugin-import": "^2.26.0",
@@ -4712,15 +4712,16 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz",
- "integrity": "sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz",
+ "integrity": "sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.48.0",
- "@typescript-eslint/type-utils": "5.48.0",
- "@typescript-eslint/utils": "5.48.0",
+ "@typescript-eslint/scope-manager": "5.50.0",
+ "@typescript-eslint/type-utils": "5.50.0",
+ "@typescript-eslint/utils": "5.50.0",
"debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"natural-compare-lite": "^1.4.0",
"regexpp": "^3.2.0",
@@ -4762,14 +4763,14 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.0.tgz",
- "integrity": "sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.50.0.tgz",
+ "integrity": "sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.48.0",
- "@typescript-eslint/types": "5.48.0",
- "@typescript-eslint/typescript-estree": "5.48.0",
+ "@typescript-eslint/scope-manager": "5.50.0",
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/typescript-estree": "5.50.0",
"debug": "^4.3.4"
},
"engines": {
@@ -4806,13 +4807,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz",
- "integrity": "sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz",
+ "integrity": "sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.48.0",
- "@typescript-eslint/visitor-keys": "5.48.0"
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/visitor-keys": "5.50.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -4823,13 +4824,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz",
- "integrity": "sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz",
+ "integrity": "sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.48.0",
- "@typescript-eslint/utils": "5.48.0",
+ "@typescript-eslint/typescript-estree": "5.50.0",
+ "@typescript-eslint/utils": "5.50.0",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
},
@@ -4867,9 +4868,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.0.tgz",
- "integrity": "sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.50.0.tgz",
+ "integrity": "sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -4880,13 +4881,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz",
- "integrity": "sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz",
+ "integrity": "sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.48.0",
- "@typescript-eslint/visitor-keys": "5.48.0",
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/visitor-keys": "5.50.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -4924,16 +4925,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.0.tgz",
- "integrity": "sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.50.0.tgz",
+ "integrity": "sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.48.0",
- "@typescript-eslint/types": "5.48.0",
- "@typescript-eslint/typescript-estree": "5.48.0",
+ "@typescript-eslint/scope-manager": "5.50.0",
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/typescript-estree": "5.50.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0",
"semver": "^7.3.7"
@@ -4968,12 +4969,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz",
- "integrity": "sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz",
+ "integrity": "sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.48.0",
+ "@typescript-eslint/types": "5.50.0",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -8100,9 +8101,9 @@
}
},
"node_modules/eslint": {
- "version": "8.31.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz",
- "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==",
+ "version": "8.33.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz",
+ "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==",
"dev": true,
"dependencies": {
"@eslint/eslintrc": "^1.4.1",
@@ -24338,15 +24339,16 @@
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz",
- "integrity": "sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz",
+ "integrity": "sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.48.0",
- "@typescript-eslint/type-utils": "5.48.0",
- "@typescript-eslint/utils": "5.48.0",
+ "@typescript-eslint/scope-manager": "5.50.0",
+ "@typescript-eslint/type-utils": "5.50.0",
+ "@typescript-eslint/utils": "5.50.0",
"debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"natural-compare-lite": "^1.4.0",
"regexpp": "^3.2.0",
@@ -24366,14 +24368,14 @@
}
},
"@typescript-eslint/parser": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.0.tgz",
- "integrity": "sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.50.0.tgz",
+ "integrity": "sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.48.0",
- "@typescript-eslint/types": "5.48.0",
- "@typescript-eslint/typescript-estree": "5.48.0",
+ "@typescript-eslint/scope-manager": "5.50.0",
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/typescript-estree": "5.50.0",
"debug": "^4.3.4"
},
"dependencies": {
@@ -24389,23 +24391,23 @@
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz",
- "integrity": "sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz",
+ "integrity": "sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.48.0",
- "@typescript-eslint/visitor-keys": "5.48.0"
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/visitor-keys": "5.50.0"
}
},
"@typescript-eslint/type-utils": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz",
- "integrity": "sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz",
+ "integrity": "sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==",
"dev": true,
"requires": {
- "@typescript-eslint/typescript-estree": "5.48.0",
- "@typescript-eslint/utils": "5.48.0",
+ "@typescript-eslint/typescript-estree": "5.50.0",
+ "@typescript-eslint/utils": "5.50.0",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
},
@@ -24422,19 +24424,19 @@
}
},
"@typescript-eslint/types": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.0.tgz",
- "integrity": "sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.50.0.tgz",
+ "integrity": "sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz",
- "integrity": "sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz",
+ "integrity": "sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.48.0",
- "@typescript-eslint/visitor-keys": "5.48.0",
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/visitor-keys": "5.50.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -24454,16 +24456,16 @@
}
},
"@typescript-eslint/utils": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.0.tgz",
- "integrity": "sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.50.0.tgz",
+ "integrity": "sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.48.0",
- "@typescript-eslint/types": "5.48.0",
- "@typescript-eslint/typescript-estree": "5.48.0",
+ "@typescript-eslint/scope-manager": "5.50.0",
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/typescript-estree": "5.50.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0",
"semver": "^7.3.7"
@@ -24481,12 +24483,12 @@
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz",
- "integrity": "sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz",
+ "integrity": "sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.48.0",
+ "@typescript-eslint/types": "5.50.0",
"eslint-visitor-keys": "^3.3.0"
},
"dependencies": {
@@ -26756,9 +26758,9 @@
"dev": true
},
"eslint": {
- "version": "8.31.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz",
- "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==",
+ "version": "8.33.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz",
+ "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==",
"dev": true,
"requires": {
"@eslint/eslintrc": "^1.4.1",
diff --git a/package.json b/package.json
index a79071577e..b05c78c0fd 100644
--- a/package.json
+++ b/package.json
@@ -114,8 +114,8 @@
"@types/react-dom": "^18.0.5",
"@types/react-syntax-highlighter": "^15.5.2",
"@types/uuid": "^9.0.0",
- "@typescript-eslint/eslint-plugin": "5.48.0",
- "@typescript-eslint/parser": "5.48.0",
+ "@typescript-eslint/eslint-plugin": "5.50.0",
+ "@typescript-eslint/parser": "5.50.0",
"babel-loader": "^9.0.1",
"babel-plugin-styled-components": "^2.0.7",
"babel-preset-env": "^1.7.0",
@@ -125,7 +125,7 @@
"cross-env": "^7.0.3",
"csp-parse": "0.0.2",
"dedent": "^0.7.0",
- "eslint": "8.31.0",
+ "eslint": "8.33.0",
"eslint-config-prettier": "^8.5.0",
"eslint-config-standard": "^17.0.0",
"eslint-plugin-import": "^2.26.0",
@@ -185,6 +185,7 @@
"build": "next build",
"debug": "cross-env NODE_ENV=development ENABLED_LANGUAGES=en nodemon --inspect server.js",
"dev": "cross-env npm start",
+ "fixture-dev": "cross-env ROOT=tests/fixtures npm start",
"index-test-fixtures": "node script/search/index-elasticsearch.js -l en -l ja -V ghae -V dotcom --index-prefix tests -- tests/content/fixtures/search-indexes",
"lint": "eslint '**/*.{js,mjs,ts,tsx}'",
"lint-translation": "cross-env NODE_OPTIONS=--experimental-vm-modules jest tests/linting/lint-files.js",
diff --git a/script/copy-fixture-data.js b/script/copy-fixture-data.js
new file mode 100755
index 0000000000..ee41029a1d
--- /dev/null
+++ b/script/copy-fixture-data.js
@@ -0,0 +1,104 @@
+#!/usr/bin/env node
+
+// [start-readme]
+//
+// There are certain files that have to be manually copied from the
+// real data into the test fixture data.
+//
+// This script copies the files from `data/` into `tests/fitures/data/...`
+// that are files that are both needed for fixture testing yet can't
+// live with the code. For example, `data/ui.yml` is part of the rendering
+// code, but it lives in `data/` so it can be translated.
+//
+// [end-readme]
+
+import fs from 'fs'
+import path from 'path'
+
+import { program } from 'commander'
+import chalk from 'chalk'
+import mkdirp from 'mkdirp'
+
+// Here, write down all the files that are actually part of the rendering
+// functionality yet live in data.
+const MANDATORY_FILES = [
+ 'data/ui.yml',
+ 'data/reusables/policies/translation.md',
+ 'data/reusables/enterprise_deprecation/deprecation_details.md',
+ 'data/reusables/enterprise_deprecation/version_was_deprecated.md',
+ 'data/reusables/enterprise_deprecation/version_will_be_deprecated.md',
+ 'data/variables/release_candidate.yml',
+]
+
+const DESTINATION = path.resolve('tests/fixtures')
+
+program
+ .description('Make sure the test fixtures have up-to-date data from the real content')
+ .option('--check', 'Exit non-zero if it had to actually do something')
+ .option('--dry-run', "Don't actually write changes to disk")
+ .option('-v, --verbose', 'Verbose outputs')
+ .parse(process.argv)
+
+main(program.opts())
+
+async function main(opts) {
+ let errors = 0
+ for (const file of MANDATORY_FILES) {
+ const source = fs.readFileSync(file, 'utf-8')
+ const destination = path.join(DESTINATION, file)
+
+ if (opts.check) {
+ // The destination has to exist and be identical
+ try {
+ const copied = fs.readFileSync(destination, 'utf-8')
+ if (copied !== source) {
+ // console.warn(chalk.red(`The file ${destination} is different from ${file}`))
+ console.warn(`The file ${chalk.red(destination)} is different from ${chalk.red(file)}`)
+ errors++
+ } else if (opts.verbose) {
+ console.log(`The file ${chalk.green(destination)} is up-to-date 🥰`)
+ }
+ } catch (error) {
+ if (error.code === 'ENOENT') {
+ console.warn(`The file ${chalk.red(destination)} does not exist`)
+ errors++
+ } else {
+ throw error
+ }
+ }
+ } else {
+ try {
+ const copied = fs.readFileSync(destination, 'utf-8')
+ if (copied === source) {
+ if (opts.verbose) {
+ console.log(`The file ${chalk.green(destination)} was perfect already 👌`)
+ }
+ continue
+ }
+ } catch (error) {
+ if (error.code !== 'ENOENT') throw error
+ }
+ if (!opts.dryRun) {
+ await mkdirp(path.dirname(destination))
+ fs.writeFileSync(destination, source, 'utf-8')
+ if (opts.verbose) {
+ console.log(`Copied latest ${chalk.green(file)} to ${chalk.bold(destination)} 👍🏼`)
+ }
+ } else if (opts.verbose) {
+ console.log(`Would copy latest ${chalk.bold(file)} to ${chalk.bold(destination)}`)
+ }
+ }
+ }
+
+ if (errors > 0) {
+ console.warn(
+ '\n',
+ chalk.yellow(
+ 'Run this script again without --check to make all fixture data files up-to-date. ' +
+ 'Then commit and check in.'
+ )
+ )
+ }
+
+ process.exitCode = errors
+}
diff --git a/tests/fixtures/content/get-started/foo/autotitling.md b/tests/fixtures/content/get-started/foo/autotitling.md
new file mode 100644
index 0000000000..e0d6f1e3b8
--- /dev/null
+++ b/tests/fixtures/content/get-started/foo/autotitling.md
@@ -0,0 +1,26 @@
+---
+title: Autotitling
+intro: Internal links that use AUTOTITLE should just work
+versions:
+ fpt: '*'
+ ghes: '*'
+ ghae: '*'
+ ghec: '*'
+type: how_to
+---
+
+## Introduction
+
+Links that use the word `AUTOTITLE` in the Markdown become the
+title of the document it links to.
+
+For example "[AUTOTITLE](/get-started/quickstart/hello-world)."
+
+It should also work if the URL as a query string, like this:
+[AUTOTITLE](/get-started/quickstart/hello-world?tool=linux)
+
+Equally, if the link has a hash on it:
+[AUTOTITLE](/get-started/quickstart/hello-world#this-hash)
+
+Or, a combination of query string and hash:
+[AUTOTITLE](/get-started/quickstart/hello-world?tool=linux#this-hash)
diff --git a/tests/fixtures/content/get-started/foo/bar.md b/tests/fixtures/content/get-started/foo/bar.md
new file mode 100644
index 0000000000..69083b20ca
--- /dev/null
+++ b/tests/fixtures/content/get-started/foo/bar.md
@@ -0,0 +1,14 @@
+---
+title: Bar Usually Comes After Foo
+shortTitle: Bar
+intro: This page doesn't really have an intro
+versions:
+ fpt: '*'
+ ghes: '*'
+ ghae: '*'
+ ghec: '*'
+---
+
+## Heading
+
+Nothing here to see.
diff --git a/tests/fixtures/content/get-started/foo/cross-version-linking.md b/tests/fixtures/content/get-started/foo/cross-version-linking.md
new file mode 100644
index 0000000000..c3cb1a1a26
--- /dev/null
+++ b/tests/fixtures/content/get-started/foo/cross-version-linking.md
@@ -0,0 +1,16 @@
+---
+title: Cross Version Linking
+intro: Testing to cross the version boundary with hardcoded cross-version links
+versions:
+ fpt: '*'
+ ghes: '*'
+ ghae: '*'
+ ghec: '*'
+type: how_to
+---
+
+## Get right into it
+
+[Hello world always in free-pro-team](/free-pro-team@latest/get-started/quickstart/hello-world)
+
+[Autotitling page always in enterprise-server latest](/enterprise-server@latest/get-started/quickstart/hello-world)
diff --git a/tests/fixtures/content/get-started/foo/index.md b/tests/fixtures/content/get-started/foo/index.md
new file mode 100644
index 0000000000..df893b02b6
--- /dev/null
+++ b/tests/fixtures/content/get-started/foo/index.md
@@ -0,0 +1,14 @@
+---
+title: Fooing Around
+shortTitle: Foo
+intro: 'The most basic of fixture data for {% data variables.product.product_name %}'
+versions:
+ fpt: '*'
+ ghes: '*'
+ ghae: '*'
+ ghec: '*'
+children:
+ - /bar
+ - /autotitling
+ - /cross-version-linking
+---
diff --git a/tests/fixtures/content/get-started/index.md b/tests/fixtures/content/get-started/index.md
new file mode 100644
index 0000000000..d253b4a408
--- /dev/null
+++ b/tests/fixtures/content/get-started/index.md
@@ -0,0 +1,26 @@
+---
+title: Getting started with HubGit
+shortTitle: Get started
+intro: 'This is the intro'
+versions:
+ fpt: '*'
+ ghes: '*'
+ ghae: '*'
+ ghec: '*'
+layout: product-landing
+introLinks:
+ quickstart: /get-started/quickstart
+featuredLinks:
+ guides:
+ - /get-started/quickstart/hello-world
+ popular:
+ - /get-started/foo/bar
+ guideCards:
+ - /get-started/foo/autotitling
+children:
+ - /quickstart
+ - /foo
+communityRedirect:
+ name: Provide HubGit Feedback
+ href: 'https://hubgit.com/orgs/community/discussions/categories/get-started'
+---
diff --git a/tests/fixtures/content/get-started/quickstart/hello-world.md b/tests/fixtures/content/get-started/quickstart/hello-world.md
new file mode 100644
index 0000000000..ccf082858f
--- /dev/null
+++ b/tests/fixtures/content/get-started/quickstart/hello-world.md
@@ -0,0 +1,27 @@
+---
+title: Hello World
+intro: 'Follow this Hello World exercise to get started with {% data variables.product.product_name %}.'
+versions:
+ fpt: '*'
+ ghes: '*'
+ ghae: '*'
+ ghec: '*'
+type: quick_start
+topics:
+ - Pull requests
+ - Fundamentals
+miniTocMaxHeadingLevel: 3
+---
+
+## Introduction
+
+This is just a test.
+
+{% ifversion volvo %}
+Ove loves Volvos.
+{% else %}
+Apparently, a Saab it is.
+{% endif %}
+
+Try changing the current version from "Free, Pro, & Team" to something
+like "Enterprise Server X.Y". It should change the above sentence.
diff --git a/tests/fixtures/content/get-started/quickstart/index.md b/tests/fixtures/content/get-started/quickstart/index.md
new file mode 100644
index 0000000000..40e9cb45b8
--- /dev/null
+++ b/tests/fixtures/content/get-started/quickstart/index.md
@@ -0,0 +1,11 @@
+---
+title: Quickstart
+intro: 'Get started using {% data variables.product.product_name %} to manage Git repositories and collaborate with others.'
+versions:
+ fpt: '*'
+ ghes: '*'
+ ghae: '*'
+ ghec: '*'
+children:
+ - /hello-world
+---
diff --git a/tests/fixtures/content/index.md b/tests/fixtures/content/index.md
new file mode 100644
index 0000000000..6580cd6703
--- /dev/null
+++ b/tests/fixtures/content/index.md
@@ -0,0 +1,59 @@
+---
+title: '{% data variables.product.product_name %}{% ifversion fpt or ghec%}.com{% endif %} Fixture Documentation'
+featuredLinks:
+ gettingStarted:
+ - /get-started/foo/hello-world
+ popular:
+ - get-started
+redirect_from:
+ - /olden-days
+versions: '*'
+children:
+ # The list of childen in the fixtures has to be the same names
+ # as we use in the real content. It can have fewer but can't include
+ # anything that the real `/content/index.md` doesn't contain for this.
+ # The reason is that the `npm run build` compiles a list of rewrites
+ # so that URLs like `/en/get-started/anything` can be treated,
+ # as if the URL had been `/en/free-pro-team@latest/get-started/anything`.
+ - search
+ - get-started
+ # - account-and-profile
+ # - authentication
+ # - repositories
+ # - admin
+ # - billing
+ # - site-policy
+ # - organizations
+ # - code-security
+ # - pull-requests
+ # - issues
+ # - actions
+ # - copilot
+ # - codespaces
+ # - packages
+ # - search-github
+ # - developers
+ # - rest
+ # - graphql
+ # - github-cli
+ # - discussions
+ # - sponsors
+ # - communities
+ # - pages
+ # - education
+ # - desktop
+ # - early-access
+ # - support
+childGroups:
+ - name: Get started
+ octicon: RocketIcon
+ children:
+ - get-started
+
+externalProducts:
+ electron:
+ id: mothership
+ name: GitHub itself
+ href: 'https://github.com'
+ external: true
+---
diff --git a/tests/fixtures/content/search/index.md b/tests/fixtures/content/search/index.md
new file mode 100644
index 0000000000..e3b3da45f7
--- /dev/null
+++ b/tests/fixtures/content/search/index.md
@@ -0,0 +1,10 @@
+---
+title: Search
+hidden: true
+versions:
+ fpt: '*'
+ ghec: '*'
+ ghes: '*'
+ ghae: '*'
+---
+
diff --git a/tests/fixtures/data/features/volvo.yml b/tests/fixtures/data/features/volvo.yml
new file mode 100644
index 0000000000..14ba8f5e2d
--- /dev/null
+++ b/tests/fixtures/data/features/volvo.yml
@@ -0,0 +1,3 @@
+versions:
+ fpt: '*'
+ ghec: '*'
diff --git a/tests/fixtures/data/reusables/enterprise_deprecation/deprecation_details.md b/tests/fixtures/data/reusables/enterprise_deprecation/deprecation_details.md
new file mode 100644
index 0000000000..ed570ed576
--- /dev/null
+++ b/tests/fixtures/data/reusables/enterprise_deprecation/deprecation_details.md
@@ -0,0 +1,2 @@
+No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise.
+For help with the upgrade, contact GitHub Enterprise support.
diff --git a/tests/fixtures/data/reusables/enterprise_deprecation/version_was_deprecated.md b/tests/fixtures/data/reusables/enterprise_deprecation/version_was_deprecated.md
new file mode 100644
index 0000000000..917aa3a6c4
--- /dev/null
+++ b/tests/fixtures/data/reusables/enterprise_deprecation/version_was_deprecated.md
@@ -0,0 +1 @@
+This version of GitHub Enterprise was discontinued on
diff --git a/tests/fixtures/data/reusables/enterprise_deprecation/version_will_be_deprecated.md b/tests/fixtures/data/reusables/enterprise_deprecation/version_will_be_deprecated.md
new file mode 100644
index 0000000000..d1812b0977
--- /dev/null
+++ b/tests/fixtures/data/reusables/enterprise_deprecation/version_will_be_deprecated.md
@@ -0,0 +1 @@
+This version of GitHub Enterprise will be discontinued on
diff --git a/tests/fixtures/data/reusables/policies/translation.md b/tests/fixtures/data/reusables/policies/translation.md
new file mode 100644
index 0000000000..fd1157c558
--- /dev/null
+++ b/tests/fixtures/data/reusables/policies/translation.md
@@ -0,0 +1,3 @@
+This document is translated from English. In the event of any conflict, uncertainty, or apparent inconsistency between this version and the English version(s) of this document, the English version is the controlling version.
+
+If you have suggestions to improve our translation, please open an issue in our site-policy repository.
diff --git a/tests/fixtures/data/ui.yml b/tests/fixtures/data/ui.yml
new file mode 100644
index 0000000000..ea68ef2cc6
--- /dev/null
+++ b/tests/fixtures/data/ui.yml
@@ -0,0 +1,267 @@
+meta:
+ default_description: Get started, troubleshoot, and make the most of GitHub. Documentation for new users, developers, administrators, and all of GitHub's products.
+header:
+ github_docs: GitHub Docs
+ contact: Contact
+ notices:
+ ghae_silent_launch: GitHub AE is currently under limited release.
+ release_candidate:
+ # The version name is rendered before the below text via includes/header-notification.html
+ ' is currently available as a release candidate. For more information, see "About upgrades to new releases."'
+ localization_complete:
+ We publish frequent updates to our documentation, and translation of this page may still be in progress.
+ For the most current information, please visit the
+ English documentation.
+ early_access: 📣 Please do not share this URL publicly. This page contains content about an early access feature.
+ release_notes_use_latest: Please use the latest release for the latest security, performance, and bug fixes.
+ # GHES release notes
+ ghes_release_notes_upgrade_patch_only: 📣 This is not the latest patch release of Enterprise Server.
+ ghes_release_notes_upgrade_release_only: 📣 This is not the latest release of Enterprise Server.
+ ghes_release_notes_upgrade_patch_and_release: 📣 This is not the latest patch release of this release series, and this is not the latest release of Enterprise Server.
+ sign_up_cta: Sign up
+ menu: Menu
+picker:
+ language_picker_default_text: Choose a language
+ product_picker_default_text: All products
+ version_picker_default_text: Choose a version
+release_notes:
+ banner_text: GitHub began rolling these changes out to enterprises on
+search:
+ need_help: Need help?
+ placeholder: Search GitHub Docs
+ no_results: No results found
+ search_results_for: Search results for
+ no_content: No content
+ matches_found: Results found
+ matches_displayed: Matches displayed
+ search_error: An error occurred trying to perform the search.
+ description: Enter a search term to find it in the GitHub Documentation.
+ label: Search GitHub Docs
+ found_results: Found {n} results
+ one_result_found: Found 1 result
+homepage:
+ explore_by_product: Explore by product
+ version_picker: Version
+ description: Help for wherever you are on your GitHub journey.
+toc:
+ getting_started: Getting started
+ popular: Popular
+ startHere: Start here
+ whats_new: What's new
+ videos: Videos
+ all_changelogs: All changelog posts
+pages:
+ article_version: 'Article version'
+ miniToc: In this article
+ all_enterprise_releases: All Enterprise Server releases
+ about_versions: About versions
+ permissions_statement: Who can use this feature
+errors:
+ oops: Ooops!
+ something_went_wrong: It looks like something went wrong.
+ we_track_errors: We track these errors automatically, but if the problem persists please feel free to contact us.
+ page_doesnt_exist: It looks like this page doesn't exist.
+support:
+ still_need_help: Still need help?
+ contact_support: Contact support
+ ask_community: Ask the GitHub community
+survey:
+ able_to_find: Did this doc help you?
+ yes: Yes
+ no: No
+ comment_yes_label: Let us know what we do well
+ comment_no_label: Let us know what we can do better
+ optional: Optional
+ required: Required
+ email_placeholder: email@example.com
+ email_label: If we can contact you with more questions, please enter your email address
+ email_validation: Please enter a valid email address
+ send: Send
+ feedback: Thank you! We received your feedback.
+ not_support: If you need a reply, please contact support instead.
+ privacy_policy: Privacy policy
+contribution_cta:
+ title: Help us make these docs great!
+ body: All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.
+ button: Make a contribution
+ or: Or,
+ to_guidelines: learn how to contribute.
+parameter_table:
+ body: Body parameters
+ default: Default
+ description: Description
+ enum_description_title: Can be one of
+ headers: Headers
+ name: Name
+ path: Path parameters
+ query: Query parameters
+ required: Required
+ see_preview_notice: See preview notice
+ see_preview_notices: See preview notices
+ type: Type
+ single_enum_description: Value
+products:
+ graphql:
+ reference:
+ implements: Implements
+ fields: Fields
+ arguments: Arguments
+ name: Name
+ type: Type
+ description: Description
+ input_fields: Input fields
+ return_fields: Return fields
+ implemented_by: Implemented by
+ values: Values
+ possible_types: Possible types
+ preview_notice: Preview notice
+ deprecation_notice: Deprecation notice
+ preview_period: During the preview period, the API may change without notice.
+ overview:
+ preview_header: 'To toggle this preview and access the following schema members, you must provide a custom media type in the `Accept` header:'
+ preview_schema_members: 'Previewed schema members'
+ announced: Announced
+ updates: Updates
+ rest:
+ banner:
+ api_versioned: The REST API is now versioned.
+ api_version_info: For more information, see "About API versioning."
+ ghes_api_versioned: After a site administrator upgrades your Enterprise Server instance to {{ firstGhesReleaseWithApiVersions.versionTitle }} or later, the REST API will be versioned. To learn how to find your instance's version, see "About versions of GitHub Docs".
+ versioning:
+ about_versions: About REST API versions
+ reference:
+ in: In
+ description: Description
+ notes: Notes
+ parameters: Parameters
+ response: Response
+ example_response: Example response
+ status_code: Status code
+ http_status_code: HTTP response status codes
+ code_sample: Code sample
+ code_samples: Code samples
+ preview_notice: Preview notice
+ preview_notices: Preview notices
+ preview_header_is_required: This header is required
+ preview_notice_to_change: This API is under preview and subject to change
+ works_with: Works with
+ api_reference: REST API reference
+ enum_description_title: Can be one of
+ required: Required
+ headers: Headers
+ query: Query parameters
+ path: Path parameters
+ body: Body parameters
+ webhooks:
+ action_type_switch_error: There was an error switching webhook action types.
+ action_type: Action type
+ availability: Availability
+ webhook_payload_object: Webhook payload object
+ webhook_payload_example: Webhook payload example
+ rephrase_availability:
+ repository: Repositories
+ organization: Organizations
+ app: GitHub Apps
+ business: Enterprises
+ marketplace: GitHub Marketplace
+ sponsors_listing: Sponsored accounts
+footer:
+ all_rights_reserved: All rights reserved
+ terms: Terms
+ privacy: Privacy
+ security: Security
+ product:
+ heading: Product
+ links:
+ features: Features
+ security: Security
+ enterprise: Enterprise
+ case_studies: Case Studies
+ pricing: Pricing
+ resources: Resources
+ platform:
+ heading: Platform
+ links:
+ developer_api: Developer API
+ partners: Partners
+ atom: Atom
+ electron: Electron
+ github_desktop: GitHub Desktop
+ support:
+ heading: Support
+ links:
+ help: Help
+ community_forum: Community Forum
+ training: Training
+ status: Status
+ contact_github: Contact GitHub
+ company:
+ heading: Company
+ links:
+ about: About
+ blog: Blog
+ careers: Careers
+ press: Press
+ shop: Shop
+product_landing:
+ quickstart: Quickstart
+ reference: Reference
+ overview: Overview
+ guides: Guides
+ code_examples: Code examples
+ search_code_examples: Search code examples
+ search_results_for: Search results for
+ matches_displayed: Matches displayed
+ show_more: Show more
+ explore_people_and_projects: Explore people and projects
+ sorry: Sorry, there is no result for
+ no_example: It looks like we don't have an example that fits your filter.
+ try_another: Try another filter or add your code example.
+ no_result: Sorry, there are no guides that match your filter.
+ learn: Learn how to add a code example
+ communities_using_discussions: Communities on GitHub.com using discussions
+ add_your_community: Add your community
+ sponsor_community: GitHub Sponsors community
+ supported_releases: Supported releases
+ release_notes_for: Release notes for
+ upgrade_from: Upgrade from
+ browse_all_docs: Browse all docs
+ browse_all: Browse all
+ docs: docs
+ explore_release_notes: Explore release notes
+ view: View all
+product_guides:
+ start_path: Start learning path
+ learning_paths: '{{ productMap[currentProduct].name }} learning paths'
+ learning_paths_desc: Learning paths are a collection of guides that help you master a particular subject.
+ guides: '{{ productMap[currentProduct].name }} guides'
+ more_guides: more guides
+ load_more: Load more guides
+ all_guides: 'All {{ productMap[currentProduct].name }} guides'
+ filter_instructions: Filter the guide list using these controls
+ filters:
+ type: Type
+ topic: Topic
+ all: All
+ guides_found:
+ multiple: '{n} guides found'
+ one: 1 guide found
+ none: No guides found
+ guide_types:
+ overview: Overview
+ quick_start: Quickstart
+ tutorial: Tutorial
+ how_to: How-to guide
+ reference: Reference
+learning_track_nav:
+ prev_guide: Previous
+ next_guide: Next
+ more_guides: More guides →
+ current_progress: '{i} of {n} in learning path'
+toggle_images:
+ off: Images are off, click to show
+ on: Images are on, click to hide
+ hide_single: Hide image
+ show_single: Show image
+scroll_button:
+ scroll_to_top: Scroll to top
diff --git a/tests/fixtures/data/variables/product.yml b/tests/fixtures/data/variables/product.yml
new file mode 100644
index 0000000000..b54a6cf5d8
--- /dev/null
+++ b/tests/fixtures/data/variables/product.yml
@@ -0,0 +1,2 @@
+product_name: >-
+ {% ifversion ghec %}HubGit Enterprise Cloud{% elsif ghes %}HubGit Enterprise Server{% elsif ghae %}HubGit AE{% else %}HubGit{% endif %}
diff --git a/tests/fixtures/data/variables/release_candidate.yml b/tests/fixtures/data/variables/release_candidate.yml
new file mode 100644
index 0000000000..026d2f7e61
--- /dev/null
+++ b/tests/fixtures/data/variables/release_candidate.yml
@@ -0,0 +1 @@
+version: ''
diff --git a/tests/rendering/footer.js b/tests/rendering-fixtures/footer.js
similarity index 59%
rename from tests/rendering/footer.js
rename to tests/rendering-fixtures/footer.js
index 2fc0c22cd0..8525980ffb 100644
--- a/tests/rendering/footer.js
+++ b/tests/rendering-fixtures/footer.js
@@ -8,7 +8,9 @@ describe('footer', () => {
describe('"contact us" link', () => {
test('leads to support from articles', async () => {
- const $ = await getDOM(`/en/${nonEnterpriseDefaultVersion}/issues`)
+ const $ = await getDOM(
+ `/en/${nonEnterpriseDefaultVersion}/get-started/quickstart/hello-world`
+ )
expect($('a#contact-us').attr('href')).toBe('https://support.github.com/contact')
})
@@ -20,37 +22,23 @@ describe('footer', () => {
describe('"contact us" link with nextjs', () => {
test('leads to support from articles', async () => {
- const $ = await getDOM(`/en/${nonEnterpriseDefaultVersion}/issues?nextjs=`)
+ const $ = await getDOM(`/en/${nonEnterpriseDefaultVersion}/get-started?nextjs=`)
expect($('a#contact-us').attr('href')).toBe('https://support.github.com/contact')
})
})
describe('test redirects for product landing community links pages', () => {
- test('codespaces product landing page leads to codespaces discussions page', async () => {
- const $ = await getDOM(`/en/codespaces`)
+ test('codespaces product landing page leads to discussions page', async () => {
+ const $ = await getDOM('/en/get-started')
expect($('a#ask-community').attr('href')).toBe(
- 'https://github.com/community/community/discussions/categories/codespaces'
- )
- })
-
- test('sponsors product landing page leads to sponsors discussions page', async () => {
- const $ = await getDOM(`/en/sponsors`)
- expect($('a#ask-community').attr('href')).toBe(
- 'https://github.com/community/community/discussions/categories/sponsors'
- )
- })
-
- test('codespaces product landing page leads to discussions discussions page', async () => {
- const $ = await getDOM(`/en/discussions`)
- expect($('a#ask-community').attr('href')).toBe(
- 'https://github.com/community/community/discussions/categories/discussions'
+ 'https://hubgit.com/orgs/community/discussions/categories/get-started'
)
})
})
describe('test redirects for non-product landing community links pages', () => {
test('leads to https://github.community/ when clicking on the community link', async () => {
- const $ = await getDOM(`/en/github/authenticating-to-github`)
+ const $ = await getDOM(`/en/get-started/quickstart/hello-world`)
expect($('a#ask-community').attr('href')).toBe(
'https://github.com/orgs/community/discussions'
)
diff --git a/tests/rendering-fixtures/internal-links.js b/tests/rendering-fixtures/internal-links.js
new file mode 100644
index 0000000000..ea4f4ecfcb
--- /dev/null
+++ b/tests/rendering-fixtures/internal-links.js
@@ -0,0 +1,42 @@
+import { getDOM } from '../helpers/e2etest.js'
+import enterpriseServerReleases from '../../lib/enterprise-server-releases.js'
+import { allVersions } from '../../lib/all-versions.js'
+
+describe('autotitle', () => {
+ test('internal links with AUTOTITLE resolves', async () => {
+ const $ = await getDOM('/get-started/foo/autotitling')
+ const links = $('#article-contents a[href]')
+ links.each((i, element) => {
+ if ($(element).attr('href').includes('/get-started/quickstart/hello-world')) {
+ expect($(element).text()).toBe('Hello World')
+ }
+ })
+ // There are 4 links on the `autotitling.md` content.
+ expect.assertions(4)
+ })
+})
+
+describe('cross-version-links', () => {
+ test.each(Object.keys(allVersions))(
+ 'links to free-pro-team should be implicit even on %p',
+ async (version) => {
+ const URL = `/${version}/get-started/foo/cross-version-linking`
+ const $ = await getDOM(URL)
+ const links = $('#article-contents a[href]')
+
+ // Tests that the hardcoded prefix is always removed
+ const firstLink = links.filter(function () {
+ return $(this).text() === 'Hello world always in free-pro-team'
+ })
+ expect(firstLink.attr('href')).toBe('/en/get-started/quickstart/hello-world')
+
+ // Tests that the second link always goes to enterprise-server@X.Y
+ const secondLink = links.filter(function () {
+ return $(this).text() === 'Autotitling page always in enterprise-server latest'
+ })
+ expect(secondLink.attr('href')).toBe(
+ `/en/enterprise-server@${enterpriseServerReleases.latest}/get-started/quickstart/hello-world`
+ )
+ }
+ )
+})