Skip to content
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 @@ -42,3 +42,5 @@ Step debug logging increases the verbosity of a job's logs during and after a jo

1. To enable step debug logging, set the following secret or variable in the repository that contains the workflow: `ACTIONS_STEP_DEBUG` to `true`. If both the secret and variable are set, the value of the secret takes precedence over the variable.
1. After setting the secret or variable, more debug events are shown in the step logs. For more information, see [AUTOTITLE](/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs#viewing-logs-to-diagnose-failures).

You can also use the `runner.debug` context to conditionally run steps only when debug logging is enabled. For more information, see [AUTOTITLE](/actions/reference/workflows-and-actions/contexts#runner-context).
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ If members of your enterprise access {% data variables.location.product_location

{% data variables.product.github %} does not display IP addresses in the audit log for `api.request` events that do not have repository context, such as requests triggered by GraphQL or requests to endpoints that reference only a user or organization.

{% data variables.product.github %} does not display IP addresses in the audit log for certain events where the actor recorded in the audit log differs from the person or system that performed the action. {% data variables.product.github %} also does not display IP addresses when a bot or automated system performs the action.

## Enabling display of IP addresses in the audit log

{% data reusables.enterprise-accounts.access-enterprise %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,13 @@ shortTitle: Configure 2FA recovery
---
In addition to securely storing your two-factor authentication (2FA) recovery codes, we strongly recommend configuring two or more authentication methods to avoid losing access to your account. For more information, see [AUTOTITLE](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication#configuring-two-factor-authentication-using-a-security-key).

## Downloading your two-factor authentication recovery codes
As well as configuring authentication methods, we'd also strongly suggest setting up some 2FA recovery methods which may be helpful if you were ever to lose your authentication methods. Recovery methods available to be configured include: the account's recovery codes file, SSH key(s), {% data variables.product.pat_generic_caps_plural %} (PATs) and verified device(s).

## About the recovery codes file

The recovery codes file includes one-time codes for account recovery if you can’t access your two-factor authentication method. You should download and store these codes securely.

### Downloading your two-factor authentication recovery codes

{% data reusables.two_fa.about-recovery-codes %} You can also download your recovery codes at any point after enabling two-factor authentication.

Expand All @@ -36,7 +42,7 @@ If you generate new recovery codes or disable and re-enable 2FA, the recovery co
* To save a hard copy of your recovery codes, click **Print**.
* To copy your recovery codes for storage in a password manager, click **Copy**.

## Generating a new set of recovery codes
### Generating a new set of recovery codes

Once you use a recovery code to regain access to your account, it cannot be reused. If you've used all 16 recovery codes, you can generate another list of codes. Generating a new set of recovery codes will invalidate any codes you previously generated.

Expand All @@ -45,7 +51,7 @@ Once you use a recovery code to regain access to your account, it cannot be reus
{% data reusables.two_fa.show-recovery-codes %}
1. Under "Generate new recovery codes", click **Generate new recovery codes**.

## Configuring backups for your time-based one-time password (TOTP) app
### Configuring backups for your time-based one-time password (TOTP) app

Most TOTP apps support backups. If you lose access to your authentication device, you can use your TOTP app backup to access your authentication method and account credentials on a different authentication device, ensuring continued access to your 2FA-enabled account.

Expand All @@ -55,6 +61,20 @@ The process of configuring backups is different for each TOTP app. For some exam
* [Google Authenticator](https://security.googleblog.com/2023/04/google-authenticator-now-supports.html)
* [Microsoft Authenticator](https://support.microsoft.com/en-us/account-billing/back-up-and-recover-account-credentials-in-the-authenticator-app-bb939936-7a8d-4e88-bc43-49bc1a700a40)

## SSH keys

SSH keys can be configured and used for account recovery if ever required. To set up 1 or more SSH keys that can be used to recover access to your 2FA-enabled account, see [AUTOTITLE](/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account).

> [!NOTE]
> Be sure to choose 'authentication' as the key's type during this process.

## {% data variables.product.pat_generic_caps_plural %}

{% data variables.product.pat_generic_caps_plural %} (PATs) can be configured and used for recovery if ever needed. To set up 1 or more PATs that can be used to recover access, see [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic).

> [!NOTE]
> Be sure to choose 'repo' when choosing the 'scopes' available during this process.

## Further reading

* [AUTOTITLE](/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication)
Expand Down
11 changes: 4 additions & 7 deletions content/billing/concepts/product-billing/github-actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,14 +130,11 @@ For full details of minute costs for different types of runners, see [AUTOTITLE]

### Example minutes cost calculation for {% data variables.product.github %}-hosted runners

For example, if your organization uses {% data variables.product.prodname_team %}, using 5,000 minutes beyond the included quota on {% data variables.product.github %}-hosted runners would have a total actions minutes cost of $56 USD currently, if you used baseline Linux and Windows runners.
For example, if your organization uses {% data variables.product.prodname_team %}, using 5,000 minutes beyond the included quota on {% data variables.product.github %}-hosted runners would have a total actions minutes cost of $38 USD currently, if you used baseline Linux and Windows runners.

* 5,000 (3,000 Linux and 2,000 Windows) minutes = $56 USD ($24 USD + $32 USD).
* 3,000 Linux minutes at $0.008 USD per minute = $24 USD.
* 2,000 Windows minutes at $0.016 USD per minute = $32 USD.

>[!TIP]
> The cost for these runners will reduce from January 1, 2026.
* 5,000 (3,000 Linux and 2,000 Windows) minutes = $38 USD ($18 USD + $20 USD).
* 3,000 Linux minutes at $0.006 USD per minute = $18 USD.
* 2,000 Windows minutes at $0.010 USD per minute = $20 USD.

### Example artifact storage cost calculation

Expand Down
70 changes: 35 additions & 35 deletions content/billing/reference/actions-runner-pricing.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,47 +20,47 @@ redirect_from:

## x64-powered {% data variables.actions.hosted_runners %}

| Operating system | Billing SKU | Per-minute rate until January 1, 2026 (USD) | January 1, 2026 onward | Percentage change |
| --------------------- | -------------------------- | ----------------- |---------------|------|
| Linux Advanced 2-core | `linux_2_core_advanced` | $0.008 | $0.006 | -25% |
| Linux 4-core | `linux_4_core` | $0.016 | $0.012 | -25% |
| Linux 8-core | `linux_8_core` | $0.032 | $0.022 | -31% |
| Linux 16-core | `linux_16_core` | $0.064 | $0.042 | -34% |
| Linux 32-core | `linux_32_core` | $0.128 | $0.082 | -36% |
| Linux 64-core | `linux_64_core` | $0.256 | $0.162 | -37% |
| Linux 96-core | `linux_96_core` | $0.384 | $0.252 | -34% |
| Windows 4-core | `windows_4_core` | $0.032 | $0.022 | -31% |
| Windows 8-core | `windows_8_core` | $0.064 | $0.042 | -34% |
| Windows 16-core | `windows_16_core` | $0.128 | $0.082 | -36% |
| Windows 32-core | `windows_32_core` | $0.256 | $0.162 | -37% |
| Windows 64-core | `windows_64_core` | $0.512 | $0.322 | -37% |
| Windows 96-core | `windows_96_core` | $0.768 | $0.552 | -28% |
| macOS 12-core | `macos_l` | $0.120 | $0.077 | -36% |
| Operating system | Billing SKU | Per-minute rate (USD) |
| --------------------- | -------------------------- | --------------------- |
| Linux Advanced 2-core | `linux_2_core_advanced` | $0.006 |
| Linux 4-core | `linux_4_core` | $0.012 |
| Linux 8-core | `linux_8_core` | $0.022 |
| Linux 16-core | `linux_16_core` | $0.042 |
| Linux 32-core | `linux_32_core` | $0.082 |
| Linux 64-core | `linux_64_core` | $0.162 |
| Linux 96-core | `linux_96_core` | $0.252 |
| Windows 4-core | `windows_4_core` | $0.022 |
| Windows 8-core | `windows_8_core` | $0.042 |
| Windows 16-core | `windows_16_core` | $0.082 |
| Windows 32-core | `windows_32_core` | $0.162 |
| Windows 64-core | `windows_64_core` | $0.322 |
| Windows 96-core | `windows_96_core` | $0.552 |
| macOS 12-core | `macos_l` | $0.077 |

## arm64-powered {% data variables.actions.hosted_runners %}

| Operating system | Billing SKU | Per-minute rate until January 1, 2026 (USD) | January 1, 2026 onward | Percentage change |
| --------------------- | --------------------- | ----------------- |---------------|------|
| Linux 2-core | `linux_2_core_arm` | $0.005 | $0.005 |     0% |
| Linux 4-core | `linux_4_core_arm` | $0.010 | $0.008 | -20% |
| Linux 8-core | `linux_8_core_arm` | $0.020 | $0.014 | -30% |
| Linux 16-core | `linux_16_core_arm` | $0.040 | $0.026 | -35% |
| Linux 32-core | `linux_32_core_arm` | $0.080 | $0.050 | -38% |
| Linux 64-core | `linux_64_core_arm` | $0.160 | $0.098 | -39% |
| Windows 2-core | `windows_2_core_arm` | $0.010 | $0.008 | -20% |
| Windows 4-core | `windows_4_core_arm` | $0.020 | $0.014 | -30% |
| Windows 8-core | `windows_8_core_arm` | $0.040 | $0.026 | -35% |
| Windows 16-core | `windows_16_core_arm` | $0.080 | $0.050 | -38% |
| Windows 32-core | `windows_32_core_arm` | $0.160 | $0.098 | -39% |
| Windows 64-core | `windows_64_core_arm` | $0.320 | $0.194 | -39% |
| macOS 5-core (M2 Pro) | `macos_xl` | $0.160 | $0.102 | -36% |
| Operating system | Billing SKU | Per-minute rate (USD) |
| --------------------- | --------------------- | --------------------- |
| Linux 2-core | `linux_2_core_arm` | $0.005 |
| Linux 4-core | `linux_4_core_arm` | $0.008 |
| Linux 8-core | `linux_8_core_arm` | $0.014 |
| Linux 16-core | `linux_16_core_arm` | $0.026 |
| Linux 32-core | `linux_32_core_arm` | $0.050 |
| Linux 64-core | `linux_64_core_arm` | $0.098 |
| Windows 2-core | `windows_2_core_arm` | $0.008 |
| Windows 4-core | `windows_4_core_arm` | $0.014 |
| Windows 8-core | `windows_8_core_arm` | $0.026 |
| Windows 16-core | `windows_16_core_arm` | $0.050 |
| Windows 32-core | `windows_32_core_arm` | $0.098 |
| Windows 64-core | `windows_64_core_arm` | $0.194 |
| macOS 5-core (M2 Pro) | `macos_xl` | $0.102 |

## GPU-powered {% data variables.actions.hosted_runners %}

| Operating system | Billing SKU | Per-minute rate until January 1, 2026 (USD) | January 1, 2026 onward | Percentage change |
| ------------------ | ------------------------ | ------------- |------------|------|
| Linux 4-core | `linux_4_core_gpu` | $0.070 | $0.052 | -26% |
| Windows 4-core | `windows_4_core_gpu` | $0.14 | $0.102 | -27% |
| Operating system | Billing SKU | Per-minute rate (USD) |
| ------------------ | ---------------------| ----------------------|
| Linux 4-core | `linux_4_core_gpu` | $0.052 |
| Windows 4-core | `windows_4_core_gpu` | $0.102 |

## Points to note about rates for runners

Expand Down
29 changes: 20 additions & 9 deletions content/copilot/concepts/agents/about-agent-skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,23 @@ Agent Skills work with {% data variables.copilot.copilot_coding_agent %}, the {%

You can create your own skills to teach {% data variables.product.prodname_copilot_short %} to perform tasks in a specific, repeatable way—or use skills shared online, for example in the [`anthropics/skills`](https://github.com/anthropics/skills) repository or {% data variables.product.company_short %}'s community created [`github/awesome-copilot`](https://github.com/github/awesome-copilot) collection.

Currently, skills can only be created at the repository level. Support for organization-level and enterprise-level skills is coming soon.
{% data variables.product.prodname_copilot_short %} supports:

You can use both skills and custom instructions to teach {% data variables.product.prodname_copilot_short %} how to work in your repository and how to perform specific tasks. We recommend using custom instructions for simple instructions relevant to almost every task (for example information about your repository's coding standards), and skills for more detailed instructions that {% data variables.product.prodname_copilot_short %} should access when relevant. To learn more about repository custom instructions, see [AUTOTITLE](/copilot/how-tos/configure-custom-instructions/add-repository-instructions).
* Project skills, stored in your repository (`.github/skills` or `.claude/skills`)
* Personal skills, stored in your home directory and shared across projects (`~/.copilot/skills` or `~/.claude/skills`) ({% data variables.copilot.copilot_coding_agent %} and {% data variables.copilot.copilot_cli %} only)

Support for organization-level and enterprise-level skills is coming soon.

> [!NOTE]
> {% data reusables.cli.preview-note-cli-body %}

## Creating and adding skills

## Adding skills to your repository
1. Create a subdirectory for your new skill. Each skill should have its own directory (for example, `.github/skills/webapp-testing`). Skill directory names should be lowercase, use hyphens for spaces, and typically match the `name` in the `SKILL.md` frontmatter.

1. Create a `.github/skills` directory to store your skills.
For project skills, specific to a single repository, store your skill under `.github/skills` or `.claude/skills`.

> [!NOTE]
> Skills stored in the `.claude/skills` directory are also supported.

1. Create a subdirectory for your new skill. Each skill should have its own directory (for example, `.github/skills/webapp-testing`). Skill directory names should be lowercase, use hyphens for spaces, and typically match the `name` in the `SKILL.md` frontmatter.
For personal skills, shared across projects, store your skill under `~/.copilot/skills` or `~/.claude/skills`.

1. Create a `SKILL.md` file with your skill's instructions.

Expand All @@ -51,7 +52,9 @@ You can use both skills and custom instructions to teach {% data variables.produ

### Example `SKILL.md` file

This file would be located in the `.github/skills/github-actions-failure-debugging` directory.
For a project skill, this file would be located in the `/path/to/repository/.github/skills/github-actions-failure-debugging` directory.

For a personal skill, this file would be located in the `~/.copilot/skills/github-actions-failure-debugging` directory.

```markdown copy
---
Expand All @@ -73,3 +76,11 @@ To debug failing GitHub Actions workflows in a pull request, follow this process
When performing tasks, {% data variables.product.prodname_copilot_short %} will decide when to use your skills based on your prompt and the skill's description.

When {% data variables.product.prodname_copilot_short %} chooses to use a skill, the `SKILL.md` file will be injected in the agent's context, giving the agent access to your instructions. It can then follow those instructions, and use any scripts or examples you may have included in the skill's directory.

## Skills versus custom instructions

You can use both skills and custom instructions to teach {% data variables.product.prodname_copilot_short %} how to work in your repository and how to perform specific tasks.

We recommend using custom instructions for simple instructions relevant to almost every task (for example information about your repository's coding standards), and skills for more detailed instructions that {% data variables.product.prodname_copilot_short %} should access when relevant.

To learn more about repository custom instructions, see [AUTOTITLE](/copilot/how-tos/configure-custom-instructions/add-repository-instructions).
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,6 @@ Users can include hidden messages in issues assigned to {% data variables.copilo
### Limitations in {% data variables.copilot.copilot_coding_agent %}'s compatibility with other features

* **{% data variables.product.prodname_copilot_short %} isn't able to comply with certain rules that may be configured for your repository**. If you have configured a ruleset or branch protection rule that isn't compatible with {% data variables.copilot.copilot_coding_agent %} (for example the "Require signed commits" rule), access to the agent will be blocked. If the rule is configured using rulesets, you can add {% data variables.product.prodname_copilot_short %} as a bypass actor to enable access. See [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/creating-rulesets-for-a-repository#granting-bypass-permissions-for-your-branch-or-tag-ruleset).
* **{% data variables.copilot.copilot_coding_agent %} does not work in personal repositories owned by {% data variables.enterprise.prodname_managed_users %}**. This is because {% data variables.copilot.copilot_coding_agent %} requires {% data variables.product.company_short %}-hosted runners, which are not available to personal repositories owned by {% data variables.enterprise.prodname_managed_users %}. See [AUTOTITLE](/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners).
* **{% data variables.copilot.copilot_coding_agent %} doesn't account for content exclusions**. Content exclusions allow administrators to configure {% data variables.product.prodname_copilot_short %} to ignore certain files. When using {% data variables.copilot.copilot_coding_agent %}, {% data variables.product.prodname_copilot_short %} will not ignore these files, and will be able to see and update them. See [AUTOTITLE](/copilot/managing-copilot/configuring-and-auditing-content-exclusion/excluding-content-from-github-copilot).
* **{% data variables.copilot.copilot_coding_agent %} only works with repositories hosted on {% data variables.product.github %}**. If your repository is stored using a different code hosting platform, {% data variables.product.prodname_copilot_short %} won't be able to work on it.

Expand Down
Loading
Loading