Merge branch 'main' into main
This commit is contained in:
@@ -51,7 +51,7 @@ type Props = {
|
||||
}
|
||||
export const PlatformPicker = ({ variant = 'subnav' }: Props) => {
|
||||
const router = useRouter()
|
||||
const { query, asPath } = router
|
||||
const { query, asPath, locale } = router
|
||||
const { defaultPlatform, detectedPlatforms } = useArticleContext()
|
||||
const [currentPlatform, setCurrentPlatform] = useState(defaultPlatform || '')
|
||||
|
||||
@@ -91,7 +91,10 @@ export const PlatformPicker = ({ variant = 'subnav' }: Props) => {
|
||||
const [pathRoot, pathQuery = ''] = asPath.split('?')
|
||||
const params = new URLSearchParams(pathQuery)
|
||||
params.set(platformQueryKey, platform)
|
||||
router.push({ pathname: pathRoot, query: params.toString() }, undefined, { shallow: true })
|
||||
router.push({ pathname: pathRoot, query: params.toString() }, undefined, {
|
||||
shallow: true,
|
||||
locale,
|
||||
})
|
||||
|
||||
sendEvent({
|
||||
type: EventType.preference,
|
||||
|
||||
@@ -53,7 +53,7 @@ type Props = {
|
||||
}
|
||||
export const ToolPicker = ({ variant = 'subnav' }: Props) => {
|
||||
const router = useRouter()
|
||||
const { asPath, query } = router
|
||||
const { asPath, query, locale } = router
|
||||
// allTools comes from the ArticleContext which contains the list of tools available
|
||||
const { defaultTool, detectedTools, allTools } = useArticleContext()
|
||||
const [currentTool, setCurrentTool] = useState(getDefaultTool(defaultTool, detectedTools))
|
||||
@@ -97,7 +97,10 @@ export const ToolPicker = ({ variant = 'subnav' }: Props) => {
|
||||
const [pathRoot, pathQuery = ''] = asPath.split('?')
|
||||
const params = new URLSearchParams(pathQuery)
|
||||
params.set(toolQueryKey, tool)
|
||||
router.push({ pathname: pathRoot, query: params.toString() }, undefined, { shallow: true })
|
||||
router.push({ pathname: pathRoot, query: params.toString() }, undefined, {
|
||||
shallow: true,
|
||||
locale,
|
||||
})
|
||||
|
||||
sendEvent({
|
||||
type: EventType.preference,
|
||||
|
||||
@@ -63,69 +63,73 @@ export const ArticleCards = () => {
|
||||
|
||||
return (
|
||||
<div>
|
||||
<label htmlFor="guide-filter-form">{t('filter_instructions')}</label>
|
||||
<form name="guide-filter-form" className="mt-2 mb-5 d-flex d-flex">
|
||||
<div data-testid="card-filter-types">
|
||||
<div
|
||||
onClick={() => clickDropdown(typesRef)}
|
||||
onKeyDown={() => clickDropdown(typesRef)}
|
||||
role="button"
|
||||
tabIndex={-1}
|
||||
className="text-uppercase f6 color-fg-muted d-block"
|
||||
>
|
||||
{t('filters.type')}
|
||||
<div data-search="hide">
|
||||
<label htmlFor="guide-filter-form">{t('filter_instructions')}</label>
|
||||
<form name="guide-filter-form" className="mt-2 mb-5 d-flex d-flex">
|
||||
<div data-testid="card-filter-types">
|
||||
<div
|
||||
onClick={() => clickDropdown(typesRef)}
|
||||
onKeyDown={() => clickDropdown(typesRef)}
|
||||
role="button"
|
||||
tabIndex={-1}
|
||||
className="text-uppercase f6 color-fg-muted d-block"
|
||||
>
|
||||
{t('filters.type')}
|
||||
</div>
|
||||
<ActionMenu anchorRef={typesRef}>
|
||||
<ActionMenu.Button>
|
||||
{typeFilter ? typeFilter.text : t('filters.all')}
|
||||
</ActionMenu.Button>
|
||||
<ActionMenu.Overlay aria-label="types" data-testid="types-dropdown">
|
||||
<ActionList selectionVariant="single">
|
||||
{types.map((type) => {
|
||||
return (
|
||||
<ActionList.Item onSelect={() => setTypeFilter(type)} key={type.text}>
|
||||
{type.text}
|
||||
</ActionList.Item>
|
||||
)
|
||||
})}
|
||||
</ActionList>
|
||||
</ActionMenu.Overlay>
|
||||
</ActionMenu>
|
||||
</div>
|
||||
<ActionMenu anchorRef={typesRef}>
|
||||
<ActionMenu.Button>{typeFilter ? typeFilter.text : t('filters.all')}</ActionMenu.Button>
|
||||
<ActionMenu.Overlay aria-label="types" data-testid="types-dropdown">
|
||||
<ActionList selectionVariant="single">
|
||||
{types.map((type) => {
|
||||
return (
|
||||
<ActionList.Item onSelect={() => setTypeFilter(type)} key={type.text}>
|
||||
{type.text}
|
||||
</ActionList.Item>
|
||||
)
|
||||
})}
|
||||
</ActionList>
|
||||
</ActionMenu.Overlay>
|
||||
</ActionMenu>
|
||||
</div>
|
||||
|
||||
<div data-testid="card-filter-topics" className="mx-4">
|
||||
<div
|
||||
onClick={() => clickDropdown(topicsRef)}
|
||||
onKeyDown={() => clickDropdown(topicsRef)}
|
||||
role="button"
|
||||
tabIndex={-1}
|
||||
className="text-uppercase f6 color-fg-muted d-block"
|
||||
>
|
||||
{t('filters.topic')}
|
||||
<div data-testid="card-filter-topics" className="mx-4">
|
||||
<div
|
||||
onClick={() => clickDropdown(topicsRef)}
|
||||
onKeyDown={() => clickDropdown(topicsRef)}
|
||||
role="button"
|
||||
tabIndex={-1}
|
||||
className="text-uppercase f6 color-fg-muted d-block"
|
||||
>
|
||||
{t('filters.topic')}
|
||||
</div>
|
||||
<ActionMenu anchorRef={topicsRef}>
|
||||
<ActionMenu.Button>
|
||||
{topicFilter ? topicFilter.text : t('filters.all')}
|
||||
</ActionMenu.Button>
|
||||
<ActionMenu.Overlay aria-label="topics" data-testid="topics-dropdown">
|
||||
<ActionList selectionVariant="single">
|
||||
{topics.map((topic) => {
|
||||
return (
|
||||
<ActionList.Item onSelect={() => setTopicFilter(topic)} key={topic.text}>
|
||||
{topic.text}
|
||||
</ActionList.Item>
|
||||
)
|
||||
})}
|
||||
</ActionList>
|
||||
</ActionMenu.Overlay>
|
||||
</ActionMenu>
|
||||
</div>
|
||||
<ActionMenu anchorRef={topicsRef}>
|
||||
<ActionMenu.Button>
|
||||
{topicFilter ? topicFilter.text : t('filters.all')}
|
||||
</ActionMenu.Button>
|
||||
<ActionMenu.Overlay aria-label="topics" data-testid="topics-dropdown">
|
||||
<ActionList selectionVariant="single">
|
||||
{topics.map((topic) => {
|
||||
return (
|
||||
<ActionList.Item onSelect={() => setTopicFilter(topic)} key={topic.text}>
|
||||
{topic.text}
|
||||
</ActionList.Item>
|
||||
)
|
||||
})}
|
||||
</ActionList>
|
||||
</ActionMenu.Overlay>
|
||||
</ActionMenu>
|
||||
</div>
|
||||
</form>
|
||||
</form>
|
||||
|
||||
<div role="status" className="color-fg-muted">
|
||||
{guides.length === 0
|
||||
? t('guides_found.none')
|
||||
: guides.length === 1
|
||||
? t('guides_found.one')
|
||||
: t('guides_found.multiple').replace('{n}', guides.length)}
|
||||
<div role="status" className="color-fg-muted">
|
||||
{guides.length === 0
|
||||
? t('guides_found.none')
|
||||
: guides.length === 1
|
||||
? t('guides_found.one')
|
||||
: t('guides_found.multiple').replace('{n}', guides.length)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul ref={articleCardRef} className="d-flex flex-wrap mr-0 mr-md-n6 mr-lg-n8">
|
||||
@@ -144,6 +148,7 @@ export const ArticleCards = () => {
|
||||
{guides.length > numVisible && (
|
||||
<button
|
||||
className="col-12 mt-5 text-center text-bold color-fg-accent btn-link"
|
||||
data-search="hide"
|
||||
onClick={loadMore}
|
||||
>
|
||||
{t('load_more')}
|
||||
|
||||
@@ -102,6 +102,7 @@ export const LearningTrack = ({ track }: Props) => {
|
||||
)}
|
||||
{
|
||||
<button
|
||||
data-search="hide"
|
||||
className={
|
||||
'Box-footer btn-link border-top-0 position-relative text-center text-bold color-fg-accent pt-1 pb-3 col-12 ' +
|
||||
((track?.guides?.length || 0) <= numVisible && cx(styles.removeHoverEvents))
|
||||
|
||||
@@ -33,6 +33,7 @@ export const CodeExamples = () => {
|
||||
return (
|
||||
<div>
|
||||
<form
|
||||
data-search="hide"
|
||||
className="pr-lg-3 mb-5 mt-3"
|
||||
onSubmit={(event) => {
|
||||
event.preventDefault()
|
||||
|
||||
@@ -169,6 +169,8 @@ Sets an action's output parameter.
|
||||
|
||||
Optionally, you can also declare output parameters in an action's metadata file. For more information, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/articles/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions)."
|
||||
|
||||
You can escape multiline strings for setting an output parameter by creating an environment variable and using it in a workflow command. For more information, see "[Setting an environment variable](#setting-an-environment-variable)."
|
||||
|
||||
### Example: Setting an output parameter
|
||||
|
||||
{% bash %}
|
||||
|
||||
@@ -244,7 +244,11 @@ Optionally, to validate the restore, configure an IP exception list to allow acc
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note:** The network settings are excluded from the backup snapshot. You must manually configure the network on the target {% data variables.product.prodname_ghe_server %} appliance as required for your environment.
|
||||
**Note:**
|
||||
|
||||
- The network settings are excluded from the backup snapshot. You must manually configure the network on the target {% data variables.product.prodname_ghe_server %} appliance as required for your environment.
|
||||
|
||||
- When restoring to new disks on an existing or empty {% data variables.product.prodname_ghe_server %} instance, stale UUIDs may be present, resulting in Git and/or Alambic replication reporting as out of sync. Stale server entry IDs can be the result of a retired node in a high availability configuration still being present in the application database, but not in the restored replication configuration. To remediate, stale UUIDs can be torn down using `ghe-repl-teardown` once the restore has completed and prior to starting replication. In this scenario, contact {% data variables.contact.contact_ent_support %} for further assistance.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ Optionally, if you use {% data variables.product.prodname_registry %} on your pr
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Warning**: If you don't configure {% data variables.product.prodname_actions %} on the staging instance before restoring your production backup, your staging instance will use your production instance's external storage, which could result in loss of data. We strongly recommended that you use different external storage for your staging instance.
|
||||
**Warning**: If you don't configure {% data variables.product.prodname_registry %} on the staging instance before restoring your production backup, your staging instance will use your production instance's external storage, which could result in loss of data. We strongly recommended that you use different external storage for your staging instance.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
@@ -128,7 +128,7 @@ Optionally, if you use {% data variables.product.prodname_registry %} on your pr
|
||||
|
||||
Use the `ghe-restore` command to restore the rest of the data from the backup. For more information, see "[Restoring a backup](/admin/configuration/configuring-backups-on-your-appliance#restoring-a-backup)."
|
||||
|
||||
If the staging instance is already configured and you're about to overwrite settings, certificate, and license data, add the `-c` option to the command. For more information about the option, see [Using the backup and restore commands](https://github.com/github/backup-utils/blob/master/docs/usage.md#restoring-settings-tls-certificate-and-license) in the {% data variables.product.prodname_enterprise_backup_utilities %} documentation.
|
||||
If the staging instance is already configured and you want to overwrite settings, certificate, and license data, add the `-c` option to the command. For more information about the option, see [Using the backup and restore commands](https://github.com/github/backup-utils/blob/master/docs/usage.md#restoring-settings-tls-certificate-and-license) in the {% data variables.product.prodname_enterprise_backup_utilities %} documentation.
|
||||
|
||||
### 6. Review the instance's configuration
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ Jobs that run on Windows and macOS runners that {% data variables.product.prodna
|
||||
|
||||
The storage used by a repository is the total storage used by {% data variables.product.prodname_actions %} artifacts and {% data variables.product.prodname_registry %}. Your storage cost is the total usage for all repositories owned by your account. For more information about pricing for {% data variables.product.prodname_registry %}, see "[About billing for {% data variables.product.prodname_registry %}](/billing/managing-billing-for-github-packages/about-billing-for-github-packages)."
|
||||
|
||||
If your account's usage surpasses these limits and you have set a spending limit above $0 USD, you will pay $0.008 USD per GB of storage per day and per-minute usage depending on the operating system used by the {% data variables.product.prodname_dotcom %}-hosted runner. {% data variables.product.prodname_dotcom %} rounds the minutes each job uses up to the nearest minute.
|
||||
If your account's usage surpasses these limits and you have set a spending limit above $0 USD, you will pay $0.008 USD per GB of storage per day and per-minute usage depending on the operating system used by the {% data variables.product.prodname_dotcom %}-hosted runner. {% data variables.product.prodname_dotcom %} rounds the minutes and partial minutes each job uses up to the nearest whole minute.
|
||||
|
||||
{% note %}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ title: About billing for GitHub Codespaces
|
||||
shortTitle: About billing
|
||||
intro: 'View pricing and see how to manage {% data variables.product.prodname_github_codespaces %} billing for your organization.'
|
||||
permissions: 'To manage billing for {% data variables.product.prodname_github_codespaces %} for an organization, you must be an organization owner or a billing manager.'
|
||||
miniTocMaxHeadingLevel: 3
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghec: '*'
|
||||
@@ -13,40 +14,105 @@ topics:
|
||||
- Billing
|
||||
redirect_from:
|
||||
- /billing/managing-billing-for-github-codespaces/about-billing-for-codespaces
|
||||
- /github/developing-online-with-codespaces/about-billing-for-codespaces
|
||||
- /codespaces/getting-started-with-codespaces/about-billing-for-codespaces
|
||||
- /codespaces/codespaces-reference/about-billing-for-codespaces
|
||||
- /codespaces/codespaces-reference/understanding-billing-for-codespaces
|
||||
- /codespaces/codespaces-reference/understanding-billing-for-github-codespaces.md
|
||||
---
|
||||
|
||||
## {% data variables.product.prodname_github_codespaces %} pricing
|
||||
|
||||
Charges are incurred for the use of {% data variables.product.prodname_github_codespaces %} for repositories owned by organization and enterprise accounts on {% data variables.product.prodname_team %} and {% data variables.product.prodname_enterprise %}. These accounts do not include any free minutes or storage for {% data variables.product.prodname_github_codespaces %}. Repositories in personal accounts are not currently billed for {% data variables.product.prodname_github_codespaces %} usage.
|
||||
Charges are incurred for the use of {% data variables.product.prodname_github_codespaces %} for repositories owned by organization and enterprise accounts on {% data variables.product.prodname_team %} and {% data variables.product.prodname_enterprise %}. These accounts do not include any free minutes or storage for {% data variables.product.prodname_github_codespaces %}. Personal accounts are not currently billed for {% data variables.product.prodname_github_codespaces %} usage.
|
||||
|
||||
A {% data variables.product.prodname_github_codespaces %} instance (a "codespace") incurs charges for compute time, while it is active, and for the amount of storage it uses on disk.
|
||||
|
||||
{% data variables.product.prodname_github_codespaces %} usage is billed according to the units of measure in the following table:
|
||||
|
||||
| Product | SKU | Unit of measure | Price |
|
||||
| ------------------- | -------- | --------------- | ----- |
|
||||
| Codespaces Compute | 2 core | 1 hour | $0.18 |
|
||||
| | 4 core | 1 hour | $0.36 |
|
||||
| | 8 core | 1 hour | $0.72 |
|
||||
| | 16 core | 1 hour | $1.44 |
|
||||
| | 32 core | 1 hour | $2.88 |
|
||||
| Codespaces Storage | Storage | 1 GB-month | $0.07 |
|
||||
| Component | Machine type | Unit of measure | Price |
|
||||
| ------------------- | ------------ | --------------- | ----- |
|
||||
| Codespaces compute | 2 core | 1 hour | $0.18 |
|
||||
| | 4 core | 1 hour | $0.36 |
|
||||
| | 8 core | 1 hour | $0.72 |
|
||||
| | 16 core | 1 hour | $1.44 |
|
||||
| | 32 core | 1 hour | $2.88 |
|
||||
| Codespaces storage | Storage | 1 GB-month<sup>*</sup> | $0.07 |
|
||||
|
||||
<sup>*</sup> See "[Billing for storage usage](#billing-for-storage-usage)" below for details of the GB-month unit of measure.
|
||||
|
||||
If you enable prebuilding of codespaces this will incur additional charges. For more information, see "[Billing for {% data variables.product.prodname_codespaces %} prebuilds](#billing-for-codespaces-prebuilds)."
|
||||
|
||||
## About billing for {% data variables.product.prodname_github_codespaces %}
|
||||
|
||||
{% data reusables.codespaces.codespaces-billing %}
|
||||
{% data variables.product.prodname_github_codespaces %} is billed in US dollars (USD) according to their compute and storage usage. {% data reusables.codespaces.codespaces-monthly-billing %} xxx
|
||||
|
||||
Your {% data variables.product.prodname_github_codespaces %} usage shares your organization or enterprise account's existing billing date, payment method, and receipt. {% data reusables.dotcom_billing.view-all-subscriptions %}
|
||||
Your {% data variables.product.prodname_github_codespaces %} usage shares your organization or enterprise account's existing payment method, and receipt. For more information, see "[Viewing your subscriptions and billing date](/articles/viewing-your-subscriptions-and-billing-date)."
|
||||
|
||||
{% ifversion ghec %}
|
||||
If you purchased {% data variables.product.prodname_enterprise %} through a Microsoft Enterprise Agreement, you can connect your Azure Subscription ID to your enterprise account to enable and pay for {% data variables.product.prodname_github_codespaces %} usage. For more information, see "[Connecting an Azure subscription to your enterprise](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise)."
|
||||
{% endif %}
|
||||
|
||||
{% data reusables.dotcom_billing.pricing_calculator.pricing_cal_codespaces %}
|
||||
### Billing for compute usage
|
||||
The compute usage of a codespace is the number of minutes for which that codespace is active. Total compute usage is calculated by summing the number of minutes used by all codespaces that are billable to the organization or enterprise. These totals are reported to the billing service every hour, and are billed monthly.
|
||||
|
||||
As an example, if a codespace is active for 1 hour and 15 minutes, then the compute cost will be the hourly cost of the codespace, as determined by its machine type, multiplied by 1.25.
|
||||
|
||||
You can restrict compute usage by stopping your codespaces. For information, see "[Stopping and starting a codespace](/codespaces/developing-in-codespaces/stopping-and-starting-a-codespace)." Codespaces are stopped automatically after a configurable period of inactivity. The timeout period can be configured by the user, or at the organization level. For more information, see "[Setting your timeout period for {% data variables.product.prodname_github_codespaces %}](/codespaces/customizing-your-codespace/setting-your-timeout-period-for-github-codespaces)" and "[Restricting the idle timeout period](/codespaces/managing-codespaces-for-your-organization/restricting-the-idle-timeout-period)."
|
||||
|
||||
### Billing for storage usage
|
||||
For {% data variables.product.prodname_github_codespaces %} billing purposes, this includes all storage used by all codespaces and prebuilds in your account. This includes any files used by the codespaces, such as cloned repositories, configuration files, and extensions, among others. Storage is billed for all of your existing codespaces, regardless of whether they are active or stopped. The storage billing for a codespace ends when it is deleted.
|
||||
|
||||
Codespace storage is reported in GB-months. Your billing month runs from a fixed day in one month until the same day in the next month. In most cases the day of the month is determined by the day you started on your current {% data variables.product.prodname_dotcom %} plan. Your GB-month storage, is calculated as follows. Once every hour, the storage used by all of your currently active and stopped codespaces is assessed. This figure is then divided by the number of hours in the current billing month: `total storage size / hours this month`. The result is added to the running total for codespace storage for the month.
|
||||
|
||||
For example, if you have one codespace that uses 100 GB of storage and has existed for one hour you will have used `100 / (24 * 30) = 0.1388` GB-months of storage in a 30-day month. If your use of GitHub Codespaces during a 30-day month consists of two 100 GB codespaces that both existed for three full days then there will be `24 * 3` hourly reports for the storage of these codespaces, giving a total of: `(24 * 3) * 200 / (24 * 30) = 20` GB-months.
|
||||
|
||||
For each hourly report, the storage usage for the previous hour is calculated in seconds. As a result, you won't be charged for a full hour of storage if a codespace did not exist for the full 60 minutes. At the end of the month, {% data variables.product.prodname_dotcom %} rounds your storage to the nearest MB.
|
||||
|
||||
As an organization owner, you can:
|
||||
- List the currently active and stopped codespaces for your organization. For more information, see "[Listing the codespaces in your organization](/codespaces/managing-codespaces-for-your-organization/listing-the-codespaces-in-your-organization)." In addition to the cost of these codespaces, the cost of {% data variables.product.prodname_github_codespaces %} for the current month may include costs for codespaces that existed earlier in the current month but have since been deleted.
|
||||
- See the total {% data variables.product.prodname_github_codespaces %} compute and storage usage for your organization for the current month to date. For more information, see "[Viewing your {% data variables.product.prodname_github_codespaces %} usage](/billing/managing-billing-for-github-codespaces/viewing-your-github-codespaces-usage)."
|
||||
- Configure your organization settings to manage the cost of {% data variables.product.prodname_github_codespaces %}. For more information, see "[Managing the cost of {% data variables.product.prodname_github_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-the-cost-of-github-codespaces-in-your-organization)."
|
||||
|
||||
To estimate the costs for metered services, you can use the {% data variables.product.prodname_dotcom %} [pricing calculator](https://github.com/pricing/calculator?feature=codespaces).
|
||||
|
||||
### Billing for {% data variables.product.prodname_codespaces %} prebuilds
|
||||
|
||||
{% data reusables.codespaces.billing-for-prebuilds-default %}
|
||||
{% data reusables.codespaces.prebuilds-definition %} For more information, see "[About {% data variables.product.prodname_github_codespaces %} prebuilds](/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds)."
|
||||
|
||||
{% data reusables.codespaces.billing-for-prebuilds-reducing %}
|
||||
#### {% data variables.product.prodname_actions %} costs for prebuilds
|
||||
|
||||
Prebuilds are created and updated by running a {% data variables.product.prodname_actions %} workflow on a {% data variables.product.prodname_dotcom %}-hosted runner. By default, prebuilds are updated every time you modify the prebuild configuration, or push changes to a prebuild-enabled branch. As with other workflows, while prebuild workflows are running they will either consume some of the Actions minutes included with your account, if you have any, or they will incur charges for Actions minutes. For more information about pricing for Actions minutes, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)." There is no associated {% data variables.product.prodname_codespaces %} compute cost for creating or updating prebuilds.
|
||||
|
||||
To reduce consumption of Actions minutes, you can set a prebuild to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. You can also manage your storage usage by adjusting the number of previous versions of each prebuild that are retained. For more information, see "[Configuring prebuilds](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)."
|
||||
|
||||
If you are an organization or enterprise owner, you can track usage of prebuild workflows and storage by downloading a usage report for your organization or enterprise. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create {% data variables.product.prodname_github_codespaces %} Prebuilds." For more information, see "[Viewing your {% data variables.product.prodname_actions %} usage](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)."
|
||||
|
||||
#### Storage costs for prebuilds
|
||||
|
||||
In addition to {% data variables.product.prodname_actions %} minutes, you will also be billed for the storage of prebuilds associated with each prebuild configuration for a given repository and region. Storage of prebuilds is billed at the same rate as storage of codespaces.
|
||||
|
||||
The storage cost for a prebuild in a single region will be similar to the storage cost that will be incurred for storing a single codespace created from that prebuild. The storage cost for the generated codespace may be more than the cost for the prebuild if, for example, the `updateContentCommand` and `postCreateCommand` commands are used during codespace creation to download more files to the dev container.
|
||||
|
||||
The total storage costs associated with a prebuild template will depend on:
|
||||
|
||||
* The price of storage per GB. See the table above.
|
||||
* The size of the generated prebuild in GB.
|
||||
* The number of regions in which the prebuild is available (because a copy of the prebuild is stored in each region).
|
||||
* The number of older versions of the prebuild that are retained.
|
||||
|
||||
The storage cost for a prebuild is therefore calculated as: `price per GB * size (GB) * regions * versions`.
|
||||
|
||||
To limit the storage costs associated with prebuilds, you can choose to create prebuilds only in selected regions, and you can specify the number of older versions of prebuilds that will be retained. For more information, see "[Configuring prebuilds](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)."
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: Prebuilds may be updated several times during a billing month. Newer versions of a prebuild may be larger or smaller than the previous versions. This will affect the storage charges. For details of how storage is calculated during a billing month, see "[Billing for storage usage](#billing-for-storage-usage)" above.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
#### Cost of codespaces created from prebuilds
|
||||
|
||||
Use of codespaces created using prebuilds is charged at the same rate as regular codespaces.
|
||||
|
||||
## Setting a spending limit
|
||||
|
||||
@@ -72,7 +138,7 @@ For example, a user in an organization can fork a repository within that organiz
|
||||
|
||||
## How billing is handled when a repository is transferred
|
||||
|
||||
Usage is billed and reported on every hour. As such, you pay for any usage when a repository is within your organization. When a repository is transferred out of your organization, any codespaces in that repository are removed as part of the transfer process.
|
||||
Usage is calculated every hour. An organization pays for usage of codespaces created from any repository owned by the organization, where the organization settings permit the organization to be billed. For more information, see "[Enabling GitHub Codespaces for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-github-codespaces-for-your-organization#choose-who-can-create-codespaces-that-are-billed-to-your-organization)." When a repository is transferred out of your organization, ownership and billing responsibility for any codespaces associated with that repository will change accordingly.
|
||||
|
||||
## What happens when users are removed
|
||||
|
||||
|
||||
@@ -11,4 +11,3 @@ children:
|
||||
- /viewing-your-github-codespaces-usage
|
||||
- /managing-spending-limits-for-github-codespaces
|
||||
---
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ redirect_from:
|
||||
|
||||
{% data reusables.codespaces.codespaces-spending-limit-requirement %}
|
||||
|
||||
{% data reusables.codespaces.codespaces-monthly-billing %}
|
||||
|
||||
Once you've reached your spending limit, your organization or repository will no longer be able to create new codespaces, and won't be able to start existing codespaces. Any existing codespaces that are still running will not be shutdown; if you don't change the spending limit, you will not be charged for the amount that exceeds the limit.
|
||||
|
||||
For more information about pricing for {% data variables.product.prodname_github_codespaces %} usage, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)."
|
||||
@@ -67,4 +69,4 @@ You can disable these notifications anytime by navigating to the bottom of the *
|
||||
## Further reading
|
||||
|
||||
- "[Restricting access to machine types](/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)"
|
||||
- "[Managing billing for {% data variables.product.prodname_github_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-github-codespaces-in-your-organization)"
|
||||
- "[Managing the cost of {% data variables.product.prodname_github_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-the-cost-of-github-codespaces-in-your-organization)"
|
||||
|
||||
@@ -21,8 +21,21 @@ Organization owners and billing managers can view {% data variables.product.prod
|
||||
|
||||
{% data reusables.organizations.billing-settings %}
|
||||
1. Under "{% data variables.product.prodname_codespaces %}", view the details of the compute hours and storage used so far this month.
|
||||

|
||||
|
||||

|
||||
|
||||
You can also see and update your current spending limit. For more information, see "[Managing spending limits for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-github-codespaces)."
|
||||
|
||||
{% note %}
|
||||
|
||||
**Notes**:
|
||||
* The costs shown here are the cumulative costs within the current monthly billing period. The metered costs for {% data variables.product.prodname_github_codespaces %} shown on this page are reset to zero at the start of each monthly billing period. Outstanding costs from previous months are not shown.
|
||||
* The figures on this page are updated every hour.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% data reusables.dotcom_billing.actions-packages-report-download-org-account %}
|
||||
The data used for this report is updated daily.
|
||||
1. Filter the report to show only rows that mention "Codespaces" in the `Product` field.
|
||||
|
||||

|
||||
@@ -38,3 +51,7 @@ Enterprise owners and billing managers can view {% data variables.product.prodna
|
||||
1. Under "{% data variables.product.prodname_codespaces %} monthly usage", view the usage details of each organization in your enterprise account.
|
||||
{% data reusables.enterprise-accounts.actions-packages-report-download-enterprise-accounts %}
|
||||
{% endif %}
|
||||
|
||||
## Further reading
|
||||
|
||||
- "[Listing the codespaces in your organization](/codespaces/managing-codespaces-for-your-organization/listing-the-codespaces-in-your-organization)"
|
||||
@@ -14,23 +14,23 @@ shortTitle: Private image registry
|
||||
|
||||
A registry is a secure space for storing, managing, and fetching private container images. You may use one to store one or more images. There are many examples of registries, such as {% data variables.product.prodname_container_registry %}, {% data variables.product.prodname_npm_registry %}, Azure Container Registry, or DockerHub.
|
||||
|
||||
{% data variables.product.prodname_ghcr_and_npm_registry %} can be configured to allow container images to be pulled seamlessly into {% data variables.product.prodname_github_codespaces %} during codespace creation, without having to provide any authentication credentials. For other image registries, you must create secrets in {% data variables.product.prodname_dotcom %} to store the access details, which will allow {% data variables.product.prodname_github_codespaces %} to access images stored in that registry.
|
||||
{% data variables.packages.prodname_ghcr_and_npm_registry %} can be configured to allow container images to be pulled seamlessly into {% data variables.product.prodname_github_codespaces %} during codespace creation, without having to provide any authentication credentials. For other image registries, you must create secrets in {% data variables.product.prodname_dotcom %} to store the access details, which will allow {% data variables.product.prodname_github_codespaces %} to access images stored in that registry.
|
||||
|
||||
## Accessing images stored in {% data variables.product.prodname_ghcr_and_npm_registry %}
|
||||
## Accessing images stored in {% data variables.packages.prodname_ghcr_and_npm_registry %}
|
||||
|
||||
{% data variables.product.prodname_ghcr_and_npm_registry %} provide the easiest way for {% data variables.product.prodname_github_codespaces %} to consume dev container images.
|
||||
{% data variables.packages.prodname_ghcr_and_npm_registry %} provide the easiest way for {% data variables.product.prodname_github_codespaces %} to consume dev container images.
|
||||
|
||||
For more information, see "[Working with the Container registry](/packages/working-with-a-github-packages-registry/working-with-the-container-registry)" and "[Working with the npm registry](/packages/working-with-a-github-packages-registry/working-with-the-npm-registry)".
|
||||
|
||||
### Accessing an image published to the same repository as the codespace
|
||||
|
||||
If you publish a container image to {% data variables.product.prodname_ghcr_or_npm_registry %} in the same repository that the codespace is being launched in, you will automatically be able to fetch that image on codespace creation. You won't have to provide any additional credentials, unless the **Inherit access from repo** option was unselected when the container image was published.
|
||||
If you publish a container image to {% data variables.packages.prodname_ghcr_or_npm_registry %} in the same repository that the codespace is being launched in, you will automatically be able to fetch that image on codespace creation. You won't have to provide any additional credentials, unless the **Inherit access from repo** option was unselected when the container image was published.
|
||||
|
||||
#### Inheriting access from the repository from which an image was published
|
||||
|
||||
By default, when you publish a container image to {% data variables.product.prodname_ghcr_or_npm_registry %}, the image inherits the access setting of the repository from which the image was published. For example, if the repository is public, the image is also public. If the repository is private, the image is also private, but is accessible from the repository.
|
||||
By default, when you publish a container image to {% data variables.packages.prodname_ghcr_or_npm_registry %}, the image inherits the access setting of the repository from which the image was published. For example, if the repository is public, the image is also public. If the repository is private, the image is also private, but is accessible from the repository.
|
||||
|
||||
This behavior is controlled by the **Inherit access from repo** option. **Inherit access from repo** is selected by default when publishing via {% data variables.product.prodname_actions %}, but not when publishing directly to {% data variables.product.prodname_ghcr_or_npm_registry %} using a Personal Access Token (PAT).
|
||||
This behavior is controlled by the **Inherit access from repo** option. **Inherit access from repo** is selected by default when publishing via {% data variables.product.prodname_actions %}, but not when publishing directly to {% data variables.packages.prodname_ghcr_or_npm_registry %} using a Personal Access Token (PAT).
|
||||
|
||||
If the **Inherit access from repo** option was not selected when the image was published, you can manually add the repository to the published container image's access controls. For more information, see "[Configuring a package's access control and visibility](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#inheriting-access-for-a-container-image-from-a-repository)."
|
||||
|
||||
@@ -46,13 +46,13 @@ If you want to allow a subset of an organization's repositories to access a cont
|
||||
|
||||
### Publishing a container image from a codespace
|
||||
|
||||
Seamless access from a codespace to {% data variables.product.prodname_ghcr_or_npm_registry %} is limited to pulling container images. If you want to publish a container image from inside a codespace, you must use a personal access token (PAT) with the `write:packages` scope.
|
||||
Seamless access from a codespace to {% data variables.packages.prodname_ghcr_or_npm_registry %} is limited to pulling container images. If you want to publish a container image from inside a codespace, you must use a personal access token (PAT) with the `write:packages` scope.
|
||||
|
||||
We recommend publishing images via {% data variables.product.prodname_actions %}. For more information, see "[Publishing Docker images](/actions/publishing-packages/publishing-docker-images)" and "[Publishing Node.js packages](/actions/publishing-packages/publishing-nodejs-packages)."
|
||||
|
||||
## Accessing images stored in other container registries
|
||||
|
||||
If you are accessing a container image from a registry that isn't {% data variables.product.prodname_ghcr_or_npm_registry %}, {% data variables.product.prodname_github_codespaces %} checks for the presence of three secrets, which define the server name, username, and personal access token (PAT) for a container registry. If these secrets are found, {% data variables.product.prodname_github_codespaces %} will make the registry available inside your codespace.
|
||||
If you are accessing a container image from a registry that isn't {% data variables.packages.prodname_ghcr_or_npm_registry %}, {% data variables.product.prodname_github_codespaces %} checks for the presence of three secrets, which define the server name, username, and personal access token (PAT) for a container registry. If these secrets are found, {% data variables.product.prodname_github_codespaces %} will make the registry available inside your codespace.
|
||||
|
||||
- `<*>_CONTAINER_REGISTRY_SERVER`
|
||||
- `<*>_CONTAINER_REGISTRY_USER`
|
||||
|
||||
@@ -6,7 +6,6 @@ versions:
|
||||
ghec: '*'
|
||||
product: '{% data reusables.gated-features.codespaces %}'
|
||||
children:
|
||||
- /understanding-billing-for-github-codespaces
|
||||
- /allowing-your-codespace-to-access-a-private-image-registry
|
||||
- /using-github-copilot-in-github-codespaces
|
||||
- /using-the-vs-code-command-palette-in-codespaces
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
---
|
||||
title: Understanding billing for GitHub Codespaces
|
||||
intro: 'Learn how your {% data variables.product.prodname_github_codespaces %} usage is billed.'
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghec: '*'
|
||||
redirect_from:
|
||||
- /github/developing-online-with-codespaces/about-billing-for-codespaces
|
||||
- /codespaces/getting-started-with-codespaces/about-billing-for-codespaces
|
||||
- /codespaces/codespaces-reference/about-billing-for-codespaces
|
||||
- /codespaces/codespaces-reference/understanding-billing-for-codespaces
|
||||
type: reference
|
||||
topics:
|
||||
- Codespaces
|
||||
- Billing
|
||||
product: '{% data reusables.gated-features.codespaces %}'
|
||||
shortTitle: Understanding billing
|
||||
---
|
||||
|
||||
This article explains how billing works for your codespaces, and explains how your organization's billing manager can help.
|
||||
|
||||
## Getting access to {% data variables.product.prodname_github_codespaces %}
|
||||
|
||||
Your organization's administrator might limit {% data variables.product.prodname_github_codespaces %} usage to only specific personal accounts. To get access, you will need to contact your billing manager. For more information, see "[Managing access to other repositories within your codespace](/codespaces/managing-your-codespaces/managing-repository-access-for-your-codespaces)."
|
||||
|
||||
## How much it costs to use {% data variables.product.prodname_codespaces %}
|
||||
|
||||
To see the pricing for {% data variables.product.prodname_github_codespaces %} usage, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces#codespaces-pricing)."
|
||||
|
||||
## How your codespace usage is billed
|
||||
|
||||
Your codespace is billed for its compute minutes and for the amount of storage it uses on disk.
|
||||
|
||||
If you enable prebuilding of codespaces this will incur additional charges. For more information, see "[About {% data variables.product.prodname_github_codespaces %} prebuilds](/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds#about-billing-for-codespaces-prebuilds)."
|
||||
|
||||
### Understanding what compute minutes are
|
||||
Your codespace is billed for the number of minutes that it's active. If your codespaces window is left idle for 30 minutes, it will automatically shutdown, and compute billing for the codespace will end until you start the codespace again.
|
||||
|
||||
### Understanding how codespace storage is billed
|
||||
For {% data variables.product.prodname_github_codespaces %}, storage is defined to include any files relating to your codespace, such as the cloned repository, configuration files, and extensions, among others. This storage is billed while your codespace is shutdown. The storage billing for a codespace ends when you manually delete it from https://github.com/codespaces.
|
||||
|
||||
## How spending limits work
|
||||
|
||||
Before your organization can use {% data variables.product.prodname_github_codespaces %}, your billing manager will need to set a spending limit. For more information, see "[Managing spending limits for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-github-codespaces)."
|
||||
|
||||
## Exporting changes when you have reached your spending limit
|
||||
|
||||
{% data reusables.codespaces.exporting-changes %}
|
||||
|
||||
## Checking your current usage and limits
|
||||
If you need to check your current usage or spending limit, contact your organization's billing manager. For more information, see "[Viewing your {% data variables.product.prodname_github_codespaces %} usage](/billing/managing-billing-for-github-codespaces/viewing-your-github-codespaces-usage)."
|
||||
|
||||
## Codespaces can be automatically deleted
|
||||
|
||||
Your codespace will be automatically deleted when you are removed from an organization or repository.
|
||||
|
||||
## Deleting your unused codespaces
|
||||
|
||||
You can manually delete your codespaces in https://github.com/codespaces and from within {% data variables.product.prodname_vscode %}. To reduce the size of a codespace, you can manually delete files using the terminal or from within {% data variables.product.prodname_vscode %}.
|
||||
|
||||
## Further reading
|
||||
|
||||
- "[Managing billing for {% data variables.product.prodname_github_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-github-codespaces-in-your-organization)"
|
||||
@@ -71,7 +71,7 @@ If you try to delete a codespace with unpushed git commits, your editor will not
|
||||
|
||||
Codespaces that have been stopped and remain inactive for a specified period of time will be deleted automatically. By default, inactive codespaces are deleted after 30 days, but you can customize your codespace retention period. For more information, see "[Configuring automatic deletion of your codespaces](/codespaces/customizing-your-codespace/configuring-automatic-deletion-of-your-codespaces)."
|
||||
|
||||
You will be charged for the storage of all your codespaces. When you delete a codespace, you will no longer be charged.
|
||||
If you create a codespace, it will continue to accrue storage charges until it is deleted, irrespective of whether it is active or stopped. For more information, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#billing-for-storage-usage)." Deleting a codespace does not reduce the current billable amount for {% data variables.product.prodname_github_codespaces %}, which accumulates during each monthly billing cycle. For more information, see "[Viewing your {% data variables.product.prodname_github_codespaces %} usage](/billing/managing-billing-for-github-codespaces/viewing-your-github-codespaces-usage)."
|
||||
|
||||
For more information on deleting a codespace, see "[Deleting a codespace](/codespaces/developing-in-codespaces/deleting-a-codespace)."
|
||||
|
||||
|
||||
@@ -11,12 +11,12 @@ children:
|
||||
- /codespaces-lifecycle
|
||||
- /developing-in-a-codespace
|
||||
- /creating-a-codespace
|
||||
- /deleting-a-codespace
|
||||
- /opening-an-existing-codespace
|
||||
- /using-source-control-in-your-codespace
|
||||
- /using-github-codespaces-for-pull-requests
|
||||
- /stopping-and-starting-a-codespace
|
||||
- /renaming-a-codespace
|
||||
- /deleting-a-codespace
|
||||
- /forwarding-ports-in-your-codespace
|
||||
- /default-environment-variables-for-your-codespace
|
||||
- /connecting-to-a-private-network
|
||||
|
||||
@@ -117,6 +117,6 @@ If you already use {% data variables.product.prodname_vscode_shortname %}, you c
|
||||
## Further reading
|
||||
|
||||
- "[Enabling {% data variables.product.prodname_github_codespaces %} for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-github-codespaces-for-your-organization)"
|
||||
- "[Managing billing for {% data variables.product.prodname_github_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-github-codespaces-in-your-organization)"
|
||||
- "[Managing the cost of {% data variables.product.prodname_github_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-the-cost-of-github-codespaces-in-your-organization)"
|
||||
- "[Add a dev container configuration to your repository](/codespaces/setting-up-your-project-for-codespaces/setting-up-your-project-for-codespaces)"
|
||||
- "[Codespaces lifecycle](/codespaces/developing-in-codespaces/codespaces-lifecycle)"
|
||||
|
||||
@@ -111,4 +111,4 @@ You've successfully created, personalized, and run your first application within
|
||||
## Further reading
|
||||
|
||||
- "[Enabling {% data variables.product.prodname_github_codespaces %} for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-github-codespaces-for-your-organization)"
|
||||
- "[Managing billing for {% data variables.product.prodname_github_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-github-codespaces-in-your-organization)"
|
||||
- "[Managing the cost of {% data variables.product.prodname_github_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-the-cost-of-github-codespaces-in-your-organization)"
|
||||
|
||||
@@ -19,7 +19,7 @@ topics:
|
||||
|
||||
## About enabling {% data variables.product.prodname_github_codespaces %} for your organization
|
||||
|
||||
Organization owners can control which users in your organization can create and use codespaces at the organization's expense.
|
||||
Organization owners can control which users in your organization can create and use codespaces at the organization's expense. For information about pricing, see "[About billing for GitHub Codespaces](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)."
|
||||
|
||||
Only people who can clone a repository can create a codespace for that repository. To allow people to create codespaces for repositories owned by your organization, you must:
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ topics:
|
||||
children:
|
||||
- /enabling-github-codespaces-for-your-organization
|
||||
- /listing-the-codespaces-in-your-organization
|
||||
- /managing-billing-for-github-codespaces-in-your-organization
|
||||
- /managing-the-cost-of-github-codespaces-in-your-organization
|
||||
- /managing-encrypted-secrets-for-your-repository-and-organization-for-github-codespaces
|
||||
- /managing-repository-access-for-your-organizations-codespaces
|
||||
- /reviewing-your-organizations-audit-logs-for-github-codespaces
|
||||
|
||||
@@ -15,10 +15,12 @@ topics:
|
||||
|
||||
## Overview
|
||||
|
||||
As an organization owner, you can list all of the currently active and stopped codespaces for your organization. You might want to do this to check how many codespaces users are creating, to make sure they aren't incurring unnecessary costs.
|
||||
As an organization owner, you can list all of the currently active and stopped codespaces for your organization. You might want to do this to check how many codespaces users are creating, to make sure they aren't incurring unnecessary costs. For information about pricing, see "[About billing for GitHub Codespaces](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)."
|
||||
|
||||
The easiest way to list the codespaces for an organization is by using {% data variables.product.prodname_cli %}. You can also use the REST API, which provides more information about each codespace.
|
||||
|
||||
For information on how to see the current total {% data variables.product.prodname_codespaces %} usage for your organization or enterprise, and generate a detailed report, see "[Viewing your {% data variables.product.prodname_github_codespaces %} usage](/billing/managing-billing-for-github-codespaces/viewing-your-github-codespaces-usage)."
|
||||
|
||||
### Using {% data variables.product.prodname_cli %} to list codespaces
|
||||
|
||||
To list all of the current codespaces for a specified organization, use the following command.
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
---
|
||||
title: Managing billing for GitHub Codespaces in your organization
|
||||
shortTitle: Manage billing
|
||||
intro: 'You can check your {% data variables.product.prodname_github_codespaces %} usage and set usage limits.'
|
||||
product: '{% data reusables.gated-features.codespaces %}'
|
||||
permissions: 'To manage billing for {% data variables.product.prodname_github_codespaces %} for an organization, you must be an organization owner or a billing manager.'
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghec: '*'
|
||||
type: reference
|
||||
topics:
|
||||
- Codespaces
|
||||
- Billing
|
||||
redirect_from:
|
||||
- /codespaces/managing-codespaces-for-your-organization/managing-billing-for-codespaces-in-your-organization
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
To learn about pricing for {% data variables.product.prodname_github_codespaces %}, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#codespaces-pricing)."
|
||||
|
||||
{% data reusables.codespaces.codespaces-billing %}
|
||||
|
||||
- As an organization owner or a billing manager, you can manage {% data variables.product.prodname_github_codespaces %} billing for your organization: ["About billing for Codespaces"](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)
|
||||
- As an organization owner, you can list the currently active and stopped codespaces for your organization. In addition to these codespaces, costs for the current month may include costs for codespaces that existed earlier in the current month but have since been deleted.
|
||||
- For users, there is a guide that explains how billing works: ["Understanding billing for {% data variables.product.prodname_github_codespaces %}"](/codespaces/codespaces-reference/understanding-billing-for-github-codespaces)
|
||||
|
||||
## Usage limits
|
||||
|
||||
You can set a usage limit for the codespaces in your organization or repository. This limit is applied to the compute and storage usage for {% data variables.product.prodname_github_codespaces %}:
|
||||
|
||||
- **Compute minutes:** Compute usage is calculated by the actual number of minutes used by all {% data variables.product.prodname_github_codespaces %} instances while they are active. These totals are reported to the billing service daily, and is billed monthly. You can set a spending limit for {% data variables.product.prodname_github_codespaces %} usage in your organization. For more information, see "[Managing spending limits for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-github-codespaces)."
|
||||
|
||||
- **Storage usage:** For {% data variables.product.prodname_github_codespaces %} billing purposes, this includes all storage used by all codespaces in your account. This includes resources such as cloned repositories, configuration files, and extensions, among others. These totals are reported to the billing service daily, and is billed monthly. At the end of the month, {% data variables.product.prodname_dotcom %} rounds your storage to the nearest MB. To check how many compute minutes and storage GB have been used by {% data variables.product.prodname_github_codespaces %}, see "[Viewing your {% data variables.product.prodname_github_codespaces %} usage"](/billing/managing-billing-for-github-codespaces/viewing-your-github-codespaces-usage)."
|
||||
|
||||
## Disabling or limiting {% data variables.product.prodname_codespaces %}
|
||||
|
||||
You can disable all use of {% data variables.product.prodname_github_codespaces %} that would be billed to your organization. Alternatively, you can specify which organization members or collaborators can use {% data variables.product.prodname_codespaces %} at your organization's expense. For more information, see "[Enabling {% data variables.product.prodname_github_codespaces %} for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-github-codespaces-for-your-organization)."
|
||||
|
||||
{% data reusables.codespaces.codespaces-disabling-org-billing %}
|
||||
|
||||
You can configure which repositories can be accessed from codespaces created for a particular repository. For more information, see "[Managing access to other repositories within your codespace](/codespaces/managing-your-codespaces/managing-repository-access-for-your-codespaces)."
|
||||
|
||||
You can limit the choice of types of machine that are available for codespaces created from repositories owned by your organization. This allows you to prevent people using overly resourced machines for their codespaces, and incurring unnecessary charges. For more information, see "[Restricting access to machine types](/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)."
|
||||
|
||||
You can also restrict how long a codespace can remain unused before it is automatically deleted. This can help to reduce storage costs for {% data variables.product.prodname_codespaces %}. For more information, see "[Restricting the retention period for codespaces](/codespaces/managing-codespaces-for-your-organization/restricting-the-retention-period-for-codespaces)."
|
||||
|
||||
## Deleting unused codespaces
|
||||
|
||||
Your users can delete their own codespaces in https://github.com/codespaces and from within {% data variables.product.prodname_vscode %}. To reduce the size of a codespace, users can manually delete files using the terminal or from within {% data variables.product.prodname_vscode_shortname %}.
|
||||
|
||||
As an organization owner, you can delete any codespace in your organization. For more information, see "[Deleting a codespace](/codespaces/developing-in-codespaces/deleting-a-codespace#deleting-codespaces-in-your-organization)."
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note:** Codespaces are automatically deleted after they have been stopped and have remained inactive for a defined number of days. For more information, see "[Restricting the retention period for codespaces](/codespaces/managing-codespaces-for-your-organization/restricting-the-retention-period-for-codespaces)." A codespace can only be manually deleted by the person who created the codespace.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
## Further reading
|
||||
|
||||
- "[Listing the codespaces in your organization](/codespaces/managing-codespaces-for-your-organization/listing-the-codespaces-in-your-organization)"
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: Managing the cost of GitHub Codespaces in your organization
|
||||
shortTitle: Manage Codespaces costs
|
||||
intro: 'You can check your {% data variables.product.prodname_github_codespaces %} usage and set usage limits.'
|
||||
product: '{% data reusables.gated-features.codespaces %}'
|
||||
permissions: 'To manage billing for {% data variables.product.prodname_github_codespaces %} for an organization, you must be an organization owner or a billing manager.'
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghec: '*'
|
||||
type: reference
|
||||
topics:
|
||||
- Codespaces
|
||||
- Billing
|
||||
redirect_from:
|
||||
- /codespaces/managing-codespaces-for-your-organization/managing-billing-for-codespaces-in-your-organization
|
||||
- /codespaces/managing-codespaces-for-your-organization/managing-billing-for-github-codespaces-in-your-organization
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Your organization is billed according to its compute and storage usage for {% data variables.product.prodname_github_codespaces %}. This article explains the ways in which you, as an organization owner, can manage these costs.
|
||||
|
||||
To learn about pricing for {% data variables.product.prodname_github_codespaces %}, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#codespaces-pricing)."
|
||||
|
||||
## Spending limits
|
||||
|
||||
You can set a spending limit for {% data variables.product.prodname_github_codespaces %} for your organization. This limit is applied to the total compute and storage cost for {% data variables.product.prodname_github_codespaces %}. For more information, see "[Managing spending limits for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-github-codespaces)."
|
||||
|
||||
- **Compute usage:** This is the total time during which all {% data variables.product.prodname_github_codespaces %} instances ("codespaces") were active in a billing month.
|
||||
|
||||
- **Storage usage:** For {% data variables.product.prodname_github_codespaces %} billing purposes, this includes all files used by all codespaces and prebuilds in your account. This includes resources such as cloned repositories, configuration files, and extensions, among others.
|
||||
|
||||
You can check the compute and storage usage for {% data variables.product.prodname_github_codespaces %} for the current billing month. For information, see "[Viewing your {% data variables.product.prodname_github_codespaces %} usage"](/billing/managing-billing-for-github-codespaces/viewing-your-github-codespaces-usage)."
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: Prebuilds for {% data variables.product.prodname_github_codespaces %} are created and updated using {% data variables.product.prodname_actions %}. This may incur billable costs for {% data variables.product.prodname_actions %}. You can set a spending limit for {% data variables.product.prodname_actions %}. For more information, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#billing-for-codespaces-prebuilds)" and "[Managing your spending limit for GitHub Actions](/billing/managing-billing-for-github-actions/managing-your-spending-limit-for-github-actions)." Storage of the generated prebuilds is charged at the same rate as your codespaces, and is included in your {% data variables.product.prodname_github_codespaces %} spending limit.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
## Disabling or limiting {% data variables.product.prodname_codespaces %}
|
||||
|
||||
You can disable all use of {% data variables.product.prodname_github_codespaces %} that would be billed to your organization. Alternatively, you can specify which organization members or collaborators can use {% data variables.product.prodname_codespaces %} at your organization's expense. For more information, see "[Enabling {% data variables.product.prodname_github_codespaces %} for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-github-codespaces-for-your-organization)."
|
||||
|
||||
{% data reusables.codespaces.codespaces-disabling-org-billing %}
|
||||
|
||||
You can configure which repositories can be accessed from codespaces created for a particular repository. For more information, see "[Managing access to other repositories within your codespace](/codespaces/managing-your-codespaces/managing-repository-access-for-your-codespaces)."
|
||||
|
||||
You can limit the choice of types of machine that are available for codespaces created from repositories owned by your organization. This allows you to prevent people using overly resourced machines for their codespaces, and incurring unnecessary charges. For more information, see "[Restricting access to machine types](/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)."
|
||||
|
||||
You can set a maximum idle timeout constraint to limit the maximum timeout that people can set for codespaces that are billable to your organization. This can reduce the compute usage charges generated by codespaces that are left running in an idle state, by stopping active codespace after a shorter timeout period. For more information, see "[Restricting the idle timeout period](/codespaces/managing-codespaces-for-your-organization/restricting-the-idle-timeout-period)."
|
||||
|
||||
You can also restrict how long stopped codespaces can remain unused before they are automatically deleted. This can help to reduce storage costs for {% data variables.product.prodname_codespaces %}. For more information, see "[Restricting the retention period for codespaces](/codespaces/managing-codespaces-for-your-organization/restricting-the-retention-period-for-codespaces)."
|
||||
|
||||
Repository owners who set up prebuilds for their repository can reduce the storage costs of prebuilds by configuring these to be created only in selected regions. For more information, see "[Configuring prebuilds](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)."
|
||||
|
||||
## Deleting unused codespaces
|
||||
|
||||
Your users can delete their own codespaces in https://github.com/codespaces and from within {% data variables.product.prodname_vscode %}. To reduce the size of a codespace, users can manually delete files using the terminal or from within {% data variables.product.prodname_vscode_shortname %}.
|
||||
|
||||
As an organization owner, you can delete any codespace in your organization. For more information, see "[Deleting a codespace](/codespaces/developing-in-codespaces/deleting-a-codespace#deleting-codespaces-in-your-organization)."
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note:** Codespaces are automatically deleted after they have been stopped and have remained inactive for a user-definable number of days. For more information, see "[Configuring automatic deletion of your codespaces](/codespaces/customizing-your-codespace/configuring-automatic-deletion-of-your-codespaces)." As an organization owner, you can set the maximum retention period for codespaces owned by your organization. This will override a user's personal retention setting. For more information, see "[Restricting the retention period for codespaces](/codespaces/managing-codespaces-for-your-organization/restricting-the-retention-period-for-codespaces)."
|
||||
|
||||
{% endnote %}
|
||||
|
||||
## Further reading
|
||||
|
||||
- "[Listing the codespaces in your organization](/codespaces/managing-codespaces-for-your-organization/listing-the-codespaces-in-your-organization)"
|
||||
@@ -40,6 +40,8 @@ You can also personalize aspects of your codespace environment by using a public
|
||||
|
||||
For information on pricing, storage, and usage for {% data variables.product.prodname_github_codespaces %}, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)."
|
||||
|
||||
{% data reusables.codespaces.codespaces-spending-limit-requirement %} For information on how organizations owners and billing managers can manage the spending limit for {% data variables.product.prodname_github_codespaces %} for an organization, see "[Managing spending limits for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-github-codespaces)."
|
||||
{% data reusables.codespaces.codespaces-spending-limit-requirement %}
|
||||
|
||||
{% data reusables.codespaces.codespaces-monthly-billing %} For information on how organizations owners and billing managers can manage the spending limit for {% data variables.product.prodname_github_codespaces %} for an organization, see "[Managing spending limits for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-github-codespaces)."
|
||||
|
||||
You can see who will pay for a codespace before you create it. For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)."
|
||||
@@ -14,7 +14,9 @@ redirect_from:
|
||||
|
||||
## Overview
|
||||
|
||||
Prebuilding your codespaces allows you to be more productive and access your codespace faster, particularly if your repository is large or complex and new codespaces currently take more than 2 minutes to start. This is because any source code, editor extensions, project dependencies, commands, and configurations have already been downloaded, installed, and applied before you create a codespace for your project. Think of a prebuild as a "ready-to-go" template for a codespace.
|
||||
{% data reusables.codespaces.prebuilds-definition %}
|
||||
|
||||
If it currently takes more than 2 minutes to create a codespace for a repository, you are likely to benefit from using prebuilds. This is because, with a prebuild, any source code, editor extensions, project dependencies, commands, and configurations have already been downloaded, installed, and applied before you create a codespace.
|
||||
|
||||
By default, whenever you push changes to your repository, {% data variables.product.prodname_github_codespaces %} uses {% data variables.product.prodname_actions %} to automatically update your prebuilds.
|
||||
|
||||
@@ -28,16 +30,10 @@ To create a prebuild you set up a prebuild configuration. When you save the conf
|
||||
|
||||
When a prebuild configuration workflow runs, {% data variables.product.prodname_dotcom %} creates a temporary codespace, performing setup operations up to and including any `onCreateCommand` and `updateContentCommand` commands in the `devcontainer.json` file. No `postCreateCommand` commands are run during the creation of a prebuild. For more information about these commands, see the [`devcontainer.json` reference](https://code.visualstudio.com/docs/remote/devcontainerjson-reference#_devcontainerjson-properties) in the {% data variables.product.prodname_vscode_shortname %} documentation. A snapshot of the generated container is then taken and stored.
|
||||
|
||||
As with other Actions workflows, running a prebuild configuration workflow will either consume some of the Actions minutes included with your account, if you have any, or it will incur charges for Actions minutes. Storage of codespace prebuilds is billed in the same way as storage of active or stopped codespaces. For more information, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#billing-for-codespaces-prebuilds)."
|
||||
|
||||
When you create a codespace from a prebuild, {% data variables.product.prodname_dotcom %} downloads the existing container snapshot from storage and deploys it on a fresh virtual machine, completing the remaining commands specified in the dev container configuration. Since many operations have already been performed, such as cloning the repository, creating a codespace from a prebuild can be substantially quicker than creating one without a prebuild. This is true where the repository is large and/or `onCreateCommand` commands take a long time to run.
|
||||
|
||||
## About billing for {% data variables.product.prodname_codespaces %} prebuilds
|
||||
|
||||
{% data reusables.codespaces.billing-for-prebuilds-default %} For details of {% data variables.product.prodname_github_codespaces %} storage pricing, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)."
|
||||
|
||||
{% data reusables.codespaces.billing-for-prebuilds-reducing %}
|
||||
|
||||
Use of codespaces created using prebuilds is charged at the same rate as regular codespaces.
|
||||
|
||||
## About pushing changes to prebuild-enabled branches
|
||||
|
||||
By default, each push to a branch that has a prebuild configuration results in a {% data variables.product.prodname_dotcom %}-managed Actions workflow run to update the prebuild. The prebuild workflow has a concurrency limit of one workflow run at a time for a given prebuild configuration, unless changes were made that affect the dev container configuration for the associated repository. For more information, see "[Introduction to dev containers](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)." If a run is already in progress, the workflow run that was queued most recently queued will run next, after the current run completes.
|
||||
|
||||
@@ -61,7 +61,7 @@ Before you can configure prebuilds for your project the following must be true:
|
||||
{% note %}
|
||||
|
||||
**Notes**:
|
||||
* The prebuild for each region will incur individual charges. You should, therefore, only enable prebuilds for regions in which you know they'll be used. For more information, see "[About {% data variables.product.prodname_github_codespaces %} prebuilds](/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds#about-billing-for-codespaces-prebuilds)."
|
||||
* The prebuild for each region will incur individual charges. You should, therefore, only enable prebuilds for regions in which you know they'll be used. For more information, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#billing-for-codespaces-prebuilds)."
|
||||
* Developers can set their default region for {% data variables.product.prodname_github_codespaces %}, which can allow you to enable prebuilds for fewer regions. For more information, see "[Setting your default region for {% data variables.product.prodname_github_codespaces %}](/codespaces/customizing-your-codespace/setting-your-default-region-for-github-codespaces)."
|
||||
|
||||
{% endnote %}
|
||||
|
||||
@@ -299,9 +299,9 @@ subdirectory of the callback URL.
|
||||
BAD: http://oauth.example.com:8080/path
|
||||
BAD: http://example.org
|
||||
|
||||
### Localhost redirect urls
|
||||
### Loopback redirect urls
|
||||
|
||||
The optional `redirect_uri` parameter can also be used for localhost URLs. If the application specifies a localhost URL and a port, then after authorizing the application users will be redirected to the provided URL and port. The `redirect_uri` does not need to match the port specified in the callback url for the app.
|
||||
The optional `redirect_uri` parameter can also be used for loopback URLs. If the application specifies a loopback URL and a port, then after authorizing the application users will be redirected to the provided URL and port. The `redirect_uri` does not need to match the port specified in the callback URL for the app.
|
||||
|
||||
For the `http://127.0.0.1/path` callback URL, you can use this `redirect_uri`:
|
||||
|
||||
@@ -309,6 +309,8 @@ For the `http://127.0.0.1/path` callback URL, you can use this `redirect_uri`:
|
||||
http://127.0.0.1:1234/path
|
||||
```
|
||||
|
||||
Note that OAuth RFC [recommends not to use `localhost`](https://datatracker.ietf.org/doc/html/rfc8252#section-7.3), but instead to use loopback literal `127.0.0.1` or IPv6 `::1`.
|
||||
|
||||
## Creating multiple tokens for OAuth Apps
|
||||
|
||||
You can create multiple tokens for a user/application/scope combination to create tokens for specific use cases.
|
||||
|
||||
@@ -155,9 +155,11 @@ $ ssh-add YOUR-KEY
|
||||
On macOS, `ssh-agent` will "forget" this key, once it gets restarted during reboots. But you can import your SSH keys into Keychain using this command:
|
||||
|
||||
```shell
|
||||
$ ssh-add -K YOUR-KEY
|
||||
$ ssh-add --apple-use-keychain YOUR-KEY
|
||||
```
|
||||
|
||||
For MacOS versions prior to Monterey (12.0), use `-K` instead of `--apple-use-keychain`. For more information, see "[Adding your SSH key to the ssh-agent](/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent)."
|
||||
|
||||
{% endtip %}
|
||||
|
||||
[tech-tips]: http://www.unixwiz.net/techtips/ssh-agent-forwarding.html
|
||||
|
||||
@@ -26,14 +26,14 @@ The {% data variables.product.prodname_registry %} registries below **only** use
|
||||
- Apache Maven registry
|
||||
- NuGet registry
|
||||
|
||||
{% ifversion packages-npm-v2 %}For {% data variables.product.prodname_ghcr_and_npm_registry %}, you can choose to allow packages to be scoped to a user, an organization, or linked to a repository.{% endif %}
|
||||
{% ifversion packages-npm-v2 %}For {% data variables.packages.prodname_ghcr_and_npm_registry %}, you can choose to allow packages to be scoped to a user, an organization, or linked to a repository.{% endif %}
|
||||
|
||||
{% ifversion fpt or ghec %}
|
||||
## Granular permissions for user/organization-scoped packages
|
||||
|
||||
Packages with granular permissions are scoped to a personal user or organization account. You can change the access control and visibility of the package separately from a repository that is connected (or linked) to a package.
|
||||
|
||||
Currently, the {% data variables.product.prodname_ghcr_and_npm_registry %} offer granular permissions for your container image packages.
|
||||
Currently, the {% data variables.packages.prodname_ghcr_and_npm_registry %} offer granular permissions for your container image packages.
|
||||
|
||||
## Visibility and access permissions for container images
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ shortTitle: Access control & visibility
|
||||
|
||||
Packages with granular permissions are scoped to a personal user or organization account. You can change the access control and visibility of a package separately from the repository that it is connected (or linked) to.
|
||||
|
||||
Currently, you can only use granular permissions with the {% data variables.product.prodname_ghcr_and_npm_registry %}. Granular permissions are not supported in our other package registries, such as the RubyGems registry.{% ifversion docker-ghcr-enterprise-migration %} For more information about migration to the {% data variables.product.prodname_container_registry %}, see "[Migrating to the {% data variables.product.prodname_container_registry %} from the Docker registry](/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry)."{% endif %}
|
||||
Currently, you can only use granular permissions with the {% data variables.packages.prodname_ghcr_and_npm_registry %}. Granular permissions are not supported in our other package registries, such as the RubyGems registry.{% ifversion docker-ghcr-enterprise-migration %} For more information about migration to the {% data variables.product.prodname_container_registry %}, see "[Migrating to the {% data variables.product.prodname_container_registry %} from the Docker registry](/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry)."{% endif %}
|
||||
|
||||
For more information about permissions for repository-scoped packages, packages-related scopes for PATs, or managing permissions for your actions workflows, see "[About permissions for GitHub Packages](/packages/learn-github-packages/about-permissions-for-github-packages)."
|
||||
|
||||
@@ -105,7 +105,7 @@ To further customize access to your container image, see "[Configuring access to
|
||||
{% ifversion fpt or ghec %}
|
||||
## Ensuring {% data variables.product.prodname_github_codespaces %} access to your package
|
||||
|
||||
By default, a codespace can seamlessly access certain packages in the {% data variables.product.prodname_ghcr_and_npm_registry %}, such as those published in the same repository with the **Inherit access** option selected. For more information on which access is automatically configured, see "[Allowing your codespace to access a private image registry](/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry#accessing-images-stored-in-container-registry-and-npm-registry)."
|
||||
By default, a codespace can seamlessly access certain packages in the {% data variables.packages.prodname_ghcr_and_npm_registry %}, such as those published in the same repository with the **Inherit access** option selected. For more information on which access is automatically configured, see "[Allowing your codespace to access a private image registry](/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry#accessing-images-stored-in-container-registry-and-npm-registry)."
|
||||
|
||||
Otherwise, to ensure that a codespace has access to your package, you must grant access to the repository where the codespace is being launched.
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ The {% data variables.product.prodname_registry %} registries below **only** use
|
||||
- Apache Maven registry
|
||||
- NuGet registry
|
||||
|
||||
{% ifversion packages-npm-v2 %}For {% data variables.product.prodname_ghcr_and_npm_registry %}, you can choose to allow packages to be scoped to a user, an organization, or linked to a repository.{% endif %}
|
||||
{% ifversion packages-npm-v2 %}For {% data variables.packages.prodname_ghcr_and_npm_registry %}, you can choose to allow packages to be scoped to a user, an organization, or linked to a repository.{% endif %}
|
||||
|
||||
{% ifversion fpt or ghec %}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ For more information about the configuration of {% data variables.product.prodna
|
||||
|
||||
| | |
|
||||
|--------------------|--------------------|
|
||||
| Permissions | {% ifversion fpt or ghec %}The permissions for a package are either inherited from the repository where the package is hosted or, for packages in the {% data variables.product.prodname_ghcr_and_npm_registry %}, they can be defined for specific user or organization accounts. For more information, see "[Configuring a package’s access control and visibility](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)." {% else %}Each package inherits the permissions of the repository where the package is hosted. <br> <br> For example, anyone with read permissions for a repository can install a package as a dependency in a project, and anyone with write permissions can publish a new package version.{% endif %} |
|
||||
| Permissions | {% ifversion fpt or ghec %}The permissions for a package are either inherited from the repository where the package is hosted or, for packages in the {% data variables.packages.prodname_ghcr_and_npm_registry %}, they can be defined for specific user or organization accounts. For more information, see "[Configuring a package’s access control and visibility](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)." {% else %}Each package inherits the permissions of the repository where the package is hosted. <br> <br> For example, anyone with read permissions for a repository can install a package as a dependency in a project, and anyone with write permissions can publish a new package version.{% endif %} |
|
||||
| Visibility | {% data reusables.package_registry.public-or-private-packages %} |
|
||||
|
||||
For more information, see "[About permissions for {% data variables.product.prodname_registry %}](/packages/learn-github-packages/about-permissions-for-github-packages)."
|
||||
|
||||
@@ -31,7 +31,7 @@ Repository-scoped packages inherit their permissions and visibility from the rep
|
||||
- NuGet registry
|
||||
|
||||
{% ifversion fpt or ghec %}
|
||||
The {% data variables.product.prodname_ghcr_and_npm_registry %} offer you the option of granular permissions and visibility settings that can be customized for each package owned by a personal user or organization account. You can choose to use granular permissions or connect the package to a repository and inherit it's permissions. For more information, see "[Connecting a repository to a package](/packages/learn-github-packages/connecting-a-repository-to-a-package)."
|
||||
The {% data variables.packages.prodname_ghcr_and_npm_registry %} offer you the option of granular permissions and visibility settings that can be customized for each package owned by a personal user or organization account. You can choose to use granular permissions or connect the package to a repository and inherit it's permissions. For more information, see "[Connecting a repository to a package](/packages/learn-github-packages/connecting-a-repository-to-a-package)."
|
||||
{% endif %}
|
||||
|
||||
For more information, see "[About permissions for GitHub Packages](/packages/learn-github-packages/about-permissions-for-github-packages){% ifversion fpt or ghec %}" and "[Configuring a package's access control and visibility](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility){% endif %}."
|
||||
|
||||
@@ -24,7 +24,7 @@ shortTitle: Publish & install with Actions
|
||||
You can extend the CI and CD capabilities of your repository by publishing or installing packages as part of your workflow.
|
||||
|
||||
{% ifversion fpt or ghec %}
|
||||
### Authenticating to the {% data variables.product.prodname_ghcr_and_npm_registry %}
|
||||
### Authenticating to the {% data variables.packages.prodname_ghcr_and_npm_registry %}
|
||||
|
||||
{% data reusables.package_registry.authenticate_with_pat_for_v2_registry %}
|
||||
|
||||
@@ -40,7 +40,7 @@ You can reference the `GITHUB_TOKEN` in your workflow file using the {% raw %}`{
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note:** Some registries, such as RubyGems, {% ifversion packages-npm-v2 %}{% else %}npm, {% endif %}Apache Maven, NuGet, {% ifversion fpt or ghec %}and Gradle{% else %}Gradle, and Docker packages that use the package namespace `docker.pkg.github.com`{% endif %}, only allow repository-owned packages. With {% data variables.product.prodname_ghcr_and_npm_registry_full %} you can choose to allow packages to be owned by a user, an organization, or linked to a repository.
|
||||
**Note:** Some registries, such as RubyGems, {% ifversion packages-npm-v2 %}{% else %}npm, {% endif %}Apache Maven, NuGet, {% ifversion fpt or ghec %}and Gradle{% else %}Gradle, and Docker packages that use the package namespace `docker.pkg.github.com`{% endif %}, only allow repository-owned packages. With {% data variables.packages.prodname_ghcr_and_npm_registry_full %} you can choose to allow packages to be owned by a user, an organization, or linked to a repository.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
@@ -49,11 +49,11 @@ When you enable GitHub Actions, GitHub installs a GitHub App on your repository.
|
||||
{% data variables.product.prodname_registry %} allows you to push and pull packages through the `GITHUB_TOKEN` available to a {% data variables.product.prodname_actions %} workflow.
|
||||
|
||||
{% ifversion fpt or ghec %}
|
||||
## About permissions and package access for {% data variables.product.prodname_ghcr_and_npm_registry %}
|
||||
## About permissions and package access for {% data variables.packages.prodname_ghcr_and_npm_registry %}
|
||||
|
||||
The {% data variables.product.prodname_ghcr_and_npm_registry_full %} allows users to create and administer packages as free-standing resources at the organization level. Packages can be owned by an organization or personal account and you can customize access to each of your packages separately from repository permissions.
|
||||
The {% data variables.packages.prodname_ghcr_and_npm_registry_full %} allows users to create and administer packages as free-standing resources at the organization level. Packages can be owned by an organization or personal account and you can customize access to each of your packages separately from repository permissions.
|
||||
|
||||
All workflows accessing the {% data variables.product.prodname_ghcr_and_npm_registry %} should use the `GITHUB_TOKEN` instead of a personal access token. For more information about security best practices, see "[Security hardening for GitHub Actions](/actions/learn-github-actions/security-hardening-for-github-actions#using-secrets)."
|
||||
All workflows accessing the {% data variables.packages.prodname_ghcr_and_npm_registry %} should use the `GITHUB_TOKEN` instead of a personal access token. For more information about security best practices, see "[Security hardening for GitHub Actions](/actions/learn-github-actions/security-hardening-for-github-actions#using-secrets)."
|
||||
|
||||
## Default permissions and access settings for containers modified through workflows
|
||||
|
||||
@@ -486,7 +486,7 @@ Installing packages hosted by {% data variables.product.prodname_registry %} thr
|
||||
{% ifversion fpt or ghec %}
|
||||
## Upgrading a workflow that accesses a registry using a PAT
|
||||
|
||||
The {% data variables.product.prodname_ghcr_and_npm_registry %} support the `GITHUB_TOKEN` for easy and secure authentication in your workflows. If your workflow is using a personal access token (PAT) to authenticate to the registry, then we highly recommend you update your workflow to use the `GITHUB_TOKEN`.
|
||||
The {% data variables.packages.prodname_ghcr_and_npm_registry %} support the `GITHUB_TOKEN` for easy and secure authentication in your workflows. If your workflow is using a personal access token (PAT) to authenticate to the registry, then we highly recommend you update your workflow to use the `GITHUB_TOKEN`.
|
||||
|
||||
For more information about the `GITHUB_TOKEN`, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#using-the-github_token-in-a-workflow)."
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ Customer’s use of the Products must not violate any applicable laws, including
|
||||
Customer’s use of the Service must comply with [GitHub's Acceptable Use Policies](/articles/github-acceptable-use-policies) and [GitHub’s Community Guidelines](/articles/github-community-guidelines). Customer must not use the Service in any jurisdiction for unlawful, obscene, offensive or fraudulent Content or activity, such as advocating or causing harm, interfering with or violating the integrity or security of a network or system, evading filters, sending unsolicited, abusive, or deceptive messages, viruses or harmful code, or violating third party rights.
|
||||
|
||||
### 3. Privacy
|
||||
The [GitHub Privacy Statement](/articles/github-privacy-statement) and the [GitHub Data Protection Agreement](/github/site-policy/github-data-protection-agreement-non-enterprise-customers) provide detailed notice of GitHub's privacy and data use practices as well as GitHub's processing and security obligations with respect to Customer Personal Data. Any person, entity, or service collecting data from the Service must comply with the GitHub Privacy Statement, particularly in regards to the collection of Users' Personal Information (as defined in the GitHub Privacy Statement). If Customer collects any personal information from GitHub, Customer will only use it for the purpose for which the External User has authorized it. Customer will reasonably secure any such Personal Information, and Customer will respond promptly to complaints, removal requests, and "do not contact" requests from GitHub or External Users.
|
||||
The [GitHub Privacy Statement](/articles/github-privacy-statement) and the [GitHub Data Protection Agreement](https://github.com/customer-terms) provide detailed notice of GitHub's privacy and data use practices as well as GitHub's processing and security obligations with respect to Customer Personal Data. Any person, entity, or service collecting data from the Service must comply with the GitHub Privacy Statement, particularly in regards to the collection of personal data (as defined in the GitHub Privacy Statement). If Customer collects any personal information from GitHub, Customer will only use it for the purpose for which the External User has authorized it. Customer will reasonably secure any such Personal Information, and Customer will respond promptly to complaints, removal requests, and "do not contact" requests from GitHub or External Users.
|
||||
|
||||
## D. Content Responsibility; Ownership; License Rights
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,9 +8,14 @@ topics:
|
||||
children:
|
||||
- /github-privacy-statement
|
||||
- /global-privacy-practices
|
||||
- /github-data-protection-agreement
|
||||
|
||||
- /github-subprocessors-and-cookies
|
||||
- /github-codespaces-privacy-statement
|
||||
- /github-candidate-privacy-policy
|
||||
redirect_from:
|
||||
- /github/site-policy/github-data-protection-addendum
|
||||
- /github/site-policy-deprecated/github-data-protection-addendum
|
||||
- /github/site-policy/github-data-protection-agreement-non-enterprise-customers
|
||||
- /site-policy/privacy-policies/github-data-protection-agreement
|
||||
---
|
||||
|
||||
|
||||
@@ -283,7 +283,7 @@ Customer’s use of the Service must not violate any applicable laws, including
|
||||
Customer’s use of the Service must comply with [GitHub's Acceptable Use Policies](/articles/github-acceptable-use-policies) and [GitHub’s Community Guidelines](/articles/github-community-guidelines). Customer must not use the Service in any jurisdiction for unlawful, obscene, offensive or fraudulent Content or activity, such as advocating or causing harm, interfering with or violating the integrity or security of a network or system, evading filters, sending unsolicited, abusive, or deceptive messages, viruses or harmful code, or violating third party rights.
|
||||
|
||||
#### 3.2.3 Privacy.
|
||||
[The GitHub Privacy Statement](/articles/github-privacy-statement) and the [GitHub Data Protection Addendum](/github/site-policy/github-data-protection-addendum) provide detailed notice of GitHub's privacy and data use practices as well as GitHub's processing and security obligations with respect to Customer Personal Data. Any person, entity, or service collecting data from the Service must comply with the [GitHub Privacy Statement](/articles/github-privacy-statement), particularly in regards to the collection of Users' Personal Information (as defined in the GitHub Privacy Statement). If Customer collects any User Personal Information from GitHub, Customer will only use it for the purpose for which the External User has authorized it. Customer will reasonably secure any such Personal Information, and Customer will respond promptly to complaints, removal requests, and "do not contact" requests from GitHub or External Users.
|
||||
[The GitHub Privacy Statement](/articles/github-privacy-statement) and the [GitHub Data Protection Addendum](https://github.com/customer-terms) provide detailed notice of GitHub's privacy and data use practices as well as GitHub's processing and security obligations with respect to Customer Personal Data. Any person, entity, or service collecting data from the Service must comply with the [GitHub Privacy Statement](/articles/github-privacy-statement), particularly in regards to the collection of Users' Personal Information (as defined in the GitHub Privacy Statement). If Customer collects any User Personal Information from GitHub, Customer will only use it for the purpose for which the External User has authorized it. Customer will reasonably secure any such Personal Information, and Customer will respond promptly to complaints, removal requests, and "do not contact" requests from GitHub or External Users.
|
||||
|
||||
### 3.3 Content Responsibility; Ownership; License Rights.
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ Customer’s use of the Service must not violate any applicable laws, including
|
||||
Customer’s use of the Service must comply with [GitHub's Acceptable Use Policies](/github/site-policy/github-acceptable-use-policies) and [GitHub’s Community Guidelines](/github/site-policy/github-community-guidelines). Customer must not use the Service in any jurisdiction for unlawful, obscene, offensive or fraudulent Content or activity, such as advocating or causing harm, interfering with or violating the integrity or security of a network or system, evading filters, sending unsolicited, abusive, or deceptive messages, viruses or harmful code, or violating third party rights.
|
||||
|
||||
#### 2.2.3 Privacy.
|
||||
[The GitHub Privacy Statement](/github/site-policy/github-privacy-statement) and the [GitHub Data Protection Addendum](/github/site-policy/github-data-protection-addendum) provide detailed notice of GitHub's privacy and data use practices as well as GitHub's processing and security obligations with respect to Customer Personal Data. Any person, entity, or service collecting data from the Service must comply with the [GitHub Privacy Statement](/github/site-policy/github-privacy-statement), particularly in regards to the collection of Users' Personal Information (as defined in the GitHub Privacy Statement). If Customer collects any User Personal Information from GitHub, Customer will only use it for the purpose for which the External User has authorized it. Customer will reasonably secure any such Personal Information, and Customer will respond promptly to complaints, removal requests, and "do not contact" requests from GitHub or External Users.
|
||||
[The GitHub Privacy Statement](/github/site-policy/github-privacy-statement) and the [GitHub Data Protection Addendum](https://github.com/customer-terms) provide detailed notice of GitHub's privacy and data use practices as well as GitHub's processing and security obligations with respect to Customer Personal Data. Any person, entity, or service collecting data from the Service must comply with the [GitHub Privacy Statement](/github/site-policy/github-privacy-statement), particularly in regards to the collection of Users' Personal Information (as defined in the GitHub Privacy Statement). If Customer collects any User Personal Information from GitHub, Customer will only use it for the purpose for which the External User has authorized it. Customer will reasonably secure any such Personal Information, and Customer will respond promptly to complaints, removal requests, and "do not contact" requests from GitHub or External Users.
|
||||
|
||||
### 2.3 Content Responsibility; Ownership; License Rights.
|
||||
|
||||
|
||||
@@ -244,6 +244,7 @@ Introduce links consistently using a standard format that clearly indicates wher
|
||||
For links to other articles in the GitHub docs: `For more information, see "[Page or article title]()."`
|
||||
For links to another section in the same article: `For more information, see "[Header text]()."`
|
||||
For links to specific sections in other articles in the GitHub docs: `For more information, see "[Article title]()."`
|
||||
For links to an article with a specific tool selected: `For more information, see the TOOLNAME documentation in "[ARTICLE TITLE](/PATH/TO/ARTICLE?tool=TOOLNAME).`
|
||||
For links to external documentation: `For more information, see [Page or article title]() in the X documentation.`
|
||||
Do not include quotation marks within a hyperlink.
|
||||
|
||||
@@ -283,6 +284,12 @@ To link to a specific header in the same article, use this format:
|
||||
To link to a specific header in a different article, use this format:
|
||||
> For more information, see "[ARTICLE TITLE](path-to-article#HEADER-TITLE)."
|
||||
|
||||
### Links to a specific tool
|
||||
|
||||
When we link to content with a specific tool selected, we want to make sure that someone knows that they will be looking at content relevant to a specific tool even if they do not view the tool switcher tabs in the article.
|
||||
|
||||
> For more information, see the TOOLNAME documentation in "[ARTICLE TITLE](/PATH/TO/ARTICLE?tool=TOOLNAME).
|
||||
|
||||
### Links to learning paths
|
||||
|
||||
Use this format to link to a learning path.
|
||||
|
||||
@@ -21,9 +21,9 @@ Do not use the tool switcher just to show examples in different languages. Only
|
||||
### How to use tool tags
|
||||
Tool tags are Liquid tags that wrap content specific to a tool. For more information on using tool tags in an article, see the [content markup reference](./content-markup-reference.md#tool-tags).
|
||||
|
||||
Only include a maximum of eight different tools in an article. Including more tools causes the tool switcher tabs to overflow with an article's table of contents, which prevents people from using either the tool switcher or table of contents. It is unlikely that you will ever need to include eight separate tools in an article. In general, plan to use as few separate tools as possible in an article.
|
||||
Put tools in alphabetical order. By default, the first tool tag will be selected for an article. You can define a different default tool for an article in the article's frontmatter. For more information, see the [content README](../content/README.md#defaulttool). You can also link to an article with a specific tool selected by adding `?tool=TOOLNAME` to the end of the link. For more information, see the [content style guide](./content-style-guide.md#links-to-a-specific-tool).
|
||||
|
||||
Tool tags are displayed alphabetically. You can define a default tool for an article in the article's frontmatter. For more information, see the [content README](../content/README.md#defaulttool).
|
||||
Only include a maximum of eight different tools in an article. Including more tools causes the tool switcher tabs to overflow with an article's table of contents, which prevents people from using either the tool switcher or table of contents. It is unlikely that you will ever need to include eight separate tools in an article. In general, plan to use as few separate tools as possible in an article.
|
||||
|
||||
## Adding new tools
|
||||
If a writer determines that adding a new tool is the only way to accurately document something, they should explain their reasoning in the content planning stage. Whoever reviews content plan should consider if there are any alternative ways to address the documentation need without adding a new tool. If a new tool is the only way to create accurate documentation, the new tool should be added. If there is an alternative content solution that does not add a new tool, that option should be used.
|
||||
|
||||
@@ -1,3 +1 @@
|
||||
We recommend that you only use {% data variables.actions.hosted_runner %}s with private repositories:
|
||||
- Forks of your repository can potentially run dangerous code on your {% data variables.actions.hosted_runner %} by creating a pull request that executes the code in a workflow.
|
||||
- You could incur unexpected costs if you allow forked repositories to run jobs on your {% data variables.actions.hosted_runner %}s.
|
||||
If you are using a Fixed IP range, we recommend that you only use {% data variables.actions.hosted_runner %}s with private repositories. Forks of your repository can potentially run dangerous code on your {% data variables.actions.hosted_runner %} by creating a pull request that executes the code in a workflow.
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
By default, a {% data variables.product.prodname_actions %} workflow is triggered every time you create or update a prebuild, or push to a prebuild-enabled branch. As with other workflows, while prebuild workflows are running they will either consume some of the Actions minutes included with your account, if you have any, or they will incur charges for Actions minutes. For more information about pricing for Actions minutes, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)."
|
||||
|
||||
Alongside {% data variables.product.prodname_actions %} minutes, you will also be billed for the storage of prebuilds associated with each prebuild configuration for a given repository and region. Storage of prebuilds is billed at the same rate as storage of codespaces.
|
||||
@@ -1,3 +0,0 @@
|
||||
To reduce consumption of Actions minutes, you can set a prebuild to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. You can also manage your storage usage by adjusting the number of template versions to be retained for your prebuild configurations. For more information, see "[Configuring prebuilds](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)."
|
||||
|
||||
If you are an organization or enterprise owner, you can track usage of prebuild workflows and storage by downloading a {% data variables.product.prodname_actions %} usage report for your organization or enterprise. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create {% data variables.product.prodname_github_codespaces %} Prebuilds." For more information, see "[Viewing your {% data variables.product.prodname_actions %} usage](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)."
|
||||
@@ -1,9 +0,0 @@
|
||||
{% data variables.product.prodname_codespaces %} are billed in US dollars (USD) according to their compute and storage usage.
|
||||
|
||||
### Calculating compute usage
|
||||
Compute usage is defined as the total number of uptime minutes for which a {% data variables.product.prodname_github_codespaces %} instance is active. Compute usage is calculated by summing the actual number of minutes used by all codespaces that are billable to the organization or enterprise. These totals are reported to the billing service daily, and are billed monthly.
|
||||
|
||||
Uptime is controlled by stopping your codespace, which can be done manually or automatically after a developer specified period of inactivity. For more information, see "[Closing or stopping your codespace](/codespaces/getting-started/deep-dive#closing-or-stopping-your-codespace)".
|
||||
|
||||
### Calculating storage usage
|
||||
For {% data variables.product.prodname_github_codespaces %} billing purposes, this includes all storage used by all codespaces in your account. This includes any files used by the codespaces, such as cloned repositories, configuration files, and extensions, among others. These totals are reported to the billing service daily, and are billed monthly. At the end of the month, {% data variables.product.prodname_dotcom %} rounds your storage to the nearest MB.
|
||||
@@ -1,5 +1,5 @@
|
||||
{% note %}
|
||||
|
||||
**Note**: If you disable billable codespaces use for your organization, anyone who can create codespaces as an individual user, and can clone a repository in your organization, will still be able to create a codespace for that repository. However, this will not incur any charge for your organization. For information about restricting access to a repository, see "[Managing teams and people with access to your repository](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)."
|
||||
**Note**: If you disable billable codespaces use for your organization, anyone who can clone a repository in your organization, will still be able to create a codespace for that repository by using their personal account. However, this will not incur any charge for your organization. For information about restricting access to a repository, see "[Managing teams and people with access to your repository](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)."
|
||||
|
||||
{% endnote %}
|
||||
1
data/reusables/codespaces/codespaces-monthly-billing.md
Normal file
1
data/reusables/codespaces/codespaces-monthly-billing.md
Normal file
@@ -0,0 +1 @@
|
||||
Costs for {% data variables.product.prodname_github_codespaces %} are always billed monthly, even if your account is otherwise billed annually.
|
||||
@@ -5,5 +5,3 @@
|
||||
{% endnote %}
|
||||
|
||||
By default, your organization or enterprise will have a {% data variables.product.prodname_github_codespaces %} spending limit of $0. This prevents new codespaces from being created, or existing codespaces from being opened, if this would incur a billable cost to your organization or enterprise. To allow your users to create codespaces in your organization, set the limit to a value higher than $0.
|
||||
|
||||
{% data reusables.billing.overages-billed-monthly %}
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
After you connect your account on {% data variables.product.product_location %} to the {% data variables.product.prodname_github_codespaces %} extension, you can create a new codespace. For more information about the {% data variables.product.prodname_github_codespaces %} extension, see the [{% data variables.product.prodname_vs_marketplace_shortname %} marketplace](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces).
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: Currently, {% data variables.product.prodname_vscode_shortname %} doesn't allow you to choose a dev container configuration when you create a codespace. If you want to choose a specific dev container configuration, use the {% data variables.product.prodname_dotcom %} web interface to create your codespace. For more information, click the **Web browser** tab at the top of this page.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% data reusables.codespaces.click-remote-explorer-icon-vscode %}
|
||||
2. Click the Add icon: {% octicon "plus" aria-label="The plus icon" %}.
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
If you hit a spending limit, you will no longer be able to create or resume your codespaces. You can still [export any work in progress changes to a new branch](/codespaces/troubleshooting/exporting-changes-to-a-branch).
|
||||
If your organization reaches its spending limit, people will no longer be able to create or resume codespaces that are billable to your organization. However, they can still [export any work in progress changes to a new branch](/codespaces/troubleshooting/exporting-changes-to-a-branch).
|
||||
|
||||
1
data/reusables/codespaces/prebuilds-definition.md
Normal file
1
data/reusables/codespaces/prebuilds-definition.md
Normal file
@@ -0,0 +1 @@
|
||||
A prebuild assembles the main components of a codespace for a particular combination of repository, branch, and `devcontainer.json` configuration file. It provides a quick way to create a new codespace. For complex and/or large repositories in particular, you can create a new codespace more quickly by using a prebuild.
|
||||
@@ -1 +0,0 @@
|
||||
To estimate the costs for consumptive services, you can use the {% data variables.product.prodname_dotcom %} [pricing calculator](https://github.com/pricing/calculator?feature=codespaces).
|
||||
3
data/variables/packages.yml
Normal file
3
data/variables/packages.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
prodname_ghcr_and_npm_registry: '{% data variables.product.prodname_container_registry %}{% ifversion packages-npm-v2 %} and {% data variables.product.prodname_npm_registry %}{% endif %}'
|
||||
prodname_ghcr_or_npm_registry: '{% data variables.product.prodname_container_registry %}{% ifversion packages-npm-v2 %} or {% data variables.product.prodname_npm_registry %}{% endif %}'
|
||||
prodname_ghcr_and_npm_registry_full: '{% data variables.product.prodname_container_registry %} (`ghcr.io`){% ifversion packages-npm-v2 %} and {% data variables.product.prodname_npm_registry %} (`npm.pkg.github.com`){% endif %}'
|
||||
@@ -140,9 +140,6 @@ prodname_container_registries: 'Container registries'
|
||||
prodname_docker_registry_namespace: '{% ifversion fpt or ghec %}`docker.pkg.github.com`{% elsif ghes or ghae %}<code>docker.<em>HOSTNAME</em></code>{% endif %}'
|
||||
prodname_container_registry_namespace: '{% ifversion fpt or ghec %}`ghcr.io`{% elsif ghes or ghae %}<code>containers.<em>HOSTNAME</em></code>{% endif %}'
|
||||
prodname_npm_registry: 'npm registry'
|
||||
prodname_ghcr_and_npm_registry: '{% data variables.product.prodname_container_registry %}{% ifversion packages-npm-v2 %} and {% data variables.product.prodname_npm_registry %}{% endif %}'
|
||||
prodname_ghcr_or_npm_registry: '{% data variables.product.prodname_container_registry %}{% ifversion packages-npm-v2 %} or {% data variables.product.prodname_npm_registry %}{% endif %}'
|
||||
prodname_ghcr_and_npm_registry_full: '{% data variables.product.prodname_container_registry %} (`ghcr.io`){% ifversion packages-npm-v2 %} and {% data variables.product.prodname_npm_registry %} (`npm.pkg.github.com`){% endif %}'
|
||||
|
||||
# GitHub Insights
|
||||
prodname_insights: 'GitHub Insights'
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c1e316800b0ecb7e0b6c4e22531b6dcc65ea0261d40b18d5df49b5e376019ebc
|
||||
size 786148
|
||||
oid sha256:c4b810ba5e9dfac2a18bde3929ecf72beeca793aaa80038fc00f83850293c05a
|
||||
size 785820
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:710509fe6a709be217ab3d3a0c841225e2c65fd540173a445005de6c099a1e93
|
||||
size 1630178
|
||||
oid sha256:22766e741bdf33d0959a74e5cb68f294271aa98f7da51a7137a92cf6af041c0a
|
||||
size 1637595
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1da730bf21034298ed9c76ea18e90cd3ba4203e7d6c6d2acf90d35d1bffcc5bd
|
||||
size 1099296
|
||||
oid sha256:6e5813d7598158689930c0701dd189bde6bb4da4aa9a36bf7fce3b63a5cb30f8
|
||||
size 1100588
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7789fa5730a66069d43dacb834d66799481e1c5974cee6a402be5dcd7bee5fdf
|
||||
size 4478847
|
||||
oid sha256:1ab53e754174a0d9162bfb24e097f82cb83cc09d4864d5783d7dc241dd7e7092
|
||||
size 4482703
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c1df3d276c7e3af2f2598e1631376f0692fc3d9acefdba7f5afc46d975753bb
|
||||
size 746123
|
||||
oid sha256:b7ebf010bc7c3c5c8a6082102179ddc7ff9ef1f4f5e82d37a33cc5015ce3141c
|
||||
size 746824
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e5c96370e5a124ca2e005ae03cbfe50ff231e784ba08ad7f959a7cab21ec5803
|
||||
size 3142521
|
||||
oid sha256:d6c183854931043e1decb358cb7852de3104fb08594b557d236638070e82739a
|
||||
size 3149441
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:622a8f897c4f0aca676bab7468aacbf6cbc12c627b7898f23bb8d4fc011318ac
|
||||
size 827874
|
||||
oid sha256:d4a8ae260c48370eefa41da4a67380fce01bed5c9e542107a574fa4fca576cfa
|
||||
size 827403
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8ba3897c4eb7b9882222d2db39de2184e5efc2557cc7cf994b3437f92b18a41a
|
||||
size 4409958
|
||||
oid sha256:e59140a1ee9da06b73ad5b93b1a50f43638d8b8876f28102fe1f2996f8a906ff
|
||||
size 4411380
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eb35d825b812c23d569ae8d21dc490b805d1493a489323b95d1bdfa73209e9dd
|
||||
size 732723
|
||||
oid sha256:5d037943a5aca636441fb1fa0623e2eb64560ede01eff015752663af764d4eee
|
||||
size 733293
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:84776107eefcba41d68db37bf99040c573bc170fb81955fb30a46ef67f28e7fa
|
||||
size 3120912
|
||||
oid sha256:850422094c149634f0ca67eac9d916d80ebb0b6c0551b247da3c60381fc68e69
|
||||
size 3129130
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9a1a4d215db506ff72ef54e9b105fb02df64d4e63a57ae73da2cbfd70f1fbd8b
|
||||
size 810545
|
||||
oid sha256:c72b4be3611cd0de641cc10964a784d794b57af23e413a4cb93ecb7064b68385
|
||||
size 810274
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0e6a20e4ea5227a79691b0f73db72af401d42276012b818684f840a989784d94
|
||||
size 1685425
|
||||
oid sha256:651f5531c1c7fc97343dce7e082692196d96fc68aaaea587a680484dc17def38
|
||||
size 1692427
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:125107e1e60bb1cd23806b8f349f64a3563ff7ae4de733489fb7b13414b2bf2c
|
||||
size 1135321
|
||||
oid sha256:5842022974f3e9d90da627da2391271beb8f07ecbaa699a5bff9bf5894361af2
|
||||
size 1136383
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c86c0b042a5fde7af934fc8297bbd81342c74432dc99392c8c58ded12fdc2120
|
||||
size 4582821
|
||||
oid sha256:f9a5093303d9c75b82da67be8ec205b32db91f8a669eed89c5704f1045038d06
|
||||
size 4587223
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3aae190eb2aa194f8774dba4cc18820f111f0bad2f90ded56788deca270fbee3
|
||||
size 767737
|
||||
oid sha256:5275ef1828e8c9dd2a6b40bd944b58c78779be5fce85d8efdbae407987b95d2c
|
||||
size 768746
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dcf06d47fe6636f2331f3d3b61f0c1bcdde9a90a4376dc63cf1a048891999e2d
|
||||
size 3237286
|
||||
oid sha256:c902488174f85e8b61b257512ad089488a95d04f7f38ef81a0f6d40ae3e3c71b
|
||||
size 3245397
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d57ead981442e6bbe1cdde849653f253185be76520bd26a06567209795376854
|
||||
size 852049
|
||||
oid sha256:57e9fbc67b811f719cf3bdcb69965c95ccdc2fb4012635f8b2aa5d0ae993ad7f
|
||||
size 851368
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c4cb807820d41bf8dab64a884cbb08283e4ae7d484f9d191667e96150518e94a
|
||||
size 4542358
|
||||
oid sha256:e715fbac42c2965488ad1a4065149552ea5c4ed3c67232344e1651bde0099bcd
|
||||
size 4542564
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f6e3df5252a3c42a855791fdf293c1727b1367ca64d51d3e3b095fd4d2b898ce
|
||||
size 754664
|
||||
oid sha256:14ee00e316369200647537d60aaeaec5cdc6747948d94ac41995d6eb0722c5a5
|
||||
size 755444
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:16d035c3747768031dfed30ee9c8a45adacb895745eb7e99523cf0cf4ceae2a7
|
||||
size 3216823
|
||||
oid sha256:8909b569adcd53130c02598ece69a4371fcc4e0ae43b31ff5f431849cdb6f3a7
|
||||
size 3224774
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:82f1ab8939d5dd26cbcf8d8e8127685d7df040e34766c0f033dcfb2ed84b608a
|
||||
size 813071
|
||||
oid sha256:dfcc12174ccceeabadd3719d9f43ba6f3998ea8a7457c6fda01146d538f64104
|
||||
size 812594
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:37798c560348a57b9281d4485d57e49df40395c217e17139586b8ecddf5db120
|
||||
size 1699281
|
||||
oid sha256:23316b801b75ffcf081781f23da523ca7020bb79df6d00d9904d17f631be25e9
|
||||
size 1705727
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2c494b17ccad4a828b13b60fef8e2d2c65b561af145fc2f3daa803240f6bf763
|
||||
size 1146911
|
||||
oid sha256:20ff7a53cfdae827c28fe13921ee752abcc6f7569e614626ad107d0a7765fdb2
|
||||
size 1147534
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:97e6b7d79453f2623564b58e3bdf191a5df33c074a3fa9318ed06024b4a56a96
|
||||
size 4643132
|
||||
oid sha256:8e353148317ea02fddcf9f55106bcd74eb94170023b603de7bcbdb2c0def670c
|
||||
size 4649066
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f2d1a80587e182370a76baaab88aa7e4e53f8c0fee254b51a2d75818d8667b81
|
||||
size 772282
|
||||
oid sha256:32d0e6b73754567a0d6942ca11c2cb7d0788ed00e283463c0fe89ee57928d00a
|
||||
size 773144
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6b77ef7d174387505ae2b6de83dfd9c6b38899319ce87b445532fbb0600d8816
|
||||
size 3265028
|
||||
oid sha256:ee65882ace27b556afa1da22f131812581b6d15cca88c858ba9c400aeb947b2a
|
||||
size 3271985
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f8018b669d0fc4ca288f42e8793e795f8442a97436e87eaf9e30b5acb8a3dddb
|
||||
size 854092
|
||||
oid sha256:19906631cf066b04bb84dcad8ad6d3c86020c6f13d8ef232f31aed162f539110
|
||||
size 853298
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:86278d13de69f0c4e59e0279bab7a93251791a41a55ef53378ab1294c4f44cc8
|
||||
size 4568763
|
||||
oid sha256:459540a5c1b478d9e4f13610b6b562bdf26ee6328026e7e728b599c663fc1d9e
|
||||
size 4570475
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d054eecda396c7f332cf7f9e4fe29e426e632d447f8f030c143699e0e1b5d5dd
|
||||
size 759001
|
||||
oid sha256:625d53713f954f67956109ef467033813b3332d91955bb5bb4670db3bc7fd7e2
|
||||
size 759703
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:30bc27bf2b1d4d6aecb06bc29a3caf68989902ab144e99d0b6278b9fc0732dc0
|
||||
size 3243686
|
||||
oid sha256:e12550f1a2ef5dc8b23ebe250dbb7de35a83df2f97e57db243c2c77c54546fc8
|
||||
size 3252146
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3200128e89914ac5839d08ce3320acb356b22494f293c002decc7b05ca21697d
|
||||
size 843382
|
||||
oid sha256:7c541b5d9be25a761c5b02e4d7db7722a6e9b5d6901d86d69b5a49e134383908
|
||||
size 843067
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6391e168f9f3b253592e9212c5f682b1185ebe6d357d347c2ef8419b5afeb79e
|
||||
size 1764903
|
||||
oid sha256:9851566311359a73ba5f80c503fb556bd2fd81e4d8225860dbf8697dc597b833
|
||||
size 1772774
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:39506d96b315a4f5baf2f7c593fa389d1d6cc733544deb60f5c7f3b43d21ebf2
|
||||
size 1187033
|
||||
oid sha256:3d4eab484c271ef4924b408efda68dc65b7b249b340f576f8bce6a4a1d689ae1
|
||||
size 1188474
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5f2b8dcda46be7ac2312f7fdf54e66cb3d4ea6bd3ab1a5b24f6592317876e8b3
|
||||
size 4809942
|
||||
oid sha256:2ed35a3beed4edeb7db00a50561585ded796c82bd1904ee255f6d91075af9df6
|
||||
size 4815435
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f151d81357d6763dd75927bd9103b9bf9a3f955a799a1e7205e05b3f89981ee0
|
||||
size 797215
|
||||
oid sha256:a8061ec65782c88fc8c437a182b350e86cbfba68416ac96083c86e294acd2b5f
|
||||
size 798059
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:687f3e4f1fa8531861e097027ec06fcc015999479d26528af7e1f14057f4abb5
|
||||
size 3379783
|
||||
oid sha256:155ab77837d9ce855da37df04aa210634191f38c9945f2c51feabb0d46d8887c
|
||||
size 3386219
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a95fb41a71d410159960c52cb1f40b1e34a3a79d6da6d4d3265de7203dc1fba3
|
||||
size 884301
|
||||
oid sha256:235d327c3ea9e2b627acba1145f1ae13b9d52f52d22c4d05b346ab96807594b4
|
||||
size 883427
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:17fa68c49ad52af79f3dae4817178ca2b55ccdd9087005034f092b980c3e03e2
|
||||
size 4738701
|
||||
oid sha256:348d0f04baeaea1a0a576733bc68d748210995b724ee1d5088ea80f040731d40
|
||||
size 4739924
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8e7430213368cf17013ce3c3c16d9f0a417c8220924b6a9fe521ac9fd4b0e7d6
|
||||
size 783970
|
||||
oid sha256:0bb434d457dd89dcbdc4928e19b5ebfa4f2308aabfb3fdd3a1308e4a11b45f97
|
||||
size 784870
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b511ec3d8b829ea994fcb2b446eab37900c04435c7371e10d7e19e70f91f9335
|
||||
size 3359310
|
||||
oid sha256:27fac92b5801f18f187b39e8b7195041ee11b48d50e0091406e707ff6fc44dc1
|
||||
size 3368246
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3dd69fcc279e4e3bb8cdc8304655546c8754f7b83b6bfc20977634e07b1f09ae
|
||||
size 866724
|
||||
oid sha256:c4577edc495b805542370b75a732e7122a30aabd24ef92e40fc5b33a44dadb55
|
||||
size 866226
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:96345e899a6bfb6be04f78b1cbc6d11b6a2e57e4440291f439303a279f51ec4e
|
||||
size 1808420
|
||||
oid sha256:5160bdd5f27fc89e8030a20bf12d51fcb0d1b63634a32168f3736aa0b91908f1
|
||||
size 1814531
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:03724e59d8f1ef414f97583424dea6505a9c65cb1a37b3af410cd4aa42d8540c
|
||||
size 1221916
|
||||
oid sha256:04317f88ce1915fa2b8014540ee6fdf730dcc89af511b0d57093e3fc1e5051fa
|
||||
size 1222601
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b5c47a807549dda866b5a0952dc4af1fefdaa5107bec19ba541b8df0c9770027
|
||||
size 4948429
|
||||
oid sha256:4ff29bd1ecb88fd251b0522bc019c1fc1a9ebaf04bcad90af7dc349f9f2db31a
|
||||
size 4952320
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user