Skip to content

Repo sync #39363

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,11 @@ redirect_from:

{% data reusables.actions.enterprise-github-hosted-runners %}

## About workflow triggers
## Prerequisites

{% data reusables.actions.about-triggers %}
To learn more about workflows and triggering workflows, see [AUTOTITLE](/actions/concepts/workflows-and-actions/workflows).

Workflow triggers are defined with the `on` key. For more information, see [AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#on).

The following steps occur to trigger a workflow run:

1. An event occurs on your repository. The event has an associated commit SHA and Git ref.
1. {% data variables.product.github %} searches the `.github/workflows` directory in the root of your repository for workflow files that are present in the associated commit SHA or Git ref of the event.
1. A workflow run is triggered for any workflows that have `on:` values that match the triggering event. Some events also require the workflow file to be present on the default branch of the repository in order to run.

Each workflow run will use the version of the workflow that is present in the associated commit SHA or Git ref of the event. When a workflow runs, {% data variables.product.github %} sets the `GITHUB_SHA` (commit SHA) and `GITHUB_REF` (Git ref) environment variables in the runner environment. For more information, see [AUTOTITLE](/actions/learn-github-actions/variables).

### Triggering a workflow from a workflow
## Triggering a workflow from a workflow

{% data reusables.actions.actions-do-not-trigger-workflows %} For more information, see [AUTOTITLE](/actions/security-guides/automatic-token-authentication).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,8 @@ Examples of how to configure access to the private registries supported by {% da
* [`cargo-registry`](#cargo-registry)
* [`composer-repository`](#composer-repository)
* [`docker-registry`](#docker-registry)
* [`git`](#git)
* [`git`](#git){% ifversion dependabot-helm-support %}
* [`helm-registry`](#helm-registry){% endif %}
* [`hex-organization`](#hex-organization)
* [`hex-repository`](#hex-repository)
* [`maven-repository`](#maven-repository)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ redirect_from:

>[!NOTE]
> * MCP support is generally available (GA) in {% data variables.copilot.copilot_chat_short %} for {% data variables.product.prodname_vscode %}.
> * MCP support for Copilot in {% data variables.product.prodname_vs %}, JetBrains, Eclipse, and Xcode is in {% data variables.release-phases.public_preview %} and is subject to change.
> * The [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-pre-release-license-terms) apply to your use of this product.
> * MCP support for {% data variables.product.prodname_copilot_short %} in {% data variables.product.prodname_vs %}, JetBrains, Eclipse, and Xcode is in {% data variables.release-phases.public_preview %} and is subject to change.
> * The [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-pre-release-license-terms) apply only to {% data variables.product.prodname_copilot_short %} in IDEs where MCP support is still in preview. GA terms apply when using MCP for {% data variables.product.prodname_copilot_short %} in {% data variables.product.prodname_vscode %}.

{% vscode %}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@ Enable {% data variables.product.prodname_copilot_short %} for some or all organ

If your enterprise is on {% data variables.enterprise.data_residency_site %}, users must perform some additional setup to authenticate to their account from their development environment. See [AUTOTITLE](/copilot/managing-copilot/configure-personal-settings/using-github-copilot-with-an-account-on-ghecom).

## 5. Drive {% data variables.product.prodname_copilot_short %} adoption
## Next steps

Planning and implementing an effective enablement process is essential to drive adoption of {% data variables.product.prodname_copilot_short %} in your enterprise. See [AUTOTITLE](/copilot/rolling-out-github-copilot-at-scale/driving-copilot-adoption-in-your-company).
{% data reusables.copilot.setup-next-steps %}
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,10 @@ You may also need to install custom SSL certificates on your members' machines.

## 4. Grant access to members

Enable {% data variables.product.prodname_copilot_short %} for some or all members of your organization. See [AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/granting-access-to-copilot-for-members-of-your-organization).

To help drive adoption of {% data variables.product.prodname_copilot_short %} in your organization, think about what teams or members are most excited about {% data variables.product.prodname_copilot_short %} or could benefit the most from {% data variables.product.prodname_copilot_short %}. You may want to enable {% data variables.product.prodname_copilot_short %} for those members before enabling {% data variables.product.prodname_copilot_short %} for your whole organization. This can help you discover blockers, demonstrate early success, and set your organization up for a successful {% data variables.product.prodname_copilot_short %} rollout.

{% data reusables.copilot.self-serve-license-link %}
Enable {% data variables.product.prodname_copilot_short %} for some or all members of your organization. You may want to identify teams or members who are most likely to benefit from {% data variables.product.prodname_copilot_short %} and enable {% data variables.product.prodname_copilot_short %} for them first to discover potential blockers and demonstrate early success. See [AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/granting-access-to-copilot-for-members-of-your-organization).

If your organization is part of an enterprise on {% data variables.enterprise.data_residency_site %}, users must perform some additional setup to authenticate to their account from their development environment. See [AUTOTITLE](/copilot/managing-copilot/configure-personal-settings/using-github-copilot-with-an-account-on-ghecom).

## 5. Drive {% data variables.product.prodname_copilot_short %} adoption

Planning and implementing an effective enablement process is essential to drive adoption of {% data variables.product.prodname_copilot_short %} in your organization. See [AUTOTITLE](/copilot/rolling-out-github-copilot-at-scale/driving-copilot-adoption-in-your-company).

## 6. Enhance the {% data variables.product.prodname_copilot_short %} experience

Enhance the {% data variables.product.prodname_copilot_short %} experience for your organization by:
## Next steps

* **Setting up knowledge bases** for use with {% data variables.copilot.copilot_chat_short %} _({% data variables.copilot.copilot_enterprise_short %} only)_. See [AUTOTITLE](/enterprise-cloud@latest/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-copilot-knowledge-bases).
* **Installing {% data variables.copilot.copilot_extensions_short %}** to integrate other tools with {% data variables.copilot.copilot_chat_short %}. See [AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/installing-github-copilot-extensions-for-your-organization).
* **Adding {% data variables.copilot.copilot_coding_agent %}** as a team member to work asynchronously on issues. See [AUTOTITLE](/copilot/rolling-out-github-copilot-at-scale/enabling-developers/using-copilot-coding-agent-in-org).
{% data reusables.copilot.setup-next-steps %}
8 changes: 7 additions & 1 deletion data/release-notes/enterprise-server/3-14/0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@ sections:
- |
When using a JSON Web Token (JWT) to authenticate or request an installation token, developers of GitHub Apps can use the app's client ID for the JWT's `iss` claim. The application ID remains valid, but is considered deprecated.

changes:
- |
The API endpoint for setting and removing organization membership for a user (`PUT /orgs/{org}/memberships/{username}` and `DELETE /orgs/{org}/memberships/{username}`) requires `admin:org` permissions for classic tokens. Previously, the changes were allowed with the `read:org, repo` permissions. [Updated: 2025-07-16]

known_issues:
- |
Complete SCIM payloads are written to the audit log, including SCIM attributes that are not required or supported per [API docs](/rest/enterprise-admin/scim?apiVersion=2022-11-28#supported-scim-user-attributes). Customers using Okta with SCIM may notice that a placeholder password attribute is among the data passed to audit logs in its current configuration. This placeholder data is associated with Okta’s password synchronization feature that is not expected or required by GitHub. See [okta-scim](https://developer.okta.com/docs/api/openapi/okta-scim/guides/scim-20/#create-the-user) for more information.
Expand Down Expand Up @@ -244,5 +248,7 @@ sections:
These release notes previously did not include a note for the deprecation of team discussions.
- |
These release notes previously indicated as a known issue that on GitHub Enterprise Server 3.14.0, repositories originally imported using `ghe-migrator` will not correctly track Advanced Security contributions.

The fix for this problem was already included in GitHub Enterprise Server [3.12](/admin/release-notes#3.12.0-bugs). [Updated: 2025-04-11]
- |
The release notes previously did not include a note for the change in permissions required for managing user organization membership. [Updated: 2025-07-16]
10 changes: 10 additions & 0 deletions data/reusables/actions/about-triggers.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,13 @@ Workflow triggers are events that cause a workflow to run. These events can be:
* Manual

For example, you can configure your workflow to run when a push is made to the default branch of your repository, when a release is created, or when an issue is opened.

Workflow triggers are defined with the `on` key. For more information, see [AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#on).

The following steps occur to trigger a workflow run:

1. An event occurs on your repository. The event has an associated commit SHA and Git ref.
1. {% data variables.product.github %} searches the `.github/workflows` directory in the root of your repository for workflow files that are present in the associated commit SHA or Git ref of the event.
1. A workflow run is triggered for any workflows that have `on:` values that match the triggering event. Some events also require the workflow file to be present on the default branch of the repository in order to run.

Each workflow run will use the version of the workflow that is present in the associated commit SHA or Git ref of the event. When a workflow runs, {% data variables.product.github %} sets the `GITHUB_SHA` (commit SHA) and `GITHUB_REF` (Git ref) environment variables in the runner environment. For more information, see [AUTOTITLE](/actions/learn-github-actions/variables).
4 changes: 3 additions & 1 deletion data/reusables/contributing/content-linter-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
| GHD042 | liquid-tag-whitespace | Liquid tags should start and end with one whitespace. Liquid tag arguments should be separated by only one whitespace. | error | liquid, format |
| GHD043 | link-quotation | Internal link titles must not be surrounded by quotations | error | links, url |
| GHD044 | octicon-aria-labels | Octicons should always have an aria-label attribute even if aria-hidden. | warning | accessibility, octicons |
| GHD046 | outdated-release-phase-terminology | Outdated release phase terminology should be replaced with current GitHub terminology | warning | terminology, consistency, release-phases |
| GHD048 | british-english-quotes | Periods and commas should be placed inside quotation marks (American English style) | warning | punctuation, quotes, style, consistency |
| GHD050 | multiple-emphasis-patterns | Do not use more than one emphasis/strong, italics, or uppercase for a string | warning | formatting, emphasis, style |
| GHD049 | note-warning-formatting | Note and warning tags should be formatted according to style guide | warning | formatting, callouts, notes, warnings, style |
| GHD049 | note-warning-formatting | Note and warning tags should be formatted according to style guide | warning | formatting, callouts, notes, warnings, style |
| GHD051 | frontmatter-versions-whitespace | Versions frontmatter should not contain unnecessary whitespace | warning | frontmatter, versions |
4 changes: 4 additions & 0 deletions data/reusables/copilot/setup-next-steps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* **Explore self-service license management options**. Many successful rollouts use a self-service model where developers can claim a license without approval. See [AUTOTITLE](/copilot/rolling-out-github-copilot-at-scale/setting-up-a-self-serve-process-for-github-copilot-licenses).
* **Learn how to plan and implement an effective enablement process to drive {% data variables.product.prodname_copilot_short %} adoption**. See [AUTOTITLE](/copilot/rolling-out-github-copilot-at-scale/driving-copilot-adoption-in-your-company).
* **Enhance the development experience by enabling and training developers on the latest features**. For example, share context with {% data variables.copilot.copilot_spaces %}, enable {% data variables.copilot.copilot_code-review_short %} on pull requests, and allow developers to experiment with prompts using {% data variables.product.prodname_github_models %}. For an example showing how these features fit together, see [AUTOTITLE](/copilot/tutorials/rolling-out-github-copilot-at-scale/enabling-developers/integrating-agentic-ai).
* **Add {% data variables.copilot.copilot_coding_agent %} as a team member for asynchronous issue work**. See [AUTOTITLE](/copilot/rolling-out-github-copilot-at-scale/enabling-developers/using-copilot-coding-agent-in-org).
2 changes: 1 addition & 1 deletion data/reusables/repositories/ruleset-beta-note.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
> [!NOTE]
> {% ifversion ghes > 3.16 %}Only changes made to a ruleset after you have upgraded to {% data variables.product.prodname_ghe_server %} 3.17.0, or a later version, are included in the ruleset history.{% elsif fpt or ghec %}Only changes made to a ruleset after the {% data variables.release-phases.public_preview %} release, on October 11, 2023, are included in the ruleset history.{% endif %}
> {% ifversion ghes > 3.16 %}Only changes made to a ruleset after you have upgraded to {% data variables.product.prodname_ghe_server %} 3.17.0, or a later version, are included in the ruleset history.{% endif %}
2 changes: 2 additions & 0 deletions data/reusables/repositories/ruleset-history-conceptual.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
Ruleset history lists events triggered by changes that affect your rulesets within the last 180 days.

You can view all the changes to a ruleset and revert back to a specific iteration. You can also download a JSON file containing the ruleset's configuration at a specific iteration. The bypass list of a ruleset is excluded from the exported JSON file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import { addError } from 'markdownlint-rule-helpers'
import { getFrontmatter } from '@/content-linter/lib/helpers/utils'

export const frontmatterVersionsWhitespace = {
names: ['GHD051', 'frontmatter-versions-whitespace'],
description: 'Versions frontmatter should not contain unnecessary whitespace',
tags: ['frontmatter', 'versions'],
function: (params, onError) => {
const fm = getFrontmatter(params.lines)
if (!fm || !fm.versions) return

const versionsObj = fm.versions
if (typeof versionsObj !== 'object') return

// Find the frontmatter section in the file
const fmStartIndex = params.lines.findIndex((line) => line.trim() === '---')
if (fmStartIndex === -1) return

// Check each version entry for whitespace issues
Object.entries(versionsObj).forEach(([key, value]) => {
if (typeof value !== 'string') return

const hasUnwantedWhitespace = checkForUnwantedWhitespace(value)
if (hasUnwantedWhitespace) {
// Find the line containing this version key
const versionLineIndex = params.lines.findIndex((line, index) => {
return index > fmStartIndex && line.trim().startsWith(`${key}:`) && line.includes(value)
})

if (versionLineIndex !== -1) {
const line = params.lines[versionLineIndex]
const lineNumber = versionLineIndex + 1
const cleanedValue = getCleanedValue(value)

// Create fix info to remove unwanted whitespace
const fixInfo = {
editColumn: line.indexOf(value) + 1,
deleteCount: value.length,
insertText: cleanedValue,
}

addError(
onError,
lineNumber,
`Versions frontmatter should not contain leading or trailing whitespace. Found: '${value}', expected: '${cleanedValue}'`,
line,
[line.indexOf(value) + 1, value.length],
fixInfo,
)
}
}
})
},
}

/**
* Check if a version string has unwanted whitespace
* Allows whitespace in complex expressions like '<3.6 >3.8'
* but disallows leading/trailing whitespace
*/
function checkForUnwantedWhitespace(value) {
// Don't flag if the value is just whitespace or empty
if (!value || value.trim() === '') return false

// Check for leading or trailing whitespace
if (value !== value.trim()) return true

// Allow whitespace around operators in complex expressions
// This regex matches patterns like '<3.6 >3.8', '>=2.19', etc.
const hasOperators = /[<>=]/.test(value)
if (hasOperators) {
// For operator expressions, we're more lenient about internal whitespace
// Only flag if there's leading/trailing whitespace (already checked above)
return false
}

// For simple version strings (like 'fpt', 'ghec'), no internal whitespace should be allowed
// This catches cases like 'f pt' where there's whitespace in the middle
return /\s/.test(value)
}

/**
* Get the cleaned version of a value by removing appropriate whitespace
*/
function getCleanedValue(value) {
// For values with operators, just trim leading/trailing whitespace
const hasOperators = /[<>=]/.test(value)
if (hasOperators) {
return value.trim()
}

// For simple version strings, remove all whitespace
return value.replace(/\s/g, '')
}
Loading
Loading