1
0
mirror of synced 2025-12-22 03:16:52 -05:00

Merge branch 'main' into fix-liquid-conditionals

This commit is contained in:
Sarah Schneider
2021-06-11 14:33:45 -04:00
committed by GitHub
9281 changed files with 266549 additions and 16558 deletions

View File

@@ -41,6 +41,7 @@ jobs:
token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }} token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
title: ${{ steps.check.outputs.title }} title: ${{ steps.check.outputs.title }}
content-filepath: ./broken_links.md content-filepath: ./broken_links.md
repository: github/docs-content
labels: broken link report labels: broken link report
- if: ${{ failure() }} - if: ${{ failure() }}
name: Add comment to issue name: Add comment to issue

View File

@@ -26,6 +26,20 @@ export const Breadcrumbs = () => {
<span key={title} title={title}> <span key={title} title={title}>
{breadcrumb.title} {breadcrumb.title}
</span> </span>
) : pathWithLocale.includes('/guides') ? (
<span className="text-mono color-text-secondary text-uppercase">
<Link
key={title}
href={breadcrumb.href}
title={title}
className={cx(
'd-inline-block',
pathWithLocale === breadcrumb.href && 'color-text-tertiary'
)}
>
{breadcrumb.title}
</Link>
</span>
) : ( ) : (
<Link <Link
key={title} key={title}

View File

@@ -25,7 +25,7 @@ type VersionItem = {
versionTitle: string versionTitle: string
} }
export type CurrentProductTree = { export type ProductTreeNode = {
page: { page: {
hidden?: boolean hidden?: boolean
documentType: 'article' | 'mapTopic' documentType: 'article' | 'mapTopic'
@@ -35,7 +35,7 @@ export type CurrentProductTree = {
renderedShortTitle?: string renderedShortTitle?: string
renderedFullTitle: string renderedFullTitle: string
href: string href: string
childPages: Array<CurrentProductTree> childPages: Array<ProductTreeNode>
} }
type DataT = { type DataT = {
@@ -84,7 +84,7 @@ export type MainContextT = {
userLanguage: string userLanguage: string
languages: Record<string, LanguageItem> languages: Record<string, LanguageItem>
allVersions: Record<string, VersionItem> allVersions: Record<string, VersionItem>
currentProductTree?: CurrentProductTree | null currentProductTree?: ProductTreeNode | null
featureFlags: FeatureFlags featureFlags: FeatureFlags
page: { page: {
documentType: string documentType: string
@@ -186,7 +186,7 @@ export const getMainContextFromRequest = (req: any): MainContextT => {
} }
// only pull things we need from the product tree, and make sure there are default values instead of `undefined` // only pull things we need from the product tree, and make sure there are default values instead of `undefined`
const getCurrentProductTree = (input: any): CurrentProductTree => { const getCurrentProductTree = (input: any): ProductTreeNode => {
return { return {
href: input.href, href: input.href,
renderedShortTitle: input.renderedShortTitle || '', renderedShortTitle: input.renderedShortTitle || '',

View File

@@ -0,0 +1,64 @@
import { createContext, useContext } from 'react'
import pick from 'lodash/pick'
export type FeaturedTrack = {
trackName: string
title: string
description: string
guides?: Array<{ href: string; page: { type: string }; title: string; intro: string }>
}
export type ArticleGuide = {
href: string
title: string
intro: string
type: string
topics: Array<string>
}
export type ProductSubLandingContextT = {
title: string
intro: string
featuredTrack?: FeaturedTrack
learningTracks?: Array<FeaturedTrack>
includeGuides?: Array<ArticleGuide>
allTopics?: Array<string>
}
export const ProductSubLandingContext = createContext<ProductSubLandingContextT | null>(null)
export const useProductSubLandingContext = (): ProductSubLandingContextT => {
const context = useContext(ProductSubLandingContext)
if (!context) {
throw new Error(
'"useProductSubLandingContext" may only be used inside "ProductSubLandingContext.Provider"'
)
}
return context
}
export const getProductSubLandingContextFromRequest = (req: any): ProductSubLandingContextT => {
const page = req.context.page
return {
...pick(page, ['intro', 'allTopics']),
title: req.context.productMap[req.context.currentProduct].name,
featuredTrack: {
...pick(page.featuredTrack, ['title', 'description', 'trackName', 'guides']),
guides: (page.featuredTrack?.guides || []).map((guide: any) => {
return pick(guide, ['title', 'intro', 'href', 'page.type'])
}),
},
learningTracks: (page.learningTracks || []).map((track: any) => ({
...pick(track, ['title', 'description', 'trackName', 'guides']),
guides: (track.guides || []).map((guide: any) => {
return pick(guide, ['title', 'intro', 'href', 'page.type'])
}),
})),
includeGuides: (page.includeGuides || []).map((guide: any) => {
return pick(guide, ['href', 'title', 'intro', 'type', 'topics'])
}),
}
}

View File

@@ -29,7 +29,11 @@ export const CodeExampleCard = ({ example }: Props) => {
</div> </div>
<footer className="border-top p-4 color-text-secondary d-flex flex-items-center"> <footer className="border-top p-4 color-text-secondary d-flex flex-items-center">
<RepoIcon className="flex-shrink-0" /> <RepoIcon className="flex-shrink-0" />
<TruncateLines as="span" maxLines={1} className="ml-2 text-mono text-small color-text-link line-break-anywhere"> <TruncateLines
as="span"
maxLines={1}
className="ml-2 text-mono text-small color-text-link line-break-anywhere"
>
{example.href} {example.href}
</TruncateLines> </TruncateLines>
</footer> </footer>

View File

@@ -1,19 +1,29 @@
import cx from 'classnames' import cx from 'classnames'
import { useTranslation } from 'components/hooks/useTranslation'
type Props = { type Props = {
title?: React.ReactNode title?: React.ReactNode
sectionLink?: string sectionLink?: string
children?: React.ReactNode children?: React.ReactNode
className?: string className?: string
description?: string
} }
export const LandingSection = ({ title, children, className, sectionLink }: Props) => { export const LandingSection = ({ title, children, className, sectionLink, description }: Props) => {
const { t } = useTranslation('product_sublanding')
return ( return (
<div className={cx('container-xl px-3 px-md-6', className)} id={sectionLink}> <div className={cx('container-xl px-3 px-md-6', className)} id={sectionLink}>
{title && ( {title && (
<h2 className="font-mktg h1 mb-4"> <h2 className={cx('font-mktg', !description ? 'mb-3' : 'mb-4')}>
{sectionLink ? <a href={`#${sectionLink}`}>{title}</a> : title} {sectionLink ? <a href={`#${sectionLink}`}>{title}</a> : title}
</h2> </h2>
)} )}
{description && (
<div
className="lead-mktg color-text-secondary f4 description-text"
dangerouslySetInnerHTML={{ __html: t(description) }}
/>
)}
{children} {children}
</div> </div>
) )

View File

@@ -3,7 +3,7 @@ import { useState } from 'react'
import { ChevronUpIcon } from '@primer/octicons-react' import { ChevronUpIcon } from '@primer/octicons-react'
import { CurrentProductTree, useMainContext } from 'components/context/MainContext' import { ProductTreeNode, useMainContext } from 'components/context/MainContext'
import { Link } from 'components/Link' import { Link } from 'components/Link'
const maxArticles = 10 const maxArticles = 10
@@ -17,50 +17,50 @@ export const ProductArticlesList = () => {
return ( return (
<div className="d-flex gutter flex-wrap"> <div className="d-flex gutter flex-wrap">
{currentProductTree.childPages.map((childPage, i) => { {currentProductTree.childPages.map((treeNode, i) => {
if (childPage.page.documentType === 'article') { if (treeNode.page.documentType === 'article') {
return null return null
} }
return <ArticleList key={childPage.href + i} page={childPage} /> return <ArticleList key={treeNode.href + i} treeNode={treeNode} />
})} })}
</div> </div>
) )
} }
const ArticleList = ({ page }: { page: CurrentProductTree }) => { const ArticleList = ({ treeNode }: { treeNode: ProductTreeNode }) => {
const [isShowingMore, setIsShowingMore] = useState(false) const [isShowingMore, setIsShowingMore] = useState(false)
return ( return (
<div className="col-12 col-lg-4 mb-6 height-full"> <div className="col-12 col-lg-4 mb-6 height-full">
<h4 className="mb-3"> <h4 className="mb-3">
<Link href={page.href}>{page.page.title}</Link> <Link href={treeNode.href}>{treeNode.renderedFullTitle}</Link>
</h4> </h4>
<ul className="list-style-none"> <ul className="list-style-none">
{page.childPages.map((grandchildPage, index) => { {treeNode.childPages.map((childNode, index) => {
if (page.childPages[0].page.documentType === 'mapTopic' && grandchildPage.page.hidden) { if (treeNode.childPages[0].page.documentType === 'mapTopic' && childNode.page.hidden) {
return null return null
} }
return ( return (
<li <li
key={grandchildPage.href + index} key={childNode.href + index}
className={cx('mb-3', !isShowingMore && index >= maxArticles ? 'd-none' : null)} className={cx('mb-3', !isShowingMore && index >= maxArticles ? 'd-none' : null)}
> >
<Link href={grandchildPage.href}>{grandchildPage.page.title}</Link> <Link href={childNode.href}>{childNode.page.title}</Link>
{grandchildPage.page.documentType === 'mapTopic' ? ( {childNode.page.documentType === 'mapTopic' ? (
<small className="color-text-secondary d-inline-block"> <small className="color-text-secondary d-inline-block">
&nbsp;&bull; {page.childPages.length} articles &nbsp;&bull; {treeNode.childPages.length} articles
</small> </small>
) : null} ) : null}
</li> </li>
) )
})} })}
</ul> </ul>
{!isShowingMore && page.childPages.length > maxArticles && ( {!isShowingMore && treeNode.childPages.length > maxArticles && (
<button onClick={() => setIsShowingMore(true)} className="btn-link Link--secondary"> <button onClick={() => setIsShowingMore(true)} className="btn-link Link--secondary">
Show {page.childPages.length - maxArticles} more{' '} Show {treeNode.childPages.length - maxArticles} more{' '}
<ChevronUpIcon className="v-align-text-bottom" /> <ChevronUpIcon className="v-align-text-bottom" />
</button> </button>
)} )}

View File

@@ -4,7 +4,7 @@ import { useDetails, Details } from '@primer/components'
import { ChevronDownIcon } from '@primer/octicons-react' import { ChevronDownIcon } from '@primer/octicons-react'
import { Link } from 'components/Link' import { Link } from 'components/Link'
import { CurrentProductTree, useMainContext } from 'components/context/MainContext' import { ProductTreeNode, useMainContext } from 'components/context/MainContext'
import { AllProductsLink } from 'components/product/AllProductsLink' import { AllProductsLink } from 'components/product/AllProductsLink'
export const SidebarProduct = () => { export const SidebarProduct = () => {
@@ -82,7 +82,7 @@ export const SidebarProduct = () => {
type SectionProps = { type SectionProps = {
routePath: string routePath: string
page: CurrentProductTree page: ProductTreeNode
title: string title: string
defaultOpen: boolean defaultOpen: boolean
} }

View File

@@ -0,0 +1,34 @@
import { ArticleGuide } from 'components/context/ProductSubLandingContext'
type Props = {
card: ArticleGuide
type: string
display?: string
}
export const ArticleCard = ({ card, type, display }: Props) => {
return (
<div
className={`d-flex col-12 col-md-4 pr-0 pr-md-6 pr-lg-8 ${display} js-filter-card`}
data-type={card.type}
data-topics={card.topics.join(',')}
>
<a className="no-underline d-flex flex-column py-3 border-bottom" href={card.href}>
<h4 className="h4 color-text-primary mb-1">{card.title}</h4>
<div className="h6 text-uppercase">{type}</div>
<p className="color-text-secondary my-3">{card.intro}</p>
{card.topics.length > 0 && (
<div>
{card.topics.map((topic) => {
return (
<span key={topic} className="IssueLabel bg-gradient--pink-blue color-text-inverse mr-1">
{topic}
</span>
)
})}
</div>
)}
</a>
</div>
)
}

View File

@@ -0,0 +1,67 @@
import { useProductSubLandingContext } from 'components/context/ProductSubLandingContext'
import { useTranslation } from 'components/hooks/useTranslation'
import { ArticleCard } from './ArticleCard'
const MAX_ARTICLES = 9
export const ArticleCards = () => {
const { t } = useTranslation('product_sublanding')
const guideTypes: Record<string, string> = t('guide_types')
const { allTopics, includeGuides } = useProductSubLandingContext()
return (
<div>
<form className="mt-2 mb-5 d-flex d-flex">
<div>
<label htmlFor="type" className="text-uppercase f6 color-text-secondary d-block">
{t('filters.type')}
</label>
<select
className="form-select js-filter-card-filter-dropdown f4 text-bold border-0 rounded-0 border-top box-shadow-none pl-0 js-filter-card-filter-dropdown"
name="type"
aria-label="guide types"
>
<option value="">{t('filters.all')}</option>
{Object.entries(guideTypes).map(([key, val]) => {
return <option key={key} value={key}>{val}</option>
})}
</select>
</div>
<div className="mx-4">
<label htmlFor="topic" className="text-uppercase f6 color-text-secondary d-block">
{t('filters.topic')}
</label>
<select
className="form-select js-filter-card-filter-dropdown f4 text-bold border-0 rounded-0 border-top box-shadow-none pl-0 js-filter-card-filter-dropdown"
name="topics"
aria-label="guide topics"
>
<option value="">{t('filters.all')}</option>
{allTopics?.map((topic) => {
return <option key={topic} value={topic}>{topic}</option>
})}
</select>
</div>
</form>
<div className="d-flex flex-wrap mr-0 mr-md-n6 mr-lg-n8">
{(includeGuides || []).map((card, index) => {
return index + 1 > MAX_ARTICLES ? (
<ArticleCard key={card.title} card={card} type={guideTypes[card.type]} display={'d-none'} />
) : (
<ArticleCard key={card.title} card={card} type={guideTypes[card.type]} />
)
})}
</div>
{includeGuides && includeGuides.length > MAX_ARTICLES && (
<button
className="col-12 mt-5 text-center text-bold color-text-link btn-link js-filter-card-show-more"
data-js-filter-card-max={MAX_ARTICLES}
>
{t('load_more')}
</button>
)}
<div className="js-filter-card-no-results d-none py-4 text-center color-text-secondary">
<h4 className="text-normal">{t('no_result')}</h4>
</div>
</div>
)
}

View File

@@ -0,0 +1,80 @@
import { useTranslation } from 'components/hooks/useTranslation'
import { ArrowRightIcon } from '@primer/octicons-react'
import { useState } from 'react'
import { FeaturedTrack } from 'components/context/ProductSubLandingContext'
type Props = {
track: FeaturedTrack
}
const MAX_VISIBLE_GUIDES = 4
export const LearningTrack = ({ track }: Props) => {
const [visibleGuides, setVisibleGuides] = useState(track.guides?.slice(0, 4))
const showAll = () => {
setVisibleGuides(track.guides)
}
const { t } = useTranslation('product_sublanding')
return (
<div className="my-3 px-4 col-12 col-md-6 learning-track">
<div className="Box js-show-more-container d-flex flex-column">
<div className="Box-header bg-gradient--blue-pink p-4 d-flex flex-1 flex-items-start flex-wrap">
<div className="d-flex flex-auto flex-items-start col-8 col-md-12 col-xl-8">
<div className="my-xl-0 mr-xl-3">
<h5 className="mb-3 color-text-inverse font-mktg h3-mktg ">{track.title}</h5>
<p className="color-text-inverse truncate-overflow-3 learning-track--description">
{track.description}
</p>
</div>
</div>
<a
className="d-inline-block border color-border-inverse color-text-inverse px-3 py-2 f5 no-underline text-bold no-wrap mt-3 mt-md-0"
role="button"
href={`${track.guides && track.guides[0].href}?learn=${track.trackName}`}
>
{t('start')}
<span className="mr-2">
<ArrowRightIcon size={20} />
</span>
</a>
</div>
{visibleGuides?.map((guide) => (
<div>
<a
className="Box-row d-flex flex-items-center color-text-primary no-underline js-show-more-item"
href={`${guide.href}?learn=${track.trackName}`}
>
<div className="circle color-bg-tertiary d-inline-flex mr-4">
{track.guides && (
<span className="m-2 f3 lh-condensed-ultra text-center text-bold step-circle-text">
{track.guides?.indexOf(guide) + 1}
</span>
)}
</div>
<h5 className="flex-auto pr-2">{guide.title}</h5>
<div className="color-text-tertiary h6 text-uppercase">
{t('guide_types')[guide.page.type]}
</div>
</a>
{track.guides && track.guides?.indexOf(guide) + 1 === MAX_VISIBLE_GUIDES ? (
<button
className="Box-footer btn-link border-top-0 position-relative text-center text-bold color-text-link pt-1 pb-3 col-12 js-show-more-button"
onClick={showAll}
>
<div
className="position-absolute left-0 right-0 py-5 fade-background-bottom"
style={{ bottom: '50px' }}
></div>
<span>
Show {track.guides?.length - MAX_VISIBLE_GUIDES} {t(`more_guides`)}
</span>
</button>
) : (
<div />
)}
</div>
))}
</div>
</div>
)
}

View File

@@ -0,0 +1,16 @@
import { useProductSubLandingContext } from 'components/context/ProductSubLandingContext'
import { LearningTrack } from 'components/sublanding/LearningTrack'
export const LearningTracks = () => {
const { learningTracks } = useProductSubLandingContext()
return (
<div>
<div className="d-flex flex-wrap flex-items-start my-5 gutter">
{(learningTracks || []).map((track) => {
return <LearningTrack key={track.title} track={track} />
})}
</div>
</div>
)
}

View File

@@ -0,0 +1,40 @@
import { DefaultLayout } from 'components/DefaultLayout'
import { useProductSubLandingContext } from 'components/context/ProductSubLandingContext'
import React from 'react'
import { LandingSection } from 'components/landing/LandingSection'
import { SubLandingHero } from 'components/sublanding/SubLandingHero'
import { LearningTracks } from 'components/sublanding/LearningTracks'
import { ArticleCards } from 'components/sublanding/ArticleCards'
export const ProductSubLanding = () => {
const { title, learningTracks, includeGuides } = useProductSubLandingContext()
return (
<DefaultLayout>
<LandingSection className="pt-3">
<SubLandingHero />
</LandingSection>
{learningTracks && learningTracks.length > 0 && (
<LandingSection
title={`${title} learning paths`}
className="border-top py-6"
sectionLink="learning-paths"
description="learning_paths_desc"
>
<LearningTracks />
</LandingSection>
)}
{includeGuides && (
<LandingSection
title={`All ${title} guides`}
className="border-top py-6 color-border-primary"
sectionLink="all-guides"
>
<ArticleCards />
</LandingSection>
)}
</DefaultLayout>
)
}

View File

@@ -0,0 +1,88 @@
import { Breadcrumbs } from '../Breadcrumbs'
import { useProductSubLandingContext } from 'components/context/ProductSubLandingContext'
import { ArrowRightIcon, StarFillIcon } from '@primer/octicons-react'
import { useTranslation } from 'components/hooks/useTranslation'
export const SubLandingHero = () => {
const { title, intro, featuredTrack } = useProductSubLandingContext()
const { t } = useTranslation('product_sublanding')
const guideItems = featuredTrack?.guides?.map((guide) => (
<li className="px-2 d-flex flex-shrink-0">
<a
href={`${guide.href}?learn=${featuredTrack.trackName}`}
className="d-inline-block Box p-5 color-bg-primary color-border-primary no-underline"
>
<div className="d-flex flex-justify-between flex-items-center">
<div className="circle color-bg-primary color-text-link border-gradient--pink-blue-dark d-inline-flex">
{featuredTrack.guides && (
<span
className="m-2 f2 lh-condensed-ultra text-center text-bold step-circle-text"
style={{ width: '24px', height: '24px' }}
>
{featuredTrack.guides?.indexOf(guide) + 1}
</span>
)}
</div>
<div className="color-text-tertiary h6 text-uppercase">
{t('guide_types')[guide.page.type]}
</div>
</div>
<h3 className="font-mktg h3-mktg my-4 color-text-primary">{guide.title}</h3>
<div className="lead-mktg color-text-secondary f5 my-4 truncate-overflow-8">
{guide.intro}
</div>
</a>
</li>
))
return (
<div>
<header className="d-flex gutter mb-6">
<div className="col-12">
<Breadcrumbs />
<h1 className="my-3 font-mktg">{title} guides</h1>
<div
className="lead-mktg color-text-secondary f4 description-text"
dangerouslySetInnerHTML={{ __html: intro }}
/>
</div>
</header>
{featuredTrack && (
<div className="mb-6 position-relative overflow-hidden mr-n3 ml-n3 px-3">
<ul className="list-style-none d-flex flex-nowrap overflow-x-scroll px-2 feature-track">
<li className="px-2 d-flex flex-shrink-0">
<div className="d-inline-block Box p-5 bg-gradient--blue-pink color-text-inverse">
<div
className="circle color-text-inverse d-inline-flex"
style={{ border: '2px white solid' }}
>
<StarFillIcon className="v-align-middle m-2" size={24} />
</div>
<h3 className="font-mktg h3-mktg my-4">{featuredTrack.title}</h3>
<div className="lead-mktg color-text-inverse f5 my-4">
{featuredTrack.description}
</div>
{featuredTrack.guides && (
<a
className="d-inline-block border color-border-inverse color-text-inverse px-4 py-2 f5 no-underline text-bold"
role="button"
href={`${featuredTrack.guides[0].href}?learn=${featuredTrack.trackName}`}
>
<span className="mr-2">
<ArrowRightIcon size={20} />
</span>
{t(`start_path`)}
</a>
)}
</div>
</li>
{guideItems}
</ul>
<div className="position-absolute top-0 bottom-0 left-0 ml-3 pl-3 fade-background-left"></div>
<div className="position-absolute top-0 bottom-0 right-0 mr-3 pr-3 fade-background-right"></div>
</div>
)}
</div>
)
}

View File

@@ -121,7 +121,7 @@ You can use these steps to create and share a support bundle if you have SSH acc
You can directly upload a support bundle to our server if: You can directly upload a support bundle to our server if:
- You have SSH access to {% data variables.product.product_location %}. - You have SSH access to {% data variables.product.product_location %}.
- Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.product.product_location %}. - Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.product.product_location %} to _enterprise-bundles.github.com_ and _esbtoolsproduction.blob.core.windows.net_.
1. Upload the bundle to our support bundle server: 1. Upload the bundle to our support bundle server:
```shell ```shell
@@ -149,7 +149,7 @@ You can use these steps to create and share an extended support bundle if you ha
You can directly upload a support bundle to our server if: You can directly upload a support bundle to our server if:
- You have SSH access to {% data variables.product.product_location %}. - You have SSH access to {% data variables.product.product_location %}.
- Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.product.product_location %}. - Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.product.product_location %} to _enterprise-bundles.github.com_ and _esbtoolsproduction.blob.core.windows.net_.
1. Upload the bundle to our support bundle server: 1. Upload the bundle to our support bundle server:
```shell ```shell

View File

@@ -52,7 +52,7 @@ You need write permission to view a summary of all the alerts for a repository o
{% data reusables.repositories.sidebar-security %} {% data reusables.repositories.sidebar-security %}
{% data reusables.repositories.sidebar-code-scanning-alerts %} {% data reusables.repositories.sidebar-code-scanning-alerts %}
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1"%} {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1"%}
1. Optionally, use{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.2" %} the free text search box or{% endif %} the drop-down menus to filter alerts. For example, you can filter by the tool that was used to identify alerts. 1. Optionally, use{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" %} the free text search box or{% endif %} the drop-down menus to filter alerts. For example, you can filter by the tool that was used to identify alerts.
![Filter by tool](/assets/images/help/repository/code-scanning-filter-by-tool.png){% endif %} ![Filter by tool](/assets/images/help/repository/code-scanning-filter-by-tool.png){% endif %}
1. Under "{% data variables.product.prodname_code_scanning_capc %}," click the alert you'd like to explore. 1. Under "{% data variables.product.prodname_code_scanning_capc %}," click the alert you'd like to explore.
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1"%} {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1"%}
@@ -65,7 +65,7 @@ You need write permission to view a summary of all the alerts for a repository o
1. Alerts from {% data variables.product.prodname_codeql %} analysis include a description of the problem. Click **Show more** for guidance on how to fix your code. 1. Alerts from {% data variables.product.prodname_codeql %} analysis include a description of the problem. Click **Show more** for guidance on how to fix your code.
![Details for an alert](/assets/images/help/repository/code-scanning-alert-details.png) ![Details for an alert](/assets/images/help/repository/code-scanning-alert-details.png)
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.2" %} {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" %}
### Searching {% data variables.product.prodname_code_scanning %} alerts ### Searching {% data variables.product.prodname_code_scanning %} alerts
You can search the list of alerts. This is useful if there is a large number of alerts in your repository, or if you don't know the exact name for an alert for example. {% data variables.product.product_name %} performs the free text search across: You can search the list of alerts. This is useful if there is a large number of alerts in your repository, or if you don't know the exact name for an alert for example. {% data variables.product.product_name %} performs the free text search across:
@@ -106,7 +106,7 @@ Anyone with write permission for a repository can fix an alert by committing a c
If you have write permission for a repository, you can view fixed alerts by viewing the summary of alerts and clicking **Closed**. For more information, see "[Viewing the alerts for a repository](#viewing-the-alerts-for-a-repository)." The "Closed" list shows fixed alerts and alerts that users have dismissed. If you have write permission for a repository, you can view fixed alerts by viewing the summary of alerts and clicking **Closed**. For more information, see "[Viewing the alerts for a repository](#viewing-the-alerts-for-a-repository)." The "Closed" list shows fixed alerts and alerts that users have dismissed.
You can use{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.2" %} the free text search or{% endif %} the filters to display a subset of alerts and then in turn mark all matching alerts as closed. You can use{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" %} the free text search or{% endif %} the filters to display a subset of alerts and then in turn mark all matching alerts as closed.
Alerts may be fixed in one branch but not in another. You can use the "Branch" drop-down menu, on the summary of alerts, to check whether an alert is fixed in a particular branch. Alerts may be fixed in one branch but not in another. You can use the "Branch" drop-down menu, on the summary of alerts, to check whether an alert is fixed in a particular branch.
@@ -146,7 +146,7 @@ To dismiss or delete alerts:
![Deleting alerts](/assets/images/help/repository/code-scanning-delete-alerts.png) ![Deleting alerts](/assets/images/help/repository/code-scanning-delete-alerts.png)
Optionally, you can use{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.2" %} the free text search or{% endif %} the filters to display a subset of alerts and then delete all matching alerts at once. For example, if you have removed a query from {% data variables.product.prodname_codeql %} analysis, you can use the "Rule" filter to list just the alerts for that query and then select and delete all of those alerts. Optionally, you can use{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" %} the free text search or{% endif %} the filters to display a subset of alerts and then delete all matching alerts at once. For example, if you have removed a query from {% data variables.product.prodname_codeql %} analysis, you can use the "Rule" filter to list just the alerts for that query and then select and delete all of those alerts.
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1"%} {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1"%}
![Filter alerts by rule](/assets/images/help/repository/code-scanning-filter-by-rule.png) ![Filter alerts by rule](/assets/images/help/repository/code-scanning-filter-by-rule.png)

View File

@@ -40,7 +40,7 @@ By default, the restrictions of a branch protection rule don't apply to people w
For each branch protection rule, you can choose to enable or disable the following settings. For each branch protection rule, you can choose to enable or disable the following settings.
- [Require pull request reviews before merging](#require-pull-request-reviews-before-merging) - [Require pull request reviews before merging](#require-pull-request-reviews-before-merging)
- [Require status checks before merging](#require-status-checks-before-merging) - [Require status checks before merging](#require-status-checks-before-merging)
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" %} {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" or currentVersion == "github-ae@issue-4382" %}
- [Require conversation resolution before merging](#require-conversation-resolution-before-merging){% endif %} - [Require conversation resolution before merging](#require-conversation-resolution-before-merging){% endif %}
- [Require signed commits](#require-signed-commits) - [Require signed commits](#require-signed-commits)
- [Require linear history](#require-linear-history) - [Require linear history](#require-linear-history)
@@ -98,7 +98,7 @@ You can set up required status checks to either be "loose" or "strict." The type
For troubleshooting information, see "[Troubleshooting required status checks](/github/administering-a-repository/troubleshooting-required-status-checks)." For troubleshooting information, see "[Troubleshooting required status checks](/github/administering-a-repository/troubleshooting-required-status-checks)."
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" %} {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" or currentVersion == "github-ae@issue-4382" %}
#### Require conversation resolution before merging #### Require conversation resolution before merging
Requires all comments on the pull request to be resolved before it can be merged to a protected branch. This ensures that all comments are addressed or acknowledged before merge. Requires all comments on the pull request to be resolved before it can be merged to a protected branch. This ensures that all comments are addressed or acknowledged before merge.

View File

@@ -65,7 +65,7 @@ When you create a branch rule, the branch you specify doesn't have to exist yet
![Loose or strict required status checkbox](/assets/images/help/repository/protecting-branch-loose-status.png) ![Loose or strict required status checkbox](/assets/images/help/repository/protecting-branch-loose-status.png)
- From the list of available status checks, select the checks you want to require. - From the list of available status checks, select the checks you want to require.
![List of available status checks](/assets/images/help/repository/required-statuses-list.png) ![List of available status checks](/assets/images/help/repository/required-statuses-list.png)
{%- if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" %} {%- if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" or currentVersion == "github-ae@issue-4382" %}
1. Optionally, select **Require conversation resolution before merging**. 1. Optionally, select **Require conversation resolution before merging**.
![Require conversation resolution before merging option](/assets/images/help/repository/require-conversation-resolution.png) ![Require conversation resolution before merging option](/assets/images/help/repository/require-conversation-resolution.png)
{%- endif %} {%- endif %}

View File

@@ -208,6 +208,8 @@ In this example:
If the Markdown source's `versions` front matter includes GitHub AE and you want the content to display for GitHub AE, do not include any Liquid logic at all. Deployment of the site will automatically generate the HTML content for GitHub AE. If the Markdown source's `versions` front matter includes GitHub AE and you want the content to display for GitHub AE, do not include any Liquid logic at all. Deployment of the site will automatically generate the HTML content for GitHub AE.
You may notice version strings like <code>issue-<em>####</em></code> for content versioned for GitHub AE. The content with this versioning will not render on GitHub Docs, and these strings are internal references. These strings are only intended to be edited by GitHub staff.
#### Including content that *only applies to GitHub AE* #### Including content that *only applies to GitHub AE*
If your content only applies to GitHub AE, use this logic: If your content only applies to GitHub AE, use this logic:

View File

@@ -12,7 +12,7 @@ The entire conversation will be collapsed and marked as resolved, making it easi
If the suggestion in a comment is out of your pull request's scope, you can open a new issue that tracks the feedback and links back to the original comment. For more information, see "[Opening an issue from a comment](/github/managing-your-work-on-github/opening-an-issue-from-a-comment)." If the suggestion in a comment is out of your pull request's scope, you can open a new issue that tracks the feedback and links back to the original comment. For more information, see "[Opening an issue from a comment](/github/managing-your-work-on-github/opening-an-issue-from-a-comment)."
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" %} {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.1" or currentVersion == "github-ae@issue-4382" %}
#### Discovering and navigating conversations #### Discovering and navigating conversations
You can discover and navigate to all the conversations in your pull request using the **Conversations** menu that's shown at the top of the **Files Changed** tab. You can discover and navigate to all the conversations in your pull request using the **Conversations** menu that's shown at the top of the **Files Changed** tab.

View File

@@ -1,4 +1,5 @@
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import { preserveAnchorNodePosition } from 'scroll-anchoring'
import { sendEvent } from './events' import { sendEvent } from './events'
@@ -24,7 +25,9 @@ export default function displayToolSpecificContent () {
link.addEventListener('click', (event) => { link.addEventListener('click', (event) => {
event.preventDefault() event.preventDefault()
highlightTabForTool(event.target.dataset.tool) highlightTabForTool(event.target.dataset.tool)
preserveAnchorNodePosition(document, () => {
showToolSpecificContent(event.target.dataset.tool, toolElements) showToolSpecificContent(event.target.dataset.tool, toolElements)
})
// Save this preference as a cookie. // Save this preference as a cookie.
Cookies.set('toolPreferred', event.target.dataset.tool, { sameSite: 'strict', secure: true }) Cookies.set('toolPreferred', event.target.dataset.tool, { sameSite: 'strict', secure: true })

View File

@@ -109075,6 +109075,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -114337,6 +114341,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -202347,6 +202355,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [

View File

@@ -67302,6 +67302,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -72482,6 +72486,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -132284,6 +132292,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -250127,6 +250139,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [

View File

@@ -67938,6 +67938,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -73118,6 +73122,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -135366,6 +135374,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -253438,6 +253450,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [

View File

@@ -71061,6 +71061,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -76280,6 +76284,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -137636,6 +137644,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -256589,6 +256601,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [

View File

@@ -82464,6 +82464,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -87716,6 +87720,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -149558,6 +149566,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [

View File

@@ -94335,6 +94335,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -99597,6 +99601,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -180454,6 +180462,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [

View File

@@ -99052,6 +99052,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -104314,6 +104318,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -185849,6 +185857,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [

View File

@@ -99333,6 +99333,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -104595,6 +104599,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -188733,6 +188741,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [

View File

@@ -71996,6 +71996,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -77258,6 +77262,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [
@@ -157129,6 +157137,10 @@
"name", "name",
"html_url" "html_url"
] ]
},
"has_advanced_security": {
"type": "boolean",
"example": true
} }
}, },
"required": [ "required": [

11
package-lock.json generated
View File

@@ -72,6 +72,7 @@
"remark-rehype": "^5.0.0", "remark-rehype": "^5.0.0",
"revalidator": "^0.3.1", "revalidator": "^0.3.1",
"rss-parser": "^3.12.0", "rss-parser": "^3.12.0",
"scroll-anchoring": "^0.1.0",
"search-with-your-keyboard": "1.1.0", "search-with-your-keyboard": "1.1.0",
"semver": "^7.3.5", "semver": "^7.3.5",
"slash": "^3.0.0", "slash": "^3.0.0",
@@ -20733,6 +20734,11 @@
"uri-js": "^4.2.2" "uri-js": "^4.2.2"
} }
}, },
"node_modules/scroll-anchoring": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/scroll-anchoring/-/scroll-anchoring-0.1.0.tgz",
"integrity": "sha512-EZiDAh0HjMEvWK4uC57xk+ZZEAEUqfm325dGE/2h4QWXRuPcAe3kFD6FRoF/XVK3qUOw2iPHEy9lOTjG9O6mGA=="
},
"node_modules/search-with-your-keyboard": { "node_modules/search-with-your-keyboard": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/search-with-your-keyboard/-/search-with-your-keyboard-1.1.0.tgz", "resolved": "https://registry.npmjs.org/search-with-your-keyboard/-/search-with-your-keyboard-1.1.0.tgz",
@@ -42307,6 +42313,11 @@
} }
} }
}, },
"scroll-anchoring": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/scroll-anchoring/-/scroll-anchoring-0.1.0.tgz",
"integrity": "sha512-EZiDAh0HjMEvWK4uC57xk+ZZEAEUqfm325dGE/2h4QWXRuPcAe3kFD6FRoF/XVK3qUOw2iPHEy9lOTjG9O6mGA=="
},
"search-with-your-keyboard": { "search-with-your-keyboard": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/search-with-your-keyboard/-/search-with-your-keyboard-1.1.0.tgz", "resolved": "https://registry.npmjs.org/search-with-your-keyboard/-/search-with-your-keyboard-1.1.0.tgz",

View File

@@ -78,6 +78,7 @@
"remark-rehype": "^5.0.0", "remark-rehype": "^5.0.0",
"revalidator": "^0.3.1", "revalidator": "^0.3.1",
"rss-parser": "^3.12.0", "rss-parser": "^3.12.0",
"scroll-anchoring": "^0.1.0",
"search-with-your-keyboard": "1.1.0", "search-with-your-keyboard": "1.1.0",
"semver": "^7.3.5", "semver": "^7.3.5",
"slash": "^3.0.0", "slash": "^3.0.0",

View File

@@ -11,6 +11,11 @@ import {
ProductLandingContextT, ProductLandingContextT,
ProductLandingContext, ProductLandingContext,
} from 'components/context/ProductLandingContext' } from 'components/context/ProductLandingContext'
import {
getProductSubLandingContextFromRequest,
ProductSubLandingContextT,
ProductSubLandingContext,
} from 'components/context/ProductSubLandingContext'
import { import {
getArticleContextFromRequest, getArticleContextFromRequest,
@@ -20,6 +25,7 @@ import {
import { ArticlePage } from 'components/article/ArticlePage' import { ArticlePage } from 'components/article/ArticlePage'
import { ProductLanding } from 'components/landing/ProductLanding' import { ProductLanding } from 'components/landing/ProductLanding'
import { ProductSubLanding } from 'components/sublanding/ProductSubLanding'
import { TocLanding } from 'components/landing/TocLanding' import { TocLanding } from 'components/landing/TocLanding'
import { import {
getTocLandingContextFromRequest, getTocLandingContextFromRequest,
@@ -30,12 +36,14 @@ import {
type Props = { type Props = {
mainContext: MainContextT mainContext: MainContextT
productLandingContext: ProductLandingContextT productLandingContext: ProductLandingContextT
productSubLandingContext: ProductSubLandingContextT
tocLandingContext: TocLandingContextT tocLandingContext: TocLandingContextT
articleContext: ArticleContextT articleContext: ArticleContextT
} }
const GlobalPage = ({ const GlobalPage = ({
mainContext, mainContext,
productLandingContext, productLandingContext,
productSubLandingContext,
tocLandingContext, tocLandingContext,
articleContext, articleContext,
}: Props) => { }: Props) => {
@@ -49,7 +57,11 @@ const GlobalPage = ({
</ProductLandingContext.Provider> </ProductLandingContext.Provider>
) )
} else if (currentLayoutName === 'product-sublanding') { } else if (currentLayoutName === 'product-sublanding') {
content = <p>todo: product sub-landing</p> content = (
<ProductSubLandingContext.Provider value={productSubLandingContext}>
<ProductSubLanding />
</ProductSubLandingContext.Provider>
)
} else if (relativePath?.endsWith('index.md')) { } else if (relativePath?.endsWith('index.md')) {
content = ( content = (
<TocLandingContext.Provider value={tocLandingContext}> <TocLandingContext.Provider value={tocLandingContext}>
@@ -76,6 +88,7 @@ export const getServerSideProps: GetServerSideProps<Props> = async (context) =>
props: { props: {
mainContext: getMainContextFromRequest(req), mainContext: getMainContextFromRequest(req),
productLandingContext: getProductLandingContextFromRequest(req), productLandingContext: getProductLandingContextFromRequest(req),
productSubLandingContext: getProductSubLandingContextFromRequest(req),
tocLandingContext: getTocLandingContextFromRequest(req), tocLandingContext: getTocLandingContextFromRequest(req),
articleContext: getArticleContextFromRequest(req), articleContext: getArticleContextFromRequest(req),
}, },

View File

@@ -21,6 +21,8 @@ In this guide, you'll learn about the basic components needed to create and use
Once you complete this project, you should understand how to build your own composite run steps action and test it in a workflow. Once you complete this project, you should understand how to build your own composite run steps action and test it in a workflow.
{% data reusables.github-actions.context-injection-warning %}
### Vorrausetzungen ### Vorrausetzungen
Before you begin, you'll create a {% data variables.product.product_name %} repository. Before you begin, you'll create a {% data variables.product.product_name %} repository.

View File

@@ -29,6 +29,8 @@ Nach dem Abschluss dieses Projekts wirst Du verstehen, wie Du Deine eigene Docke
{% data reusables.github-actions.self-hosted-runner-reqs-docker %} {% data reusables.github-actions.self-hosted-runner-reqs-docker %}
{% data reusables.github-actions.context-injection-warning %}
### Vorrausetzungen ### Vorrausetzungen
Es wir Dir vielleicht helfen, {% data variables.product.prodname_actions %} Umgebungsvariablen und das Docker-Container-Dateisystem grundlegend zu verstehen: Es wir Dir vielleicht helfen, {% data variables.product.prodname_actions %} Umgebungsvariablen und das Docker-Container-Dateisystem grundlegend zu verstehen:

View File

@@ -31,15 +31,17 @@ Nach dem Abschluss dieses Projekts solltest Du verstehen, wie Du Deine eigene Ja
{% data reusables.github-actions.pure-javascript %} {% data reusables.github-actions.pure-javascript %}
{% data reusables.github-actions.context-injection-warning %}
### Vorrausetzungen ### Vorrausetzungen
Als Erstes musst Du die Anwendung Node.js herunterladen und ein GitHub-Repository erstellen. Before you begin, you'll need to download Node.js and create a public {% data variables.product.prodname_dotcom %} repository.
1. Lade die Anwendung Node.js 12.x, welche npm enthält, herunter, und installiere sie. 1. Lade die Anwendung Node.js 12.x, welche npm enthält, herunter, und installiere sie.
https://nodejs.org/de/download/current/ https://nodejs.org/de/download/current/
1. Erstellen Sie ein neues Repository auf {% data variables.product.product_location %}. Du kannst einen beliebigen Repository-Namen auswählen oder wie in diesem Beispiel „hello-world-javascript-action“ verwenden. Du kannst diese Dateien hinzufügen, nachdem Dein Projekt per Push an {% data variables.product.product_name %} übergeben wurde. Weitere Informationen finden Sie unter „[Neues Repository erstellen](/articles/creating-a-new-repository)“. 1. Create a new public repository on {% data variables.product.product_location %} and call it "hello-world-javascript-action". Weitere Informationen finden Sie unter „[Neues Repository erstellen](/articles/creating-a-new-repository)“.
1. Clone Dein Repository auf Deinen Computer. Weitere Informationen findest Du unter „[Ein Repository clonen](/articles/cloning-a-repository)“. 1. Clone Dein Repository auf Deinen Computer. Weitere Informationen findest Du unter „[Ein Repository clonen](/articles/cloning-a-repository)“.
@@ -49,7 +51,7 @@ Als Erstes musst Du die Anwendung Node.js herunterladen und ein GitHub-Repositor
cd hello-world-javascript-action cd hello-world-javascript-action
``` ```
1. Initialisiere in Deinem Terminal das Verzeichnis mit der Datei `package.json`. 1. From your terminal, initialize the directory with npm to generate a `package.json` file.
```shell ```shell
npm init -y npm init -y
@@ -57,10 +59,8 @@ Als Erstes musst Du die Anwendung Node.js herunterladen und ein GitHub-Repositor
### Eine Datei für die Metadaten der Aktion erstellen ### Eine Datei für die Metadaten der Aktion erstellen
Erstellen Sie eine neue Datei `action.yml` im Verzeichnis `hello-world-javascript-action` mit dem folgenden Beispielcode: Weitere Informationen findest Du unter „[Metadaten-Syntax für {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions)“. Create a new file named `action.yml` in the `hello-world-javascript-action` directory with the following example code. Weitere Informationen findest Du unter „[Metadaten-Syntax für {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions)“.
**action.yml**
```yaml ```yaml
name: 'Hello World' name: 'Hello World'
description: 'Greet someone and record the time' description: 'Greet someone and record the time'
@@ -106,7 +106,7 @@ GitHub Actions stellt Kontextinformationen zum Webhook-Ereignis, zu den Git-Refs
Füge eine neue Datei mit der Bezeichnung `index.js` mit dem folgenden Code hinzu. Füge eine neue Datei mit der Bezeichnung `index.js` mit dem folgenden Code hinzu.
**index.js** {% raw %}
```javascript ```javascript
const core = require('@actions/core'); const core = require('@actions/core');
const github = require('@actions/github'); const github = require('@actions/github');
@@ -124,6 +124,7 @@ try {
core.setFailed(error.message); core.setFailed(error.message);
} }
``` ```
{% endraw %}
Wenn im o. g. `index.js`-Beispiel ein Fehler ausgegeben wird, nutzt `core.setFailed(error.message);` das Aktions-Toolkit-Paket [`@actions/core`](https://github.com/actions/toolkit/tree/main/packages/core), um eine Meldung zu protokollieren und einen Fehler-Exit-Code festzulegen. Weitere Informationen findest Du unter "[Exit Codes für Aktionen setzen](/actions/creating-actions/setting-exit-codes-for-actions)." Wenn im o. g. `index.js`-Beispiel ein Fehler ausgegeben wird, nutzt `core.setFailed(error.message);` das Aktions-Toolkit-Paket [`@actions/core`](https://github.com/actions/toolkit/tree/main/packages/core), um eine Meldung zu protokollieren und einen Fehler-Exit-Code festzulegen. Weitere Informationen findest Du unter "[Exit Codes für Aktionen setzen](/actions/creating-actions/setting-exit-codes-for-actions)."
@@ -141,7 +142,6 @@ Erstelle in Deinem Verzeichnis `hello-world-javascript-action` eine Datei `READM
- Umgebungsvariablen, die in der Aktion benutzt werden. - Umgebungsvariablen, die in der Aktion benutzt werden.
- Ein Beispiel für die Verwendung Deiner Aktion in einem Workflow. - Ein Beispiel für die Verwendung Deiner Aktion in einem Workflow.
**README.md**
```markdown ```markdown
# JavaScript-Aktion „Hello world“ # JavaScript-Aktion „Hello world“
@@ -177,8 +177,8 @@ Es hat sich bewährt, auch ein Versions-Tag für Releases Deiner Aktion hinzuzuf
```shell ```shell
git add action.yml index.js node_modules/* package.json package-lock.json README.md git add action.yml index.js node_modules/* package.json package-lock.json README.md
git commit -m "Meine erste Aktion ist fertig" git commit -m "My first action is ready"
git tag -a -m "Mein erstes Aktions-Release" v1 git tag -a -m "My first action release" v1.1
git push --follow-tags git push --follow-tags
``` ```
@@ -198,7 +198,7 @@ Checking in your `node_modules` directory can cause problems. As an alternative,
```shell ```shell
git add action.yml dist/index.js node_modules/* git add action.yml dist/index.js node_modules/*
git commit -m "Use vercel/ncc" git commit -m "Use vercel/ncc"
git tag -a -m "My first action release" v1 git tag -a -m "My first action release" v1.1
git push --follow-tags git push --follow-tags
``` ```
@@ -210,10 +210,11 @@ Nun sind Sie bereit, Ihre Aktion in einem Workflow zu testen. Wenn eine Aktion i
#### Beispiel mit einer öffentlichen Aktion #### Beispiel mit einer öffentlichen Aktion
Der folgende Workflow-Code verwendet die vervollständigte Aktion „hello world“ im Repository `actions/hello-world-javascript-action`. Kopieren Sie den Workflow-Code in die Datei `.github/workflows/main.yml`. Ersetzen Sie jedoch das Repository `actions/hello-world-javascript-action` durch das von Ihnen erstellte Repository. Darüber hinaus können Sie die Eingabe `who-to-greet` durch Ihren Namen ersetzen. This example demonstrates how your new public action can be run from within an external repository.
Copy the following YAML into a new file at `.github/workflows/main.yml`, and update the `uses: octocat/hello-world-javascript-action@v1.1` line with your username and the name of the public repository you created above. Darüber hinaus können Sie die Eingabe `who-to-greet` durch Ihren Namen ersetzen.
{% raw %} {% raw %}
**.github/workflows/main.yml**
```yaml ```yaml
on: [push] on: [push]
@@ -224,7 +225,7 @@ jobs:
steps: steps:
- name: Hello world action step - name: Hello world action step
id: hello id: hello
uses: actions/hello-world-javascript-action@v1.1 uses: octocat/hello-world-javascript-action@v1.1
with: with:
who-to-greet: 'Mona the Octocat' who-to-greet: 'Mona the Octocat'
# Use the output from the `hello` step # Use the output from the `hello` step
@@ -233,6 +234,8 @@ jobs:
``` ```
{% endraw %} {% endraw %}
When this workflow is triggered, the runner will download the `hello-world-javascript-action` action from your public repository and then execute it.
#### Beispiel mit einer privaten Aktion #### Beispiel mit einer privaten Aktion
Kopieren Sie den Workflow-Code im Repository Ihrer Aktion in eine `.github/workflows/main.yml`-Datei. Darüber hinaus können Sie die Eingabe `who-to-greet` durch Ihren Namen ersetzen. Kopieren Sie den Workflow-Code im Repository Ihrer Aktion in eine `.github/workflows/main.yml`-Datei. Darüber hinaus können Sie die Eingabe `who-to-greet` durch Ihren Namen ersetzen.

View File

@@ -21,6 +21,7 @@ children:
- /setting-exit-codes-for-actions - /setting-exit-codes-for-actions
- /publishing-actions-in-github-marketplace - /publishing-actions-in-github-marketplace
--- ---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.ae-beta %} {% data reusables.actions.ae-beta %}

View File

@@ -24,10 +24,10 @@ topics:
This guide shows you how to create a workflow that performs continuous integration (CI) for your Xamarin project. Der Workflow, den Du erstellst, zeigt Dir, wenn Commits zu einem Pull-Request zu Build- oder Testfehlern für deinen Standard-Zweig führen. Dieser Ansatz kann dazu beitragen, dass Dein Code immer brauchbar ist. This guide shows you how to create a workflow that performs continuous integration (CI) for your Xamarin project. Der Workflow, den Du erstellst, zeigt Dir, wenn Commits zu einem Pull-Request zu Build- oder Testfehlern für deinen Standard-Zweig führen. Dieser Ansatz kann dazu beitragen, dass Dein Code immer brauchbar ist.
{% data variables.product.prodname_actions %}-hosted macOS runner stores Xamarin SDK versions and the associated Mono versions as a set of symlinks to Xamarin SDK locations that are available by a single bundle symlink. For a full list of available Xamarin SDK versions and their corresponding bundles, see the runners documentation: For a full list of available Xamarin SDK versions on the {% data variables.product.prodname_actions %}-hosted macOS runners, see the documentation:
* [macOS 10.15](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md#xamarin-bundles) * [macOS 10.15](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md#xamarin-bundles)
* [macOS 11.0](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md#xamarin-bundles) * [macOS 11](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11-Readme.md#xamarin-bundles)
{% data reusables.github-actions.macos-runner-preview %} {% data reusables.github-actions.macos-runner-preview %}
@@ -41,7 +41,7 @@ We recommend that you have a basic understanding of Xamarin, .NET Core SDK, YAML
### Bulding Xamarin.iOS apps ### Bulding Xamarin.iOS apps
The example below demonstrates how to change the default Xamarin bundle and build a Xamarin.iOS application. The example below demonstrates how to change the default Xamarin SDK versions and build a Xamarin.iOS application.
{% raw %} {% raw %}
```yaml ```yaml
@@ -56,10 +56,9 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Select default Xamarin bundle to 6_12_6 - name: Set default Xamarin SDK versions
run: | run: |
XAMARIN_SDK=6_12_6 $VM_ASSETS/select-xamarin-sdk-v2.sh --mono=6.12 --ios=14.10
$VM_ASSETS/select-xamarin-sdk.sh $XAMARIN_SDK
- name: Set default Xcode 12.3 - name: Set default Xcode 12.3
run: | run: |
@@ -82,7 +81,7 @@ jobs:
### Bulding Xamarin.Android apps ### Bulding Xamarin.Android apps
The example below demonstrates how to change default the Xamarin bundle and build a Xamarin.Android application. The example below demonstrates how to change default Xamarin SDK versions and build a Xamarin.Android application.
{% raw %} {% raw %}
```yaml ```yaml
@@ -97,10 +96,9 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Select default Xamarin bundle to 6_12_6 - name: Set default Xamarin SDK versions
run: | run: |
XAMARIN_SDK=6_12_6 $VM_ASSETS/select-xamarin-sdk-v2.sh --mono=6.10 --android=10.2
$VM_ASSETS/select-xamarin-sdk.sh $XAMARIN_SDK
- name: Setup .NET Core SDK 5.0.x - name: Setup .NET Core SDK 5.0.x
uses: actions/setup-dotnet@v1 uses: actions/setup-dotnet@v1

View File

@@ -51,14 +51,17 @@ In dieser Anleitung wir werden die Docker-Aktion `build-push-action` verwenden,
{% data reusables.github-actions.release-trigger-workflow %} {% data reusables.github-actions.release-trigger-workflow %}
Im folgenden Beispiel-Workflow verwenden wir die Docker-Aktion `build-push-action`, um das Docker-Image zu bauen und, wenn der Build erfolgreich ist, das gebaute Image auf „Docker Hub“ zu übertragen. In the example workflow below, we use the Docker `login-action` and `build-push-action` actions to build the Docker image and, if the build succeeds, push the built image to Docker Hub.
Um zum „Docker Hub“ zu pushen, benötigst Du ein Benutzerkonto auf „Docker Hub“ und musst ein „Docker Hub“-Repository erstellt haben. For more information, see "[Pushing a Docker container image to Docker Hub](https://docs.docker.com/docker-hub/repos/#pushing-a-docker-container-image-to-docker-hub)" in the Docker documentation. Um zum „Docker Hub“ zu pushen, benötigst Du ein Benutzerkonto auf „Docker Hub“ und musst ein „Docker Hub“-Repository erstellt haben. For more information, see "[Pushing a Docker container image to Docker Hub](https://docs.docker.com/docker-hub/repos/#pushing-a-docker-container-image-to-docker-hub)" in the Docker documentation.
„Docker Hub“ benötigt für `build-push-action` die folgenden Optionen: The `login-action` options required for Docker Hub are:
* `username` und `password`: Dies ist Dein Benutzername und Passwort auf „Docker Hub“. We recommend storing your Docker Hub username and password as secrets so they aren't exposed in your workflow file. Weitere Informationen findest Du unter „[Verschlüsselte Geheimnisse erstellen und verwenden](/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)“. * `username` und `password`: Dies ist Dein Benutzername und Passwort auf „Docker Hub“. We recommend storing your Docker Hub username and password as secrets so they aren't exposed in your workflow file. Weitere Informationen findest Du unter „[Verschlüsselte Geheimnisse erstellen und verwenden](/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)“.
* `repository`: Dein „Docker Hub“-Repository im Format `DOCKER-HUB-NAMESPACE/DOCKER-HUB-REPOSITORY`.
„Docker Hub“ benötigt für `build-push-action` die folgenden Optionen:
* `tags`: The tag of your new image in the format `DOCKER-HUB-NAMESPACE/DOCKER-HUB-REPOSITORY:VERSION`. You can set a single tag as shown below, or specify multiple tags in a list.
* `push`: If set to `true`, the image will be pushed to the registry if it is built successfully.
{% raw %} {% raw %}
```yaml{:copy} ```yaml{:copy}
@@ -73,13 +76,16 @@ jobs:
steps: steps:
- name: Check out the repo - name: Check out the repo
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Push to Docker Hub - name: Log in to Docker Hub
uses: docker/build-push-action@v1 uses: docker/login-action@v1
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
repository: my-docker-hub-namespace/my-docker-hub-repository - name: Push to Docker Hub
tag_with_ref: true uses: docker/build-push-action@v2
with:
push: true
tags: my-docker-hub-namespace/my-docker-hub-repository:latest
``` ```
{% endraw %} {% endraw %}
@@ -89,14 +95,16 @@ jobs:
{% data reusables.github-actions.release-trigger-workflow %} {% data reusables.github-actions.release-trigger-workflow %}
Im folgenden Beispiel-Workflow verwenden wir die Docker-Aktion `build-push-action`, um das Docker-Image zu bauen und, wenn der Build erfolgreich ist, das gebaute Image nach {% data variables.product.prodname_registry %} zu übertragen. In the example workflow below, we use the Docker `login-action` and `build-push-action` actions to build the Docker image, and if the build succeeds, push the built image to {% data variables.product.prodname_registry %}.
Die für {% data variables.product.prodname_registry %} erforderlichen `build-push-action`-Optionen sind:
The `login-action` options required for {% data variables.product.prodname_registry %} are:
* `registry`: Muss auf `docker.pkg.github.com` gesetzt werden.
* `username`: Du kannst mithilfe des Kontexts von {% raw %}`${{ github.actor }}`{% endraw %} automatisch den Benutzernamen des Benutzers zu verwenden, der die Workflow-Ausführung angestoßen hat. Weitere Informationen findest Du unter „[Kontext- und Ausdrucks-Syntax für GitHub-Aktionen](/actions/reference/context-and-expression-syntax-for-github-actions#github-context)“. * `username`: Du kannst mithilfe des Kontexts von {% raw %}`${{ github.actor }}`{% endraw %} automatisch den Benutzernamen des Benutzers zu verwenden, der die Workflow-Ausführung angestoßen hat. Weitere Informationen findest Du unter „[Kontext- und Ausdrucks-Syntax für GitHub-Aktionen](/actions/reference/context-and-expression-syntax-for-github-actions#github-context)“.
* `password`: Du kannst das automatisch generierte Geheimnis `GITHUB_TOKEN` als Passwort verwenden. Weitere Informationen findest Du unter „[Authentifizierung mit dem GITHUB_TOKEN](/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token)". * `password`: Du kannst das automatisch generierte Geheimnis `GITHUB_TOKEN` als Passwort verwenden. Weitere Informationen findest Du unter „[Authentifizierung mit dem GITHUB_TOKEN](/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token)".
* `registry`: Muss auf `docker.pkg.github.com` gesetzt werden.
* `repository`: Muss im Format `OWNER/REPOSITORY/IMAGE_NAME` gesetzt werden. Beispiel: Für ein Bild namens `octo-image` auf {% data variables.product.prodname_dotcom %} unter `http://github. om/octo-org/octo-repo` sollte die Option `repository` auf `octo-org/octo-repo/octo-image` gesetzt werden. Die für {% data variables.product.prodname_registry %} erforderlichen `build-push-action`-Optionen sind:
* `tags`: Must be set in the format `docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION`. For example, for an image named `octo-image` stored on {% data variables.product.prodname_dotcom %} at `http://github.com/octo-org/octo-repo`, the `tags` option should be set to `docker.pkg.github.com/octo-org/octo-repo/octo-image:latest`. You can set a single tag as shown below, or specify multiple tags in a list.
* `push`: If set to `true`, the image will be pushed to the registry if it is built successfully.
```yaml{:copy} ```yaml{:copy}
name: Publish Docker image name: Publish Docker image
@@ -113,24 +121,28 @@ jobs:
steps: steps:
- name: Check out the repo - name: Check out the repo
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Push to GitHub Packages - name: Log in to GitHub Docker Registry
uses: docker/build-push-action@v1 uses: docker/login-action@v1
with: with:
registry: {% if currentVersion == "github-ae@latest" %}docker.YOUR-HOSTNAME.com{% else %}docker.pkg.github.com{% endif %}
username: {% raw %}${{ github.actor }}{% endraw %} username: {% raw %}${{ github.actor }}{% endraw %}
password: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %} password: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %}
registry: docker.pkg.github.com - name: Build container image
repository: my-org/my-repo/my-image uses: docker/build-push-action@v2
tag_with_ref: true with:
push: true
tags: |
{% if currentVersion == "github-ae@latest" %}docker.YOUR-HOSTNAME.com{% else %}docker.pkg.github.com{% endif %}{% raw %}/${{ github.repository }}/octo-image:${{ github.sha }}{% endraw %}
{% if currentVersion == "github-ae@latest" %}docker.YOUR-HOSTNAME.com{% else %}docker.pkg.github.com{% endif %}{% raw %}/${{ github.repository }}/octo-image:${{ github.ref }}{% endraw %}
``` ```
{% data reusables.github-actions.docker-tag-with-ref %} {% data reusables.github-actions.docker-tag-with-ref %}
### Images auf dem „Docker Hub“ und in der {% data variables.product.prodname_registry %} veröffentlichen ### Images auf dem „Docker Hub“ und in der {% data variables.product.prodname_registry %} veröffentlichen
In einem einzigen Workflow kannst Du Dein Docker-Image in mehreren Registries veröffentlichen, indem Du die Aktion `build-push-action` auf jede Registry anwendest. In a single workflow, you can publish your Docker image to multiple registries by using the `login-action` and `build-push-action` actions for each registry.
Der folgende Beispiel-Workflow verwendet die Schritte der `build-push-action` aus den vorherigen Abschnitten („[Veröffentlichung von Bildern auf Docker Hub](#publishing-images-to-docker-hub)“ und „[Veröffentlichung von Bildern in {% data variables.product.prodname_registry %}](#publishing-images-to-github-packages)“), um einen einzigen Workflow zu erstellen, der in beide Registries pusht. The following example workflow uses the steps from the previous sections ("[Publishing images to Docker Hub](#publishing-images-to-docker-hub)" and "[Publishing images to {% data variables.product.prodname_registry %}](#publishing-images-to-github-packages)") to create a single workflow that pushes to both registries.
```yaml{:copy} ```yaml{:copy}
name: Publish Docker image name: Publish Docker image
@@ -147,21 +159,27 @@ jobs:
steps: steps:
- name: Check out the repo - name: Check out the repo
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Push to Docker Hub - name: Log in to Docker Hub
uses: docker/build-push-action@v1 uses: docker/login-action@v1
with: with:
username: {% raw %}${{ secrets.DOCKER_USERNAME }}{% endraw %} username: {% raw %}${{ secrets.DOCKER_USERNAME }}{% endraw %}
password: {% raw %}${{ secrets.DOCKER_PASSWORD }}{% endraw %} password: {% raw %}${{ secrets.DOCKER_PASSWORD }}{% endraw %}
repository: my-docker-hub-namespace/my-docker-hub-repository - name: Log in to GitHub Docker Registry
tag_with_ref: true uses: docker/login-action@v1
- name: Push to GitHub Packages
uses: docker/build-push-action@v1
with: with:
registry: {% if currentVersion == "github-ae@latest" %}docker.YOUR-HOSTNAME.com{% else %}docker.pkg.github.com{% endif %}
username: {% raw %}${{ github.actor }}{% endraw %} username: {% raw %}${{ github.actor }}{% endraw %}
password: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %} password: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %}
registry: docker.pkg.github.com - name: Push to Docker Hub
repository: my-org/my-repo/my-image uses: docker/build-push-action@v2
tag_with_ref: true with:
push: true
tags: my-docker-hub-namespace/my-docker-hub-repository:{% raw %}${{ github.ref }}{% endraw %}
- name: Build container image
uses: docker/build-push-action@v2
with:
push: true
tags: {% if currentVersion == "github-ae@latest" %}docker.YOUR-HOSTNAME.com{% else %}docker.pkg.github.com{% endif %}{% raw %}/${{ github.repository }}/my-image:${{ github.ref }}{% endraw %}
``` ```
Der obige Workflow checkt das {% data variables.product.prodname_dotcom %}-Repository aus und verwendet die Aktion `build-push-action` zweimal, um das Docker-Image zu erstellen und sowohl auf den „Docker Hub als auch in die {% data variables.product.prodname_registry %} zu übertragen. Für beide Schritte, setzt er die Option `build-push-action` auf [`tag_with_ref`](https://github.com/marketplace/actions/build-and-push-docker-images#tag_with_ref) um das gebaute Docker-Image automatisch mit der Git-Referenz des Workflow-Ereignisses zu kennzeichnen. Dieser Workflow wird bei der Veröffentlichung eines {% data variables.product.prodname_dotcom %}-Releases ausgelöst, so dass die Referenz für beide Registries das Git-Tag des Releases ist. The above workflow checks out the {% data variables.product.prodname_dotcom %} repository, uses the `login-action` twice to log in to both registries, and then uses the `build-push-action` action twice to build and push the Docker image to Docker Hub and {% data variables.product.prodname_registry %}. For both steps, it tags the built Docker image with the Git reference of the workflow event. Dieser Workflow wird bei der Veröffentlichung eines {% data variables.product.prodname_dotcom %}-Releases ausgelöst, so dass die Referenz für beide Registries das Git-Tag des Releases ist.

View File

@@ -51,6 +51,11 @@ Du kannst ein neues Maven-Repository im Block `publishing` Deiner Datei _build.g
{% raw %} {% raw %}
```groovy{:copy} ```groovy{:copy}
plugins {
...
id 'maven-publish'
}
publishing { publishing {
... ...
@@ -114,6 +119,11 @@ Wenn beispielsweise Deine Organisation „octocat“ und Dein Repository „hell
{% raw %} {% raw %}
```groovy{:copy} ```groovy{:copy}
plugins {
...
id 'maven-publish'
}
publishing { publishing {
... ...
@@ -173,6 +183,11 @@ Wenn Deine Organisation „octocat“ und Dein Repository „hello-world“ hei
{% raw %} {% raw %}
```groovy{:copy} ```groovy{:copy}
plugins {
...
id 'maven-publish'
}
publishing { publishing {
... ...

View File

@@ -45,5 +45,5 @@ For more information, see "[Learn {% data variables.product.prodname_actions %}]
- „[Informationen zur kontinuierlichen Integration](/articles/about-continuous-integration)“ - „[Informationen zur kontinuierlichen Integration](/articles/about-continuous-integration)“
- „[Einen Workflow-Lauf verwalten](/articles/managing-a-workflow-run)“ - „[Einen Workflow-Lauf verwalten](/articles/managing-a-workflow-run)“
{% if currentVersion == "free-pro-team@latest" %} {% if currentVersion == "free-pro-team@latest" %}
- [Abrechnung für {{ site.data.variables.product.prodname_actions }} verwalten](/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions) - "[ Abrechnung für {% data variables.product.prodname_actions %} verwalten](/billing/managing-billing-for-github-actions)"
{% endif %} {% endif %}

View File

@@ -36,7 +36,7 @@ Dies sind einige der gängigen Artefakte, die du hochladen kannst:
{% if currentVersion == "free-pro-team@latest" %} {% if currentVersion == "free-pro-team@latest" %}
Das Speichern von Artefakten verwendet Speicherplatz auf {% data variables.product.product_name %}. {% data reusables.github-actions.actions-billing %} Weitere Informationen findest Du unter „[Abrechnung für {% data variables.product.prodname_actions %} verwalten](/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)“. Das Speichern von Artefakten verwendet Speicherplatz auf {% data variables.product.product_name %}. {% data reusables.github-actions.actions-billing %} Weitere Informationen findest Du unter „[Abrechnung für {% data variables.product.prodname_actions %} verwalten](/billing/managing-billing-for-github-actions)“.
{% else %} {% else %}
@@ -252,6 +252,6 @@ The workflow run will archive any artifacts that it generated. For more informat
### Weiterführende Informationen ### Weiterführende Informationen
- "[ Abrechnung für {% data variables.product.prodname_actions %} verwalten](/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". - "[ Abrechnung für {% data variables.product.prodname_actions %} verwalten](/billing/managing-billing-for-github-actions)".
{% endif %} {% endif %}

View File

@@ -65,6 +65,7 @@ There are some limits on {% data variables.product.prodname_actions %} usage whe
- **Job queue time** (Job-Warteschlangenzeit) - Jeder Auftrag für selbst-gehostete Läufer kann maximal 24 Stunden lang in die Warteschlange gestellt werden. Wenn ein selbst-gehosteter Läufer die Ausführung des Auftrags nicht innerhalb dieses Limits startet, wird der Auftrag beendet und kann nicht abgeschlossen werden. - **Job queue time** (Job-Warteschlangenzeit) - Jeder Auftrag für selbst-gehostete Läufer kann maximal 24 Stunden lang in die Warteschlange gestellt werden. Wenn ein selbst-gehosteter Läufer die Ausführung des Auftrags nicht innerhalb dieses Limits startet, wird der Auftrag beendet und kann nicht abgeschlossen werden.
{% data reusables.github-actions.usage-api-requests %} {% data reusables.github-actions.usage-api-requests %}
- **Auftrags-Matrix** - {% data reusables.github-actions.usage-matrix-limits %} - **Auftrags-Matrix** - {% data reusables.github-actions.usage-matrix-limits %}
{% data reusables.github-actions.usage-workflow-queue-limits %}
### Workflow continuity for self-hosted runners ### Workflow continuity for self-hosted runners
@@ -76,8 +77,8 @@ The following operating systems are supported for the self-hosted runner applica
#### Linux #### Linux
- Red Hat Enterprise Linux 7 - Red Hat Enterprise Linux 7 or later
- CentOS 7 - CentOS 7 or later
- Oracle Linux 7 - Oracle Linux 7
- Fedora 29 oder höher - Fedora 29 oder höher
- Debian 9 oder höher - Debian 9 oder höher

View File

@@ -36,8 +36,9 @@ Du kannst selbst-gehostete Runner zu einem einzigen Repository hinzufügen. To a
{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.sidebar-settings %}
{% data reusables.repositories.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners %}
1. Under "Self-hosted runners," click **Add runner**. 1. Under
{% if currentVersion == "free-pro-team@latest" %}"Runners"{% else %}"Self-hosted runners"{% endif %}, click **Add runner**.
{% data reusables.github-actions.self-hosted-runner-configure %} {% data reusables.github-actions.self-hosted-runner-configure %}
{% data reusables.github-actions.self-hosted-runner-check-installation-success %} {% data reusables.github-actions.self-hosted-runner-check-installation-success %}
@@ -47,8 +48,9 @@ Du kannst selbst-gehostete Runner auf Organisationsebene hinzufügen, wo sie ver
{% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.navigate-to-org %}
{% data reusables.organizations.org_settings %} {% data reusables.organizations.org_settings %}
{% data reusables.organizations.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners %}
1. Under "Self-hosted runners," click **Add new**, then click **New runner**. 1. Under
{% if currentVersion == "free-pro-team@latest" %}"Runners"{% else %}"Self-hosted runners"{% endif %}, click **Add runner**.
{% data reusables.github-actions.self-hosted-runner-configure %} {% data reusables.github-actions.self-hosted-runner-configure %}
{% data reusables.github-actions.self-hosted-runner-check-installation-success %} {% data reusables.github-actions.self-hosted-runner-check-installation-success %}
@@ -68,7 +70,7 @@ To add a self-hosted runner at the enterprise level of
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.policies-tab %}
{% data reusables.enterprise-accounts.actions-tab %} {% data reusables.enterprise-accounts.actions-tab %}
1. Click the **Self-hosted runners** tab. {% data reusables.enterprise-accounts.actions-runners-tab %}
1. Click **Add new**, then click **New runner**. New runners are assigned to the default group. You can modify the runner's group after you've registered the runner. For more information, see "[Managing access to self-hosted runners](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group)." 1. Click **Add new**, then click **New runner**. New runners are assigned to the default group. You can modify the runner's group after you've registered the runner. For more information, see "[Managing access to self-hosted runners](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group)."
{% data reusables.github-actions.self-hosted-runner-configure %} {% data reusables.github-actions.self-hosted-runner-configure %}
{% data reusables.github-actions.self-hosted-runner-check-installation-success %} {% data reusables.github-actions.self-hosted-runner-check-installation-success %}

View File

@@ -19,6 +19,7 @@ children:
- /monitoring-and-troubleshooting-self-hosted-runners - /monitoring-and-troubleshooting-self-hosted-runners
- /removing-self-hosted-runners - /removing-self-hosted-runners
--- ---
{% data reusables.actions.ae-self-hosted-runners-notice %} {% data reusables.actions.ae-self-hosted-runners-notice %}
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %} {% data reusables.actions.enterprise-github-hosted-runners %}

View File

@@ -41,8 +41,8 @@ When creating a group, you must choose a policy that defines which repositories
{% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.navigate-to-org %}
{% data reusables.organizations.org_settings %} {% data reusables.organizations.org_settings %}
{% data reusables.organizations.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners %}
1. In the **Self-hosted runners** section, click **Add new**, and then **New group**. 1. In the {% if currentVersion == "free-pro-team@latest" %}"Runners"{% else %}"Self-hosted runners"{% endif %} section, click **Add new**, and then **New group**.
![Add runner group](/assets/images/help/settings/actions-org-add-runner-group.png) ![Add runner group](/assets/images/help/settings/actions-org-add-runner-group.png)
1. Enter a name for your runner group, and assign a policy for repository access. 1. Enter a name for your runner group, and assign a policy for repository access.
@@ -73,7 +73,7 @@ When creating a group, you must choose a policy that defines which organizations
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.policies-tab %}
{% data reusables.enterprise-accounts.actions-tab %} {% data reusables.enterprise-accounts.actions-tab %}
1. Click the **Self-hosted runners** tab. {% data reusables.enterprise-accounts.actions-runners-tab %}
1. Click **Add new**, and then **New group**. 1. Click **Add new**, and then **New group**.
![Add runner group](/assets/images/help/settings/actions-enterprise-account-add-runner-group.png) ![Add runner group](/assets/images/help/settings/actions-enterprise-account-add-runner-group.png)
@@ -104,7 +104,7 @@ You can update the access policy of a runner group, or rename a runner group.
New self-hosted runners are automatically assigned to the default group, and can then be moved to another group. New self-hosted runners are automatically assigned to the default group, and can then be moved to another group.
1. In the **Self-hosted runners** section of the settings page, locate the current group of the runner you want to move and expand the list of group members. ![View runner group members](/assets/images/help/settings/actions-org-runner-group-members.png) 1. In the {% if currentVersion == "free-pro-team@latest" %}"Runners"{% else %}"Self-hosted runners"{% endif %} section of the settings page, locate the current group of the runner you want to move and expand the list of group members. ![View runner group members](/assets/images/help/settings/actions-org-runner-group-members.png)
1. Select the checkbox next to the self-hosted runner, and then click **Move to group** to see the available destinations. ![Runner group member move](/assets/images/help/settings/actions-org-runner-group-member-move.png) 1. Select the checkbox next to the self-hosted runner, and then click **Move to group** to see the available destinations. ![Runner group member move](/assets/images/help/settings/actions-org-runner-group-member-move.png)
1. To move the runner, click on the destination group. ![Runner group member move](/assets/images/help/settings/actions-org-runner-group-member-move-destination.png) 1. To move the runner, click on the destination group. ![Runner group member move](/assets/images/help/settings/actions-org-runner-group-member-move-destination.png)
@@ -112,7 +112,7 @@ New self-hosted runners are automatically assigned to the default group, and can
Self-hosted runners are automatically returned to the default group when their group is removed. Self-hosted runners are automatically returned to the default group when their group is removed.
1. In the **Self-hosted runners** section of the settings page, locate the group you want to delete, and click the {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} button. ![View runner group settings](/assets/images/help/settings/actions-org-runner-group-kebab.png) 1. In the {% if currentVersion == "free-pro-team@latest" %}"Runners"{% else %}"Self-hosted runners"{% endif %} section of the settings page, locate the group you want to delete, and click the {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} button. ![View runner group settings](/assets/images/help/settings/actions-org-runner-group-kebab.png)
1. To remove the group, click **Remove group**. ![View runner group settings](/assets/images/help/settings/actions-org-runner-group-remove.png) 1. To remove the group, click **Remove group**. ![View runner group settings](/assets/images/help/settings/actions-org-runner-group-remove.png)

View File

@@ -23,8 +23,8 @@ defaultPlatform: linux
{% data reusables.github-actions.self-hosted-runner-management-permissions-required %} {% data reusables.github-actions.self-hosted-runner-management-permissions-required %}
{% data reusables.github-actions.self-hosted-runner-navigate-repo-and-org %} {% data reusables.github-actions.self-hosted-runner-navigate-repo-and-org %}
{% data reusables.organizations.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners %}
1. Unter „selbstgehostete Runner“ kannst Du eine Liste von registrierten Runnern, einschließlich Name, Beschriftungen und Status des Runners, ansehen. 1. Under {% if currentVersion == "free-pro-team@latest" %}"Runners"{% else %}"Self-hosted runners"{% endif %}, you can view a list of registered runners, including the runner's name, labels, and status.
![Runner-Liste](/assets/images/help/settings/actions-runner-list.png) ![Runner-Liste](/assets/images/help/settings/actions-runner-list.png)

View File

@@ -32,7 +32,7 @@ To remove a self-hosted runner from a user repository you must be the repository
{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.sidebar-settings %}
{% data reusables.repositories.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners %}
{% data reusables.github-actions.self-hosted-runner-removing-a-runner %} {% data reusables.github-actions.self-hosted-runner-removing-a-runner %}
### Einen Runner aus einer Organisation entfernen ### Einen Runner aus einer Organisation entfernen
@@ -51,7 +51,7 @@ Um einen selbst-gehosteten Runner aus einer Organisation zu entfernen, musst Du
{% data reusables.organizations.navigate-to-org %} {% data reusables.organizations.navigate-to-org %}
{% data reusables.organizations.org_settings %} {% data reusables.organizations.org_settings %}
{% data reusables.repositories.settings-sidebar-actions %} {% data reusables.github-actions.settings-sidebar-actions-runners %}
{% data reusables.github-actions.self-hosted-runner-removing-a-runner %} {% data reusables.github-actions.self-hosted-runner-removing-a-runner %}
### Removing a runner from an enterprise ### Removing a runner from an enterprise
@@ -73,8 +73,8 @@ To remove a self-hosted runner at the enterprise level of
{% data reusables.github-actions.self-hosted-runner-reusing %} {% data reusables.github-actions.self-hosted-runner-reusing %}
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.access-enterprise %}
{% data reusables.enterprise-accounts.policies-tab %} {% data reusables.enterprise-accounts.policies-tab %}
{% data reusables.enterprise-accounts.actions-tab %} {% data reusables.enterprise-accounts.actions-tab %}
{% data reusables.enterprise-accounts.actions-runners-tab %}
{% data reusables.github-actions.self-hosted-runner-removing-a-runner %} {% data reusables.github-actions.self-hosted-runner-removing-a-runner %}

View File

@@ -31,6 +31,7 @@ children:
- /enabling-debug-logging - /enabling-debug-logging
- /adding-a-workflow-status-badge - /adding-a-workflow-status-badge
--- ---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.ae-beta %} {% data reusables.actions.ae-beta %}

View File

@@ -20,6 +20,6 @@ Billable job execution minutes are only shown for jobs run on private repositori
{% note %} {% note %}
**Hinweis:** Die angezeigte Abrechnungszeit enthält keine Rundungen oder Minutenmultiplikatoren. To view your total {% data variables.product.prodname_actions %} usage, including rounding and minute multipliers, see "[Viewing your {% data variables.product.prodname_actions %} usage](/github/setting-up-and-managing-billing-and-payments-on-github/viewing-your-github-actions-usage)." **Hinweis:** Die angezeigte Abrechnungszeit enthält keine Rundungen oder Minutenmultiplikatoren. To view your total {% data variables.product.prodname_actions %} usage, including rounding and minute multipliers, see "[Viewing your {% data variables.product.prodname_actions %} usage](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage)."
{% endnote %} {% endnote %}

View File

@@ -12,6 +12,7 @@ versions:
free-pro-team: '*' free-pro-team: '*'
enterprise-server: '>=2.22' enterprise-server: '>=2.22'
github-ae: '*' github-ae: '*'
miniTocMaxHeadingLevel: 4
--- ---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-beta %}
@@ -32,7 +33,9 @@ Sie müssen eine spezielle Syntax verwenden, um {% data variables.product.prodna
{% data reusables.github-actions.expression-syntax-if %} Weitere Informationen über Bedingungen mit `if`findest Du unter „[Workflow-Syntax für {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions/#jobsjob_idif)“. {% data reusables.github-actions.expression-syntax-if %} Weitere Informationen über Bedingungen mit `if`findest Du unter „[Workflow-Syntax für {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions/#jobsjob_idif)“.
#### Beispiel für einen Ausdruck in einer `if`-Anweisung {% data reusables.github-actions.context-injection-warning %}
##### Beispiel für einen Ausdruck in einer `if`-Anweisung
```yaml ```yaml
steps: steps:
@@ -40,12 +43,12 @@ steps:
if: {% raw %}${{ <expression> }}{% endraw %} if: {% raw %}${{ <expression> }}{% endraw %}
``` ```
#### Beispiel zum Setzen einer Umgebungsvariablen ##### Beispiel zum Setzen einer Umgebungsvariablen
{% raw %} {% raw %}
```yaml ```yaml
env: env:
my_env_var: ${{ <expression> }} MY_ENV_VAR: ${{ <expression> }}
``` ```
{% endraw %} {% endraw %}
@@ -73,7 +76,7 @@ Als Teil eines Ausdrucks kannst Du mit einer der beiden folgenden Syntaxarten au
- Index-Syntax: `github['sha']` - Index-Syntax: `github['sha']`
- Syntax zur Dereferenzierung von Eigenschaften: `github.sha` - Syntax zur Dereferenzierung von Eigenschaften: `github.sha`
Bei der Syntax zur Dereferenzierung von Eigenschaften muss der Name der Eigenschaft: Bei der Eigenschaftsdereferenzierungs-Syntax muss der Eigenschaftsname
- mit `a-Z` oder `_` beginnen, - mit `a-Z` oder `_` beginnen,
- mit `a-Z`, `0-9`, `-` oder `_` weitergehen. - mit `a-Z`, `0-9`, `-` oder `_` weitergehen.
@@ -86,6 +89,7 @@ Bei der Syntax zur Dereferenzierung von Eigenschaften muss der Name der Eigensch
Der `github`-Kontext enthält Informationen zum Workflow-Lauf und zu dem Ereignis, das den Lauf ausgelöst hat. Du kannst die meisten `github`-Kontextdaten in Umgebungsvariablen lesen. Weitere Informationen über Umgebungsvariablen findest Du unter „[Umgebungsvariablen verwenden](/actions/automating-your-workflow-with-github-actions/using-environment-variables)“. Der `github`-Kontext enthält Informationen zum Workflow-Lauf und zu dem Ereignis, das den Lauf ausgelöst hat. Du kannst die meisten `github`-Kontextdaten in Umgebungsvariablen lesen. Weitere Informationen über Umgebungsvariablen findest Du unter „[Umgebungsvariablen verwenden](/actions/automating-your-workflow-with-github-actions/using-environment-variables)“.
{% data reusables.github-actions.github-context-warning %} {% data reusables.github-actions.github-context-warning %}
{% data reusables.github-actions.context-injection-warning %}
| Name der Eigenschaft | Typ | Beschreibung | | Name der Eigenschaft | Typ | Beschreibung |
| ------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -140,7 +144,7 @@ Der `job`-Kontext enthält Informationen zum gerade ausgeführten Auftrag.
#### `steps`-Kontext #### `steps`-Kontext
Der `steps`-Kontext enthält Informationen zu den Schritten im aktuellen Auftrag, die bereits ausgeführt wurden. Der `steps`-Kontext enthält Informationen zu den Schritten im aktuellen Job, die bereits ausgeführt wurden.
| Name der Eigenschaft | Typ | Beschreibung | | Name der Eigenschaft | Typ | Beschreibung |
| --------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -172,7 +176,7 @@ Der `needs`-Kontext enthält Ausgaben von allen Jobs, die als Abhängigkeit des
| `needs.<job id>.outputs.<output name>` | `string` | Der Wert einer bestimmten Ausgabe für einen Job, von dem der aktuelle Job abhängt. | | `needs.<job id>.outputs.<output name>` | `string` | Der Wert einer bestimmten Ausgabe für einen Job, von dem der aktuelle Job abhängt. |
| `needs.<job id>.result` | `string` | Das Ergebnis eines Jobs, von dem der aktuelle Job abhängt. Mögliche Werte sind `success` (erfolgreich), `failure` (fehlgeschlagen), `cancelled` (abgebrochen) oder `skipped` (übersprungen). | | `needs.<job id>.result` | `string` | Das Ergebnis eines Jobs, von dem der aktuelle Job abhängt. Mögliche Werte sind `success` (erfolgreich), `failure` (fehlgeschlagen), `cancelled` (abgebrochen) oder `skipped` (übersprungen). |
#### Beispiel für die Ausgabe von Kontextinformationen in der Protokolldatei ##### Beispiel für die Ausgabe von Kontextinformationen in die Protokolldatei
Mit dem folgenden Beispiel einer Workflow-Datei kannst Du die Informationen einsehen, auf die in den einzelnen Kontexten zugegriffen werden kann. Mit dem folgenden Beispiel einer Workflow-Datei kannst Du die Informationen einsehen, auf die in den einzelnen Kontexten zugegriffen werden kann.
@@ -225,7 +229,7 @@ In einem Ausdruck kannst Du die Datentypen `boolean`, `null`, `number` oder `str
| `number` | Alle von JSON unterstützten Zahlenformate | | `number` | Alle von JSON unterstützten Zahlenformate |
| `string` | Du musst einfache Anführungszeichen verwenden. Maskiere einfache Anführungszeichen (Apostrophen) mit einem weiteren einfachen Anführungszeichen. | | `string` | Du musst einfache Anführungszeichen verwenden. Maskiere einfache Anführungszeichen (Apostrophen) mit einem weiteren einfachen Anführungszeichen. |
#### Beispiel ##### Beispiel
{% raw %} {% raw %}
```yaml ```yaml
@@ -258,7 +262,7 @@ env:
| `&&` | Und | | `&&` | Und |
| <code>\|\|</code> | Oder | | <code>\|\|</code> | Oder |
{% data variables.product.prodname_dotcom %} vergleicht auf Gleichheit in toleranter Weise. {% data variables.product.prodname_dotcom %} führt einen nicht strengen Gleichheitsvergleich aus.
* Wenn die Typen nicht übereinstimmen, wandelt {% data variables.product.prodname_dotcom %} den Typ in eine Zahl um. {% data variables.product.prodname_dotcom %} wandelt Daten verschiedener Typen folgendermaßen in eine Zahl um: * Wenn die Typen nicht übereinstimmen, wandelt {% data variables.product.prodname_dotcom %} den Typ in eine Zahl um. {% data variables.product.prodname_dotcom %} wandelt Daten verschiedener Typen folgendermaßen in eine Zahl um:
@@ -275,7 +279,7 @@ env:
### Funktionen ### Funktionen
{% data variables.product.prodname_dotcom %} bietet integrierte Funktionen, die Du in Ausdrücken verwenden kannst. Manche Funktionen verwandeln Werte an einen String, um Vergleiche durchzuführen. {% data variables.product.prodname_dotcom %} verwandelt Daten verschiedener Typen folgendermaßen in einen String: {% data variables.product.prodname_dotcom %} bietet integrierte Funktionen, die Sie in Ausdrücken verwenden können. Manche Funktionen verwandeln Werte an einen String, um Vergleiche durchzuführen. {% data variables.product.prodname_dotcom %} übergibt Datentypen anhand der folgenden Umwandlungen an einen String:
| Typ | Ergebnis | | Typ | Ergebnis |
| ------- | ------------------------------------------------- | | ------- | ------------------------------------------------- |
@@ -436,7 +440,7 @@ Creates a hash for any `package-lock.json` and `Gemfile.lock` files in the repos
### Funktionen zur Prüfung des Job-Status ### Funktionen zur Prüfung des Job-Status
Du kannst die nachfolgenden Funktionen zum Statuscheck als Ausdrücke in `if`-Bedingungen verwenden. Wenn Dein `if`-Ausdruck keine Statusfunktion enthält, wird automatisch das Ergebnis `success()` zurückgegeben. Weitere Informationen zu `if`-Anweisungen finden Sie unter „[Workflow-Syntax für GitHub Actions](/articles/workflow-syntax-for-github-actions/#jobsjob_idif)“. Du kannst die nachfolgenden Funktionen zum Statuscheck als Ausdrücke in `if`-Bedingungen verwenden. Wenn Dein `if`-Ausdruck keine Statusfunktion enthält, wird automatisch das Ergebnis `success()` zurückgegeben. Weitere Informationen zu `if`-Bedingungen findest Du unter „[Workflow-Syntax für GitHub Actions](/articles/workflow-syntax-for-github-actions/#jobsjob_idif)“.
#### success (Erfolg) #### success (Erfolg)
@@ -488,7 +492,7 @@ steps:
Mit der Syntax `*` kannst Du einen Filter anwenden und passende Elemente in einer Sammlung auswählen. Mit der Syntax `*` kannst Du einen Filter anwenden und passende Elemente in einer Sammlung auswählen.
Betrachten Sie beispielsweise das Objekt-Array `fruits`. Betrachte beispielsweise das Objekt-Array mit dem Namen `fruits`.
```json ```json
[ [

View File

@@ -29,7 +29,9 @@ For secrets stored at the environment level, you can enable required reviewers t
#### Benennen Ihrer Geheimnisse #### Benennen Ihrer Geheimnisse
{% data reusables.codespaces.secrets-naming %}. For example, {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %}a secret created at the environment level must have a unique name in that environment, {% endif %}a secret created at the repository level must have a unique name in that repository, and a secret created at the organization level must have a unique name at that level. {% data reusables.codespaces.secrets-naming %}
For example, {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %}a secret created at the environment level must have a unique name in that environment, {% endif %}a secret created at the repository level must have a unique name in that repository, and a secret created at the organization level must have a unique name at that level.
{% data reusables.codespaces.secret-precedence %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %} Similarly, if an organization, repository, and environment all have a secret with the same name, the environment-level secret takes precedence.{% endif %} {% data reusables.codespaces.secret-precedence %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %} Similarly, if an organization, repository, and environment all have a secret with the same name, the environment-level secret takes precedence.{% endif %}
@@ -184,7 +186,13 @@ steps:
### Einschränkungen für Geheimnisse ### Einschränkungen für Geheimnisse
You can store up to 1,000 secrets per organization{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %}, 100 secrets per repository, and 100 secrets per environment{% else %} and 100 secrets per repository{% endif %}. A workflow may use up to 100 organization secrets and 100 repository secrets.{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %} Additionally, a job referencing an environment may use up to 100 environment secrets.{% endif %} You can store up to 1,000 organization secrets{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %}, 100 repository secrets, and 100 environment secrets{% else %} and 100 repository secrets{% endif %}.
A workflow created in a repository can access the following number of secrets:
* All 100 repository secrets.
* If the repository is assigned access to more than 100 organization secrets, the workflow can only use the first 100 organization secrets (sorted alphabetically by secret name).
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@latest" %}* All 100 environment secrets.{% endif %}
Geheimnisse sind auf 64 KB beschränkt. Um Geheimnisse zu verwenden, die größer als 64 KB sind, können Sie verschlüsselte Geheimnisse in Ihrem Repository speichern und die Passphrase zur Entschlüsselung als Geheimnis auf {% data variables.product.prodname_dotcom %} speichern. Sie können beispielsweise `gpg` verwenden, um Ihre Anmeldeinformationen lokal zu verschlüsseln, bevor Sie die Datei in Ihrem Repository auf {% data variables.product.prodname_dotcom %} einchecken. Weitere Informationen finden Sie auf der „[gpg-Manpage](https://www.gnupg.org/gph/de/manual/r1023.html)“. Geheimnisse sind auf 64 KB beschränkt. Um Geheimnisse zu verwenden, die größer als 64 KB sind, können Sie verschlüsselte Geheimnisse in Ihrem Repository speichern und die Passphrase zur Entschlüsselung als Geheimnis auf {% data variables.product.prodname_dotcom %} speichern. Sie können beispielsweise `gpg` verwenden, um Ihre Anmeldeinformationen lokal zu verschlüsseln, bevor Sie die Datei in Ihrem Repository auf {% data variables.product.prodname_dotcom %} einchecken. Weitere Informationen finden Sie auf der „[gpg-Manpage](https://www.gnupg.org/gph/de/manual/r1023.html)“.

View File

@@ -18,6 +18,7 @@ children:
- /environment-variables - /environment-variables
- /usage-limits-billing-and-administration - /usage-limits-billing-and-administration
--- ---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %} {% data reusables.actions.enterprise-github-hosted-runners %}
{% data reusables.actions.ae-beta %} {% data reusables.actions.ae-beta %}
@@ -39,5 +40,6 @@ Workflow jobs can reference environments that have protection rules or environme
{% data variables.product.prodname_dotcom %} setzt Standard-Umgebungsvariablen für jeden {% data variables.product.prodname_actions %}-Workflow-Lauf. Du kannst auch benutzerdefinierte Umgebungsvariablen in Deiner Workflow-Datei festlegen. {% data variables.product.prodname_dotcom %} setzt Standard-Umgebungsvariablen für jeden {% data variables.product.prodname_actions %}-Workflow-Lauf. Du kannst auch benutzerdefinierte Umgebungsvariablen in Deiner Workflow-Datei festlegen.
{% if currentVersion == "free-pro-team@latest" %} {% if currentVersion == "free-pro-team@latest" %}
### Administration ### Administration
When you run workflows on {% data variables.product.prodname_dotcom %}-hosted runners, there are usage limits and potential usage charges. You can also disable or restrict the usage of {% data variables.product.prodname_actions %} in a repository and organization. When you run workflows on
{% data variables.product.prodname_dotcom %}-hosted runners, there are usage limits and potential usage charges. You can also disable or restrict the usage of {% data variables.product.prodname_actions %} in a repository and organization.
{% endif %} {% endif %}

View File

@@ -19,7 +19,7 @@ topics:
### Informationen zur Abrechnung für {% data variables.product.prodname_actions %} ### Informationen zur Abrechnung für {% data variables.product.prodname_actions %}
{% if currentVersion == "free-pro-team@latest" %} {% if currentVersion == "free-pro-team@latest" %}
{% data reusables.github-actions.actions-billing %} Weitere Informationen findest Du unter „[Informationen zur Abrechnung für {% data variables.product.prodname_actions %}](/github/setting-up-and-managing-billing-and-payments-on-github/about-billing-for-github-actions)“. {% data reusables.github-actions.actions-billing %} Weitere Informationen findest Du unter „[Informationen zur Abrechnung für {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)“.
{% else %} {% else %}
GitHub Actions usage is free for GitHub Actions usage is free for
{% data variables.product.prodname_ghe_server %}s that use self-hosted runners. {% data variables.product.prodname_ghe_server %}s that use self-hosted runners.
@@ -49,6 +49,8 @@ There are some limits on
| Team | 60 | 5 | | Team | 60 | 5 |
| Enterprise | 180 | 50 | | Enterprise | 180 | 50 |
- **Auftrags-Matrix** - {% data reusables.github-actions.usage-matrix-limits %} - **Auftrags-Matrix** - {% data reusables.github-actions.usage-matrix-limits %}
{% data reusables.github-actions.usage-workflow-queue-limits %}
{% else %} {% else %}
Usage limits apply to self-hosted runners. Weitere Informationen findest Du unter „[Informationen zu selbst-gehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits)“. Usage limits apply to self-hosted runners. Weitere Informationen findest Du unter „[Informationen zu selbst-gehosteten Runnern](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits)“.
{% endif %} {% endif %}

View File

@@ -53,7 +53,7 @@ Wenn Sie die Ereignisse `push` und `pull_request` verwenden, können Sie einen W
Die Schlüsselwörter `branches`, `branches-ignore`, `tags` und `tags-ignore` akzeptieren Glob-Muster, bei denen mithilfe der Platzhalterzeichen `*` und `**` mehrere passende Branch- oder Tag-Namen gefunden werden. Weitere Informationen findest Du auf dem „[Spickzettel zu Filtermustern](#filter-pattern-cheat-sheet)“. Die Schlüsselwörter `branches`, `branches-ignore`, `tags` und `tags-ignore` akzeptieren Glob-Muster, bei denen mithilfe der Platzhalterzeichen `*` und `**` mehrere passende Branch- oder Tag-Namen gefunden werden. Weitere Informationen findest Du auf dem „[Spickzettel zu Filtermustern](#filter-pattern-cheat-sheet)“.
#### Beispiel mit Branches und Tags #### Example: Including branches and tags
Die in `branches` und `tags` definierten Muster werden anhand des Namens des Git-Ref ausgewertet. Wenn Du das Muster `mona/octocat` in `branches` definierst, passt beispielsweise die Git-Ref `refs/heads/mona/octocat`. Zu dem Muster `releases/**` passt die Git-Ref `refs/heads/releases/10`. Die in `branches` und `tags` definierten Muster werden anhand des Namens des Git-Ref ausgewertet. Wenn Du das Muster `mona/octocat` in `branches` definierst, passt beispielsweise die Git-Ref `refs/heads/mona/octocat`. Zu dem Muster `releases/**` passt die Git-Ref `refs/heads/releases/10`.
@@ -74,7 +74,7 @@ on:
- v1.* # Push events to v1.0, v1.1, and v1.9 tags - v1.* # Push events to v1.0, v1.1, and v1.9 tags
``` ```
#### Beispiel zum Ignorieren von Branches und Tags #### Example: Ignoring branches and tags
Wenn ein Muster mit dem Muster `branches-ignore` oder `tags-ignore` übereinstimmt, wird der Workflow nicht ausgeführt. Die in `branches-ignore` und `tags-ignore` definierten Muster werden anhand des Namens der Git-Ref ausgewertet. Wenn Du das Muster `mona/octocat` in `branches` definierst, passt beispielsweise die Git-Ref `refs/heads/mona/octocat`. Das Muster `releases/**-alpha` in `branches` passt zu der Git-Ref `refs/releases/beta/3-alpha`. Wenn ein Muster mit dem Muster `branches-ignore` oder `tags-ignore` übereinstimmt, wird der Workflow nicht ausgeführt. Die in `branches-ignore` und `tags-ignore` definierten Muster werden anhand des Namens der Git-Ref ausgewertet. Wenn Du das Muster `mona/octocat` in `branches` definierst, passt beispielsweise die Git-Ref `refs/heads/mona/octocat`. Das Muster `releases/**-alpha` in `branches` passt zu der Git-Ref `refs/releases/beta/3-alpha`.
@@ -98,7 +98,7 @@ Es stehen zwei Arten von Filtern zur Verfügung, mit denen Du die Ausführung ei
- `branches` oder `branches-ignore` - Du kannst die beiden Filter `branches` und `branches-ignore` nicht gleichzeitig für dasselbe Ereignis in einem Workflow verwenden. Mit dem Filter `branches` kannst Du die Branches auf positive Übereinstimmungen filtern und Branches ausschließen. Nutze den Filter `branches-ignore`, wenn Du lediglich Branch-Namen ausschließen musst. - `branches` oder `branches-ignore` - Du kannst die beiden Filter `branches` und `branches-ignore` nicht gleichzeitig für dasselbe Ereignis in einem Workflow verwenden. Mit dem Filter `branches` kannst Du die Branches auf positive Übereinstimmungen filtern und Branches ausschließen. Nutze den Filter `branches-ignore`, wenn Du lediglich Branch-Namen ausschließen musst.
- `tags` oder `tags-ignore` - Du kannst die beiden Filter `tags` und den Filter `tags-ignore` nicht gleichzeitig für dasselbe Ereignis in einem Workflow verwenden. Mit dem Filter `tags` kannst Du die Tags auf positive Übereinstimmungen filtern und Tags ausschließen. Nutze den Filter `branches-ignore`, wenn Du lediglich Tag-Namen ausschließen musst. - `tags` oder `tags-ignore` - Du kannst die beiden Filter `tags` und den Filter `tags-ignore` nicht gleichzeitig für dasselbe Ereignis in einem Workflow verwenden. Mit dem Filter `tags` kannst Du die Tags auf positive Übereinstimmungen filtern und Tags ausschließen. Nutze den Filter `branches-ignore`, wenn Du lediglich Tag-Namen ausschließen musst.
#### Beispiel mit positiven und negativen Mustern #### Example: Using positive and negative patterns
Mit dem Zeichen `!` kannst Du `tags` und `branches` ausschließen. Die Reihenfolge, in der Du die Muster definierst, ist entscheidend. Mit dem Zeichen `!` kannst Du `tags` und `branches` ausschließen. Die Reihenfolge, in der Du die Muster definierst, ist entscheidend.
- Wenn eine Übereinstimmung mit einem negativen Muster (mit vorangestelltem `!`) nach einem positiven Abgleich vorliegt, wird die Git-Ref ausgeschlossen. - Wenn eine Übereinstimmung mit einem negativen Muster (mit vorangestelltem `!`) nach einem positiven Abgleich vorliegt, wird die Git-Ref ausgeschlossen.
@@ -120,7 +120,7 @@ Bei den Ereignissen `push` und `pull_request` kannst Du einen Workflows zur Ausf
Unter den Schlüsselwörtern `paths-ignore` und `paths` kannst Du Glob-Muster nutzen, so dass mithilfe der Platzhalterzeichens `*` und `**` mehrere Pfadnamen passen. Weitere Informationen findest Du auf dem „[Spickzettel zu Filtermustern](#filter-pattern-cheat-sheet)“. Unter den Schlüsselwörtern `paths-ignore` und `paths` kannst Du Glob-Muster nutzen, so dass mithilfe der Platzhalterzeichens `*` und `**` mehrere Pfadnamen passen. Weitere Informationen findest Du auf dem „[Spickzettel zu Filtermustern](#filter-pattern-cheat-sheet)“.
#### Beispiel zum Ignorieren von Pfaden #### Example: Ignoring paths
When all the path names match patterns in `paths-ignore`, the workflow will not run. {% data variables.product.prodname_dotcom %} wertet die in `paths-ignore` definierten Muster anhand des Pfadnamens aus. Ein Workflow mit dem nachfolgenden Pfadfilter wird nur bei `push`-Ereignissen ausgeführt, bei denen sich mindestens eine Datei außerhalb des Verzeichnisses `docs` im Root des Repositorys befindet. When all the path names match patterns in `paths-ignore`, the workflow will not run. {% data variables.product.prodname_dotcom %} wertet die in `paths-ignore` definierten Muster anhand des Pfadnamens aus. Ein Workflow mit dem nachfolgenden Pfadfilter wird nur bei `push`-Ereignissen ausgeführt, bei denen sich mindestens eine Datei außerhalb des Verzeichnisses `docs` im Root des Repositorys befindet.
@@ -131,7 +131,7 @@ on:
- 'docs/**' - 'docs/**'
``` ```
#### Beispiel mit eingeschlossenen Pfaden #### Example: Including paths
Wenn mindestens ein Pfad zu einem Muster im Filter `paths` passt, wird der Workflow ausgeführt. Soll bei jedem Push-Vorgang einer JavaScript-Datei ein Build ausgelöst werden, gibst Du ein Muster mit Platzhalterzeichen an. Wenn mindestens ein Pfad zu einem Muster im Filter `paths` passt, wird der Workflow ausgeführt. Soll bei jedem Push-Vorgang einer JavaScript-Datei ein Build ausgelöst werden, gibst Du ein Muster mit Platzhalterzeichen an.
@@ -148,7 +148,7 @@ Pfade können mit zwei Arten von Filtern ausgeschlossen werden. Du kannst nicht
- `paths-ignore` - Verwende den Filter `paths-ignore`, wenn Du lediglich Pfadnamen ausschließen musst. - `paths-ignore` - Verwende den Filter `paths-ignore`, wenn Du lediglich Pfadnamen ausschließen musst.
- `paths` - Mit dem Filter `paths` kannst Du die Pfade auf positive Übereinstimmungen filtern und Pfade ausschließen. - `paths` - Mit dem Filter `paths` kannst Du die Pfade auf positive Übereinstimmungen filtern und Pfade ausschließen.
#### Beispiel mit positiven und negativen Mustern #### Example: Using positive and negative patterns
Mit dem Zeichen `!` kannst Du `paths` ausschließen. Die Reihenfolge, in der Sie Muster definieren, ist entscheidend: Mit dem Zeichen `!` kannst Du `paths` ausschließen. Die Reihenfolge, in der Sie Muster definieren, ist entscheidend:
- Wenn nach einem positiven Abgleich ein negatives Muster (mit vorangestelltem `!`) passt, wird der Pfad ausgeschlossen. - Wenn nach einem positiven Abgleich ein negatives Muster (mit vorangestelltem `!`) passt, wird der Pfad ausgeschlossen.
@@ -291,7 +291,7 @@ Name des Auftrags, der auf {% data variables.product.prodname_dotcom %} angezeig
Liste mit allen Aufträgen, die erfolgreich abgeschlossen sein müssen, bevor dieser Auftrag ausgeführt wird. Hier ist ein String oder ein Array mit Strings zulässig. If a job fails, all jobs that need it are skipped unless the jobs use a conditional expression that causes the job to continue. Liste mit allen Aufträgen, die erfolgreich abgeschlossen sein müssen, bevor dieser Auftrag ausgeführt wird. Hier ist ein String oder ein Array mit Strings zulässig. If a job fails, all jobs that need it are skipped unless the jobs use a conditional expression that causes the job to continue.
#### Example requiring dependent jobs to be successful #### Example: Requiring dependent jobs to be successful
```yaml ```yaml
jobs: jobs:
@@ -310,7 +310,7 @@ Die Aufträge in diesem Beispiel werden sequenziell ausgeführt:
2. `job2` 2. `job2`
3. `job3` 3. `job3`
#### Example not requiring dependent jobs to be successful #### Example: Not requiring dependent jobs to be successful
```yaml ```yaml
jobs: jobs:
@@ -434,7 +434,7 @@ The URL can be an expression and can use any context except for the `secrets` co
```yaml ```yaml
environment: environment:
name: production_environment name: production_environment
url: ${{ steps.step_name.outputs.url_output }} url: ${{ steps.step_id.outputs.url_output }}
``` ```
{% endraw %} {% endraw %}
{% endif %} {% endif %}
@@ -577,7 +577,7 @@ Mit der Bedingung `if` gibst Du an, dass ein Schritt nur dann ausgeführt werden
{% data reusables.github-actions.expression-syntax-if %} Weitere Informationen findest Du unter „[Kontext- und Ausdruckssyntax für {% data variables.product.prodname_actions %}](/actions/reference/context-and-expression-syntax-for-github-actions)“. {% data reusables.github-actions.expression-syntax-if %} Weitere Informationen findest Du unter „[Kontext- und Ausdruckssyntax für {% data variables.product.prodname_actions %}](/actions/reference/context-and-expression-syntax-for-github-actions)“.
#### Beispiel für die Verwendung von Kontexten #### Example: Using contexts
Dieser Schritt wird nur ausgeführt, wenn der Ereignistyp ein `pull_request` ist und die Ereignisaktion `unassigned` ist. Dieser Schritt wird nur ausgeführt, wenn der Ereignistyp ein `pull_request` ist und die Ereignisaktion `unassigned` ist.
@@ -588,7 +588,7 @@ steps:
run: echo This event is a pull request that had an assignee removed. run: echo This event is a pull request that had an assignee removed.
``` ```
#### Beispiel für die Verwendung von Statusprüffunktionen #### Example: Using status check functions
`my backup step` wird nur dann ausgeführt, wenn der vorherige Schritt eines Auftrags fehlschlägt. Weitere Informationen findest Du unter „[Kontext- und Ausdrucks-Syntax für {% data variables.product.prodname_actions %}](/actions/reference/context-and-expression-syntax-for-github-actions#job-status-check-functions)“. `my backup step` wird nur dann ausgeführt, wenn der vorherige Schritt eines Auftrags fehlschlägt. Weitere Informationen findest Du unter „[Kontext- und Ausdrucks-Syntax für {% data variables.product.prodname_actions %}](/actions/reference/context-and-expression-syntax-for-github-actions#job-status-check-functions)“.
@@ -618,7 +618,7 @@ Für einige Aktionen sind Eingaben erforderlich, die Du mit dem Schlüsselwort [
Aktionen sind entweder JavaScript-Dateien oder Docker-Container. Bei Docker-Containern als Aktion mmusst Du den Job in einer Linux-Umgebung ausführen. Weitere Details findest Du unter [`runs-on`](#jobsjob_idruns-on). Aktionen sind entweder JavaScript-Dateien oder Docker-Container. Bei Docker-Containern als Aktion mmusst Du den Job in einer Linux-Umgebung ausführen. Weitere Details findest Du unter [`runs-on`](#jobsjob_idruns-on).
#### Beispiel mit versionierten Aktionen #### Example: Using versioned actions
```yaml ```yaml
steps: steps:
@@ -632,7 +632,7 @@ steps:
- uses: actions/setup-node@main - uses: actions/setup-node@main
``` ```
#### Beispiel mit einer öffentlichen Aktion #### Example: Using a public action
`{owner}/{repo}@{ref}` `{owner}/{repo}@{ref}`
@@ -650,7 +650,7 @@ jobs:
uses: actions/aws@v2.0.1 uses: actions/aws@v2.0.1
``` ```
#### Beispiel mit einer öffentlichen Aktion in einem Unterverzeichnis #### Example: Using a public action in a subdirectory
`{owner}/{repo}/{path}@{ref}` `{owner}/{repo}/{path}@{ref}`
@@ -664,7 +664,7 @@ jobs:
uses: actions/aws/ec2@main uses: actions/aws/ec2@main
``` ```
#### Beispiel mit einer Aktion im selben Repository wie der Workflow #### Example: Using an action in the same repository as the workflow
`./path/to/dir` `./path/to/dir`
@@ -680,7 +680,7 @@ jobs:
uses: ./.github/actions/my-action uses: ./.github/actions/my-action
``` ```
#### Beispiel mit einer Docker Hub-Aktion #### Example: Using a Docker Hub action
`docker://{image}:{tag}` `docker://{image}:{tag}`
@@ -695,7 +695,7 @@ jobs:
``` ```
{% if currentVersion == "free-pro-team@latest" %} {% if currentVersion == "free-pro-team@latest" %}
##### Example using the {% data variables.product.prodname_registry %} {% data variables.product.prodname_container_registry %} ##### Example: Using the {% data variables.product.prodname_registry %} {% data variables.product.prodname_container_registry %}
`docker://{host}/{image}:{tag}` `docker://{host}/{image}:{tag}`
@@ -709,7 +709,7 @@ jobs:
uses: docker://ghcr.io/OWNER/IMAGE_NAME uses: docker://ghcr.io/OWNER/IMAGE_NAME
``` ```
{% endif %} {% endif %}
##### Beispiel mit einer Aktion in einer öffentlichen Docker Registry ##### Example: Using a Docker public registry action
`docker://{host}/{image}:{tag}` `docker://{host}/{image}:{tag}`
@@ -723,7 +723,7 @@ jobs:
uses: docker://gcr.io/cloud-builders/gradle uses: docker://gcr.io/cloud-builders/gradle
``` ```
#### Example using action inside a different private repository than the workflow #### Example: Using an action inside a different private repository than the workflow
Your workflow must checkout the private repository and reference the action locally. Generate a personal access token and add the token as an encrypted secret. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)" and "[Encrypted secrets](/actions/reference/encrypted-secrets)." Your workflow must checkout the private repository and reference the action locally. Generate a personal access token and add the token as an encrypted secret. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)" and "[Encrypted secrets](/actions/reference/encrypted-secrets)."
@@ -792,7 +792,7 @@ Du kannst die Einstellungen zur Standard-Shell im Betriebssystem des Läufers mi
| Windows | `pwsh` | Dies ist die standardmäßig für Windows verwendete Shell. Der PowerShell Core. {% data variables.product.prodname_dotcom %} hängt die Erweiterung `.ps1` an Deinen Skriptnamen an. If your self-hosted Windows runner does not have _PowerShell Core_ installed, then _PowerShell Desktop_ is used instead. | `pwsh -command ". '{0}'"`. | | Windows | `pwsh` | Dies ist die standardmäßig für Windows verwendete Shell. Der PowerShell Core. {% data variables.product.prodname_dotcom %} hängt die Erweiterung `.ps1` an Deinen Skriptnamen an. If your self-hosted Windows runner does not have _PowerShell Core_ installed, then _PowerShell Desktop_ is used instead. | `pwsh -command ". '{0}'"`. |
| Windows | `powershell` | The PowerShell Desktop. {% data variables.product.prodname_dotcom %} hängt die Erweiterung `.ps1` an Deinen Skriptnamen an. | `powershell -command ". '{0}'"`. | | Windows | `powershell` | The PowerShell Desktop. {% data variables.product.prodname_dotcom %} hängt die Erweiterung `.ps1` an Deinen Skriptnamen an. | `powershell -command ". '{0}'"`. |
#### Beispiel zur Ausführung eines Skripts mittels Bash #### Example: Running a script using bash
```yaml ```yaml
steps: steps:
@@ -801,7 +801,7 @@ steps:
shell: bash shell: bash
``` ```
#### Beispiel zur Ausführung eines Skripts mittels `cmd` von Windows #### Example: Running a script using Windows `cmd`
```yaml ```yaml
steps: steps:
@@ -810,7 +810,7 @@ steps:
shell: cmd shell: cmd
``` ```
#### Beispiel zur Ausführung eines Skripts mittels PowerShell Core #### Example: Running a script using PowerShell Core
```yaml ```yaml
steps: steps:
@@ -828,7 +828,7 @@ steps:
shell: powershell shell: powershell
``` ```
#### Beispiel zur Ausführung eines Python-Skripts #### Example: Running a python script
```yaml ```yaml
steps: steps:
@@ -985,7 +985,7 @@ Jede Option, die Du in der `Matrix` definierst, hat einen Schlüssel und einen W
Die Reihenfolge, in der Du eine `Matrix` definierst, ist wichtig. Die erste Option, die Du definierst, ist der erste Job, der im Workflow ausgeführt wird. Die Reihenfolge, in der Du eine `Matrix` definierst, ist wichtig. Die erste Option, die Du definierst, ist der erste Job, der im Workflow ausgeführt wird.
#### Beispiel für die Ausführung mit mehreren Versionen von Node.js #### Example: Running multiple versions of Node.js
Zum Erstellen einer Matrix geben Sie ein Array für die Konfigurationsoptionen an. Wenn der Runner beispielsweise die Node.js-Versionen 10, 12 und 14 unterstützt, kannst Du ein Array dieser Versionen in der `matrix` festlegen. Zum Erstellen einer Matrix geben Sie ein Array für die Konfigurationsoptionen an. Wenn der Runner beispielsweise die Node.js-Versionen 10, 12 und 14 unterstützt, kannst Du ein Array dieser Versionen in der `matrix` festlegen.
@@ -1007,7 +1007,7 @@ steps:
Die Aktion `setup-node` ist das empfohlene Mittel zur Konfiguration einer Node.js-Version, wenn {% data variables.product.prodname_dotcom %}-gehostete Runner verwendet werden. Weitere Informationen findest Du in der Aktion [`setup-node`](https://github.com/actions/setup-node). Die Aktion `setup-node` ist das empfohlene Mittel zur Konfiguration einer Node.js-Version, wenn {% data variables.product.prodname_dotcom %}-gehostete Runner verwendet werden. Weitere Informationen findest Du in der Aktion [`setup-node`](https://github.com/actions/setup-node).
#### Beispiel für die Ausführung mit mehreren Betriebssystemen #### Example: Running with multiple operating systems
Du kannst eine Matrix erstellen, um Workflows auf mehreren Runner-Betriebssystemen auszuführen. Du kannst auch mehrere Matrix-Konfigurationen angeben. Dieses Beispiel erstellt eine Matrix von 6 Jobs: Du kannst eine Matrix erstellen, um Workflows auf mehreren Runner-Betriebssystemen auszuführen. Du kannst auch mehrere Matrix-Konfigurationen angeben. Dieses Beispiel erstellt eine Matrix von 6 Jobs:
@@ -1034,7 +1034,7 @@ steps:
{% else %}To find supported configuration options for {% data variables.product.prodname_dotcom %}-hosted runners, see "[Virtual environments for {% data variables.product.prodname_dotcom %}-hosted runners](/actions/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners)." {% else %}To find supported configuration options for {% data variables.product.prodname_dotcom %}-hosted runners, see "[Virtual environments for {% data variables.product.prodname_dotcom %}-hosted runners](/actions/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners)."
{% endif %} {% endif %}
#### Beispiel mit kombinierten zusätzlichen Werten #### Example: Including additional values into combinations
Zu einem bereits vorhandenen Job mit Buildmatrix kannst Du weitere Konfigurationsoptionen hinzufügen. Wenn Du beispielsweise eine bestimmte Version von `npm` verwenden willst, wenn der Auftrag mit `windows-latest` und Version 8 von `node` ausgeführt wird, kannst Du `include` verwenden, um diese zusätzliche Option anzugeben. Zu einem bereits vorhandenen Job mit Buildmatrix kannst Du weitere Konfigurationsoptionen hinzufügen. Wenn Du beispielsweise eine bestimmte Version von `npm` verwenden willst, wenn der Auftrag mit `windows-latest` und Version 8 von `node` ausgeführt wird, kannst Du `include` verwenden, um diese zusätzliche Option anzugeben.
@@ -1054,7 +1054,7 @@ strategy:
``` ```
{% endraw %} {% endraw %}
#### Beispiel zum Einbeziehen neuer Kombinationen #### Example: Including new combinations
Du kannst `include` verwenden, um neue Jobs zu einer Build-Matrix hinzuzufügen. Alle Include-Konfigurationen, die nicht passen, werden zur Matrix hinzugefügt. Wenn Du beispielsweise `node` Version 14 verwenden willst, um auf mehreren Betriebssystemen zu bauen, aber Du willst einen zusätzlichen experimentellen Job mit Node Version 15 auf Ubuntu, kannst Du `include` verwenden, um diesen zusätzlichen Job anzugeben. Du kannst `include` verwenden, um neue Jobs zu einer Build-Matrix hinzuzufügen. Alle Include-Konfigurationen, die nicht passen, werden zur Matrix hinzugefügt. Wenn Du beispielsweise `node` Version 14 verwenden willst, um auf mehreren Betriebssystemen zu bauen, aber Du willst einen zusätzlichen experimentellen Job mit Node Version 15 auf Ubuntu, kannst Du `include` verwenden, um diesen zusätzlichen Job anzugeben.
@@ -1072,7 +1072,7 @@ strategy:
``` ```
{% endraw %} {% endraw %}
#### Beispiel zum Ausschließen von Konfigurationen aus einer Matrix #### Example: Excluding configurations from a matrix
Mit der Option `exclude` kannst Du bestimmte in der Build-Matrix definierte Konfigurationen entfernen. Durch die Verwendung von `exclude` wird ein durch die Build-Matrix definierter Job entfernt. Die Anzahl der Jobs ist das Kreuzprodukt der Anzahl der Betriebssysteme (`os`), die in den von Dir bereitgestellten Arrays enthalten sind, abzüglich etwaiger Subtraktionen (`exclude`). Mit der Option `exclude` kannst Du bestimmte in der Build-Matrix definierte Konfigurationen entfernen. Durch die Verwendung von `exclude` wird ein durch die Build-Matrix definierter Job entfernt. Die Anzahl der Jobs ist das Kreuzprodukt der Anzahl der Betriebssysteme (`os`), die in den von Dir bereitgestellten Arrays enthalten sind, abzüglich etwaiger Subtraktionen (`exclude`).
@@ -1119,7 +1119,7 @@ strategy:
Verhindert, dass ein Workflow scheitert, wenn ein Job scheitert. Setze es auf `true` um einen Workflow-Lauf fortzusetzen, wenn dieser Job scheitert. Verhindert, dass ein Workflow scheitert, wenn ein Job scheitert. Setze es auf `true` um einen Workflow-Lauf fortzusetzen, wenn dieser Job scheitert.
#### Beispiel zum Verhindern, dass ein bestimmter scheiternder Job in der Matrix einen Workflow-Lauf scheitern lässt #### Example: Preventing a specific failing matrix job from failing a workflow run
Du kannst zulassen, dass bestimmte Jobs in einer Jobmatrix scheitert, ohne dass der Workflow-Lauf scheitert. Das gilt beispielsweise, wenn Du nur einem experimentellen Job, bei dem `node` auf `15` gesetzt wurde, das Scheitern erlauben willst, ohne dass dadurch der Workflow-Lauf scheitert. Du kannst zulassen, dass bestimmte Jobs in einer Jobmatrix scheitert, ohne dass der Workflow-Lauf scheitert. Das gilt beispielsweise, wenn Du nur einem experimentellen Job, bei dem `node` auf `15` gesetzt wurde, das Scheitern erlauben willst, ohne dass dadurch der Workflow-Lauf scheitert.
@@ -1236,7 +1236,7 @@ Wenn Du den Job so konfigurierst, dass er direkt auf der Runner-Maschine läuft
Weitere Informationen über die Unterschiede zwischen Netzwerk-Servicecontainern finden Sie unter „[Informationen zu Servicecontainern](/actions/automating-your-workflow-with-github-actions/about-service-containers)“. Weitere Informationen über die Unterschiede zwischen Netzwerk-Servicecontainern finden Sie unter „[Informationen zu Servicecontainern](/actions/automating-your-workflow-with-github-actions/about-service-containers)“.
#### Beispiel für die Verwendung von „localhost #### Example: Using localhost
Dieses Beispiel erzeugt zwei Dienste: nginx und redis. Wenn Du den Port des Docker-Hosts angibst, aber nicht den des Containers, dann wird der Container-Port zufällig einem freien Port zugewiesen. {% data variables.product.prodname_dotcom %} setzt den zugewiesenen Containerport im Kontext {% raw %}`${{job.services.<service_name>.ports}}`{% endraw %} . In diesem Beispiel kannst Du über die Kontexte {% raw %}`${{ job.services.nginx.ports['8080'] }}`{% endraw %} und {% raw %}`${{ job.services.redis.ports['6379'] }}`{% endraw %} auf die Ports des Servicecontainers zugreifen. Dieses Beispiel erzeugt zwei Dienste: nginx und redis. Wenn Du den Port des Docker-Hosts angibst, aber nicht den des Containers, dann wird der Container-Port zufällig einem freien Port zugewiesen. {% data variables.product.prodname_dotcom %} setzt den zugewiesenen Containerport im Kontext {% raw %}`${{job.services.<service_name>.ports}}`{% endraw %} . In diesem Beispiel kannst Du über die Kontexte {% raw %}`${{ job.services.nginx.ports['8080'] }}`{% endraw %} und {% raw %}`${{ job.services.redis.ports['6379'] }}`{% endraw %} auf die Ports des Servicecontainers zugreifen.
@@ -1365,7 +1365,7 @@ Pfadmuster müssen mit dem gesamten Pfad übereinstimmen und mit dem Root des Re
| `docs/*` | Alle Dateien im Root des Verzeichnisses `docs` im Root des Repositorys. | `docs/README.md`<br/><br/>`docs/file.txt` | | `docs/*` | Alle Dateien im Root des Verzeichnisses `docs` im Root des Repositorys. | `docs/README.md`<br/><br/>`docs/file.txt` |
| `docs/**` | Beliebige Dateien im Verzeichnis `docs` im Root des Repositorys. | `docs/README.md`<br/><br/>`docs/mona/octocat.txt` | | `docs/**` | Beliebige Dateien im Verzeichnis `docs` im Root des Repositorys. | `docs/README.md`<br/><br/>`docs/mona/octocat.txt` |
| `docs/**/*.md` | Eine Datei mit dem Suffix `.md` an beliebiger Stelle im Verzeichnis `docs`. | `docs/README.md`<br/><br/>`docs/mona/hello-world.md`<br/><br/>`docs/a/markdown/file.md` | | `docs/**/*.md` | Eine Datei mit dem Suffix `.md` an beliebiger Stelle im Verzeichnis `docs`. | `docs/README.md`<br/><br/>`docs/mona/hello-world.md`<br/><br/>`docs/a/markdown/file.md` |
| `'**/docs/**'` | Beliebige Dateien im Verzeichnis `docs` an beliebiger Stelle im Repository. | `/docs/hello.md`<br/><br/>`dir/docs/my-file.txt`<br/><br/>`space/docs/plan/space.doc` | | `'**/docs/**'` | Beliebige Dateien im Verzeichnis `docs` an beliebiger Stelle im Repository. | `docs/hello.md`<br/><br/>`dir/docs/my-file.txt`<br/><br/>`space/docs/plan/space.doc` |
| `'**/README.md'` | Eine Datei mit dem Namen „README.md“ an beliebiger Stelle im Repository. | `README.md`<br/><br/>`js/README.md` | | `'**/README.md'` | Eine Datei mit dem Namen „README.md“ an beliebiger Stelle im Repository. | `README.md`<br/><br/>`js/README.md` |
| `'**/*src/**'` | Eine beliebige Datei in einem Ordner mit dem Suffix `src` an beliebiger Stelle im Repository. | `a/src/app.js`<br/><br/>`my-src/code/js/app.js` | | `'**/*src/**'` | Eine beliebige Datei in einem Ordner mit dem Suffix `src` an beliebiger Stelle im Repository. | `a/src/app.js`<br/><br/>`my-src/code/js/app.js` |
| `'**/*-post.md'` | Eine Datei mit dem Suffix `-post.md` an beliebiger Stelle im Repository. | `my-post.md`<br/><br/>`path/their-post.md` | | `'**/*-post.md'` | Eine Datei mit dem Suffix `-post.md` an beliebiger Stelle im Repository. | `my-post.md`<br/><br/>`path/their-post.md` |

View File

@@ -77,7 +77,7 @@ For the overall list of included tools for each runner operating system, see the
* [Ubuntu 18.04 LTS](https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md) * [Ubuntu 18.04 LTS](https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md)
* [Windows Server 2019](https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md) * [Windows Server 2019](https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md)
* [Windows Server 2016](https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md) * [Windows Server 2016](https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md)
* [macOS 11.0](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md) * [macOS 11](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11-Readme.md)
* [macOS 10.15](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md) * [macOS 10.15](https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md)
{% data variables.product.prodname_dotcom %}-gehostete Runner enthalten zusätzlich zu den oben aufgeführten Paketen die standardmäßig integrierten Tools des Betriebssystems. Zum Beispiel beinhalten Ubuntu und macOS Läufer `grep`, `find`, und `which` neben anderen Standard-Tools. {% data variables.product.prodname_dotcom %}-gehostete Runner enthalten zusätzlich zu den oben aufgeführten Paketen die standardmäßig integrierten Tools des Betriebssystems. Zum Beispiel beinhalten Ubuntu und macOS Läufer `grep`, `find`, und `which` neben anderen Standard-Tools.
@@ -133,6 +133,6 @@ In {% data variables.product.prodname_dotcom %} wird das Pfadpräfix `/github` r
{% if currentVersion == "free-pro-team@latest" %} {% if currentVersion == "free-pro-team@latest" %}
### Weiterführende Informationen ### Weiterführende Informationen
- [Abrechnung für {{ site.data.variables.product.prodname_actions }} verwalten](/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions) - "[ Abrechnung für {% data variables.product.prodname_actions %} verwalten](/billing/managing-billing-for-github-actions)"
{% endif %} {% endif %}

View File

@@ -15,5 +15,6 @@ children:
- /using-groups-to-manage-access-to-ae-hosted-runners - /using-groups-to-manage-access-to-ae-hosted-runners
- /creating-custom-images - /creating-custom-images
--- ---
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-beta %}
{% data reusables.actions.enterprise-github-hosted-runners %} {% data reusables.actions.enterprise-github-hosted-runners %}

View File

@@ -27,7 +27,7 @@ topics:
- The [SSSE3](https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf#G3.1106470) (Supplemental Streaming SIMD Extensions 3) CPU flag needs to be enabled on the VM/KVM that runs {% data variables.product.product_location %}. - The [SSSE3](https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf#G3.1106470) (Supplemental Streaming SIMD Extensions 3) CPU flag needs to be enabled on the VM/KVM that runs {% data variables.product.product_location %}.
- A license for {% data variables.product.prodname_GH_advanced_security %} (see "[About licensing for {% data variables.product.prodname_GH_advanced_security %}](/admin/advanced-security/about-licensing-for-github-advanced-security)") - A license for {% data variables.product.prodname_GH_advanced_security %}{% if currentVersion ver_gt "enterprise-server@3.0" %} (see "[About licensing for {% data variables.product.prodname_GH_advanced_security %}](/admin/advanced-security/about-licensing-for-github-advanced-security)"){% endif %}
- {% data variables.product.prodname_secret_scanning_caps %} enabled in the management console (see "[Enabling {% data variables.product.prodname_GH_advanced_security %} for your enterprise](/admin/advanced-security/enabling-github-advanced-security-for-your-enterprise)") - {% data variables.product.prodname_secret_scanning_caps %} enabled in the management console (see "[Enabling {% data variables.product.prodname_GH_advanced_security %} for your enterprise](/admin/advanced-security/enabling-github-advanced-security-for-your-enterprise)")

View File

@@ -17,4 +17,4 @@ children:
- /configuring-secret-scanning-for-your-appliance - /configuring-secret-scanning-for-your-appliance
- /viewing-your-github-advanced-security-usage - /viewing-your-github-advanced-security-usage
--- ---
### Inhaltsverzeichnis

View File

@@ -14,6 +14,7 @@ topics:
- Enterprise - Enterprise
- Identity - Identity
--- ---
### Informationen zur integrierten Authentifizierung für Benutzer außerhalb Ihres Identity Providers ### Informationen zur integrierten Authentifizierung für Benutzer außerhalb Ihres Identity Providers
Sie können die integrierte Authentifizierung für externe Benutzer verwenden, wenn Sie nicht in der Lage sind, Ihrem Identity Provider (IdP) bestimmte Konten, beispielsweise Konten für Vertragsnehmer oder Maschinenbenutzer hinzuzufügen. Darüber hinaus können Sie die integrierte Authentifizierung verwenden, um auf ein Fallback-Konto zuzugreifen, falls der Identity Provider nicht verfügbar ist. Sie können die integrierte Authentifizierung für externe Benutzer verwenden, wenn Sie nicht in der Lage sind, Ihrem Identity Provider (IdP) bestimmte Konten, beispielsweise Konten für Vertragsnehmer oder Maschinenbenutzer hinzuzufügen. Darüber hinaus können Sie die integrierte Authentifizierung verwenden, um auf ein Fallback-Konto zuzugreifen, falls der Identity Provider nicht verfügbar ist.

View File

@@ -14,6 +14,7 @@ topics:
- Enterprise - Enterprise
- Identity - Identity
--- ---
Wenn Sie die Authentifizierungsmethode ändern, werden die Benutzerkonten auf {% data variables.product.product_location %} beibehalten, und Benutzer melden sich weiterhin beim selben Konto an, sofern ihr Benutzername nicht geändert wird. Wenn Sie die Authentifizierungsmethode ändern, werden die Benutzerkonten auf {% data variables.product.product_location %} beibehalten, und Benutzer melden sich weiterhin beim selben Konto an, sofern ihr Benutzername nicht geändert wird.
Wenn bei der neuen Authentifizierungsmethode Benutzernamen geändert werden, werden neue Konten erstellt. Als Administrator können Sie Benutzer über die Einstellungen des Websiteadministrators oder mithilfe der [API für die Benutzerverwaltung](/rest/reference/enterprise-admin#update-the-username-for-a-user) umbenennen. Wenn bei der neuen Authentifizierungsmethode Benutzernamen geändert werden, werden neue Konten erstellt. Als Administrator können Sie Benutzer über die Einstellungen des Websiteadministrators oder mithilfe der [API für die Benutzerverwaltung](/rest/reference/enterprise-admin#update-the-username-for-a-user) umbenennen.

View File

@@ -14,6 +14,7 @@ topics:
- Authentication - Authentication
- Enterprise - Enterprise
--- ---
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_site_admin_settings.management-console %}
{% data reusables.enterprise_management_console.privacy %} {% data reusables.enterprise_management_console.privacy %}

View File

@@ -14,6 +14,7 @@ topics:
- Enterprise - Enterprise
- Identity - Identity
--- ---
Du kannst frei definierbare Nachrichten erstellen, die Benutzern auf den Anmelde- und Abmeldeseiten angezeigt werden. Weitere Informationen finden Sie unter „[Benutzermeldungen auf Ihrer Instanz anpassen](/enterprise/admin/user-management/customizing-user-messages-on-your-instance)“. Du kannst frei definierbare Nachrichten erstellen, die Benutzern auf den Anmelde- und Abmeldeseiten angezeigt werden. Weitere Informationen finden Sie unter „[Benutzermeldungen auf Ihrer Instanz anpassen](/enterprise/admin/user-management/customizing-user-messages-on-your-instance)“.
### Integrierte Authentifizierung konfigurieren ### Integrierte Authentifizierung konfigurieren

View File

@@ -17,6 +17,7 @@ topics:
- Identity - Identity
- SSO - SSO
--- ---
{% data reusables.enterprise_user_management.built-in-authentication %} {% data reusables.enterprise_user_management.built-in-authentication %}
### Grundlegendes für Benutzernamen bei CAS ### Grundlegendes für Benutzernamen bei CAS

View File

@@ -19,6 +19,7 @@ topics:
- Enterprise - Enterprise
- Identity - Identity
--- ---
{% data reusables.enterprise_user_management.built-in-authentication %} {% data reusables.enterprise_user_management.built-in-authentication %}
### Unterstützte LDAP-Dienste ### Unterstützte LDAP-Dienste

View File

@@ -17,6 +17,7 @@ topics:
- Identity - Identity
- SSO - SSO
--- ---
{% data reusables.enterprise_user_management.built-in-authentication %} {% data reusables.enterprise_user_management.built-in-authentication %}
### Unterstützte SAML-Dienste ### Unterstützte SAML-Dienste

View File

@@ -16,6 +16,7 @@ topics:
redirect_from: redirect_from:
- /admin/authentication/configuring-authentication-and-provisioning-for-your-enterprise-using-azure-ad - /admin/authentication/configuring-authentication-and-provisioning-for-your-enterprise-using-azure-ad
--- ---
### About authentication and user provisioning with Azure AD ### About authentication and user provisioning with Azure AD
Azure Active Directory (Azure AD) is a service from Microsoft that allows you to centrally manage user accounts and access to web applications. For more information, see [What is Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/fundamentals/active-directory-whatis) in the Microsoft Docs. Azure Active Directory (Azure AD) is a service from Microsoft that allows you to centrally manage user accounts and access to web applications. For more information, see [What is Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/fundamentals/active-directory-whatis) in the Microsoft Docs.

View File

@@ -13,4 +13,4 @@ children:
- /managing-identity-and-access-for-your-enterprise - /managing-identity-and-access-for-your-enterprise
- /configuring-authentication-and-provisioning-with-your-identity-provider - /configuring-authentication-and-provisioning-with-your-identity-provider
--- ---
### Inhaltsverzeichnis

View File

@@ -15,6 +15,7 @@ topics:
redirect_from: redirect_from:
- /admin/authentication/about-identity-and-access-management-for-your-enterprise - /admin/authentication/about-identity-and-access-management-for-your-enterprise
--- ---
### About identity and access management for your enterprise ### About identity and access management for your enterprise
{% if currentVersion == "github-ae@latest" %} {% if currentVersion == "github-ae@latest" %}

View File

@@ -16,6 +16,7 @@ topics:
redirect_from: redirect_from:
- /admin/authentication/configuring-saml-single-sign-on-for-your-enterprise - /admin/authentication/configuring-saml-single-sign-on-for-your-enterprise
--- ---
### Informationen zu SAML SSO ### Informationen zu SAML SSO
{% if currentVersion == "github-ae@latest" %} {% if currentVersion == "github-ae@latest" %}

View File

@@ -16,6 +16,7 @@ topics:
redirect_from: redirect_from:
- /admin/authentication/configuring-user-provisioning-for-your-enterprise - /admin/authentication/configuring-user-provisioning-for-your-enterprise
--- ---
### About user provisioning for your enterprise ### About user provisioning for your enterprise
{% data reusables.saml.ae-uses-saml-sso %} For more information, see "[Configuring SAML single sign-on for your enterprise](/admin/authentication/configuring-saml-single-sign-on-for-your-enterprise)." {% data reusables.saml.ae-uses-saml-sso %} For more information, see "[Configuring SAML single sign-on for your enterprise](/admin/authentication/configuring-saml-single-sign-on-for-your-enterprise)."
@@ -52,9 +53,7 @@ You must have administrative access on your IdP to configure the application for
{% if currentVersion == "github-ae@latest" %} {% if currentVersion == "github-ae@latest" %}
1. While signed into 1. While signed into {% data variables.product.product_location %} as an enterprise owner, create a personal access token with **admin:enterprise** scope. Weitere Informationen finden Sie unter "[Erstellen eines persönlichen Zugriffstokens](/github/authenticating-to-github/creating-a-personal-access-token)."
{% data variables.product.product_location %} as an enterprise owner, create a personal access token with **admin:enterprise** scope. Weitere Informationen finden Sie unter "[Erstellen eines persönlichen Zugriffstokens](/github/authenticating-to-github/creating-a-personal-access-token)."
{% note %} {% note %}
**Hinweise**: **Hinweise**:

View File

@@ -14,6 +14,7 @@ topics:
- Fundamentals - Fundamentals
- Infrastructure - Infrastructure
--- ---
Wenn Sie einen Hostnamen konfigurieren, anstatt eine hartcodierte IP-Adresse zu verwenden, können Sie die physische Hardware ändern, auf der {% data variables.product.product_location %} ausgeführt wird, ohne dass sich dies auf die Benutzer oder auf die Clientsoftware auswirkt. Wenn Sie einen Hostnamen konfigurieren, anstatt eine hartcodierte IP-Adresse zu verwenden, können Sie die physische Hardware ändern, auf der {% data variables.product.product_location %} ausgeführt wird, ohne dass sich dies auf die Benutzer oder auf die Clientsoftware auswirkt.
Die Einstellung des Hostnamens in der {% data variables.enterprise.management_console %} sollte auf einen geeigneten vollqualifizierten Domainnamen (FQDN) gesetzt werden, der im Internet oder in Deinem internen Netzwerk auflösbar ist. So könnte Ihre Hostnameneinstellung beispielsweise `github.companyname.com` lauten. Darüber hinaus wird empfohlen, die Subdomain-Isolation für den gewünschten Hostnamen zu aktivieren, um verschiedene Cross-Site-Scripting-Stilschwachstellen abzuschwächen. Weitere Informationen zu den Hostnameneinstellungen finden Sie in [Abschnitt 2.1 im HTTP RFC](https://tools.ietf.org/html/rfc1123#section-2). Die Einstellung des Hostnamens in der {% data variables.enterprise.management_console %} sollte auf einen geeigneten vollqualifizierten Domainnamen (FQDN) gesetzt werden, der im Internet oder in Deinem internen Netzwerk auflösbar ist. So könnte Ihre Hostnameneinstellung beispielsweise `github.companyname.com` lauten. Darüber hinaus wird empfohlen, die Subdomain-Isolation für den gewünschten Hostnamen zu aktivieren, um verschiedene Cross-Site-Scripting-Stilschwachstellen abzuschwächen. Weitere Informationen zu den Hostnameneinstellungen finden Sie in [Abschnitt 2.1 im HTTP RFC](https://tools.ietf.org/html/rfc1123#section-2).

View File

@@ -15,6 +15,7 @@ topics:
- Infrastructure - Infrastructure
- Networking - Networking
--- ---
Wenn ein Proxyserver für {% data variables.product.product_location %} aktiviert wird, werden ausgehende Nachrichten, die von {% data variables.product.prodname_ghe_server %} gesendet wurden, zunächst über den Proxyserver gesendet, sofern der Zielhost nicht als HTTP-Proxyausschluss hinzugefügt wurde. Zu den Typen ausgehender Nachrichten zählen ausgehende Webhooks, das Hochladen von Bundles und das Abrufen von veralteten Avataren. Die URL des Proxyservers ist das Protokoll, die Domain oder IP-Adresse plus die Portnummer, also beispielsweise `http://127.0.0.1:8123`. Wenn ein Proxyserver für {% data variables.product.product_location %} aktiviert wird, werden ausgehende Nachrichten, die von {% data variables.product.prodname_ghe_server %} gesendet wurden, zunächst über den Proxyserver gesendet, sofern der Zielhost nicht als HTTP-Proxyausschluss hinzugefügt wurde. Zu den Typen ausgehender Nachrichten zählen ausgehende Webhooks, das Hochladen von Bundles und das Abrufen von veralteten Avataren. Die URL des Proxyservers ist das Protokoll, die Domain oder IP-Adresse plus die Portnummer, also beispielsweise `http://127.0.0.1:8123`.
{% note %} {% note %}

View File

@@ -15,6 +15,7 @@ topics:
- Infrastructure - Infrastructure
- Networking - Networking
--- ---
### Informationen zur Firewall der {% data variables.product.product_location %} ### Informationen zur Firewall der {% data variables.product.product_location %}
{% data variables.product.prodname_ghe_server %} verwendet die Uncomplicated Firewall (UFW) von Ubuntu auf der virtuellen Appliance. Weitere Informationen finden Sie unter „[UFW](https://help.ubuntu.com/community/UFW)“ in der Ubuntu-Dokumentation. {% data variables.product.prodname_ghe_server %} automatically updates the firewall allowlist of allowed services with each release. {% data variables.product.prodname_ghe_server %} verwendet die Uncomplicated Firewall (UFW) von Ubuntu auf der virtuellen Appliance. Weitere Informationen finden Sie unter „[UFW](https://help.ubuntu.com/community/UFW)“ in der Ubuntu-Dokumentation. {% data variables.product.prodname_ghe_server %} automatically updates the firewall allowlist of allowed services with each release.

View File

@@ -15,6 +15,7 @@ topics:
- Infrastructure - Infrastructure
- Networking - Networking
--- ---
Die von Ihnen angegebenen Nameserver müssen den Hostnamen Ihrer {% data variables.product.product_location %} auflösen. Die von Ihnen angegebenen Nameserver müssen den Hostnamen Ihrer {% data variables.product.product_location %} auflösen.
{% data reusables.enterprise_installation.changing-hostname-not-supported %} {% data reusables.enterprise_installation.changing-hostname-not-supported %}

View File

@@ -14,6 +14,7 @@ topics:
- Infrastructure - Infrastructure
- Networking - Networking
--- ---
{% note %} {% note %}
**Note:** We do not support adding additional network adapters to {% data variables.product.prodname_ghe_server %}. **Note:** We do not support adding additional network adapters to {% data variables.product.prodname_ghe_server %}.

View File

@@ -17,6 +17,7 @@ topics:
- Networking - Networking
- Security - Security
--- ---
### Informationen zu Transport Layer Security ### Informationen zu Transport Layer Security
TLS, das SSL ersetzt hat, wird beim erstmaligen Start von {% data variables.product.prodname_ghe_server %} mit einem selbstsignierten Zertifikat aktiviert und konfiguriert. Da Webbrowser und Git-Clients selbstsignierten Zertifikaten nicht vertrauen, melden diese Clients Zertifikatswarnungen, bis Sie TLS deaktivieren oder ein von einer vertrauenswürdigen Zertifizierungsstelle wie Let's Encrypt signiertes Zertifikat hochladen. TLS, das SSL ersetzt hat, wird beim erstmaligen Start von {% data variables.product.prodname_ghe_server %} mit einem selbstsignierten Zertifikat aktiviert und konfiguriert. Da Webbrowser und Git-Clients selbstsignierten Zertifikaten nicht vertrauen, melden diese Clients Zertifikatswarnungen, bis Sie TLS deaktivieren oder ein von einer vertrauenswürdigen Zertifizierungsstelle wie Let's Encrypt signiertes Zertifikat hochladen.

View File

@@ -16,18 +16,17 @@ topics:
- Networking - Networking
- Security - Security
--- ---
### Informationen zur Subdomain-Isolation ### Informationen zur Subdomain-Isolation
Die Subdomain-Isolation mindert Cross-Site-Scripting und andere verwandte Schwachstellen. Weitere Informationen finden Sie unter „[Cross-Site-Scripting](https://de.wikipedia.org/wiki/Cross-Site-Scripting)“ auf Wikipedia. Es wird dringend empfohlen, die Subdomain-Isolation auf {% data variables.product.product_location %} zu aktivieren. Die Subdomain-Isolation mindert Cross-Site-Scripting und andere verwandte Schwachstellen. Weitere Informationen finden Sie unter „[Cross-Site-Scripting](https://de.wikipedia.org/wiki/Cross-Site-Scripting)“ auf Wikipedia. Es wird dringend empfohlen, die Subdomain-Isolation auf {% data variables.product.product_location %} zu aktivieren.
Bei aktivierter Subdomain-Isolation ersetzt {% data variables.product.prodname_ghe_server %} verschiedene Pfade durch Subdomains. Bei aktivierter Subdomain-Isolation ersetzt {% data variables.product.prodname_ghe_server %} verschiedene Pfade durch Subdomains. After enabling subdomain isolation, attempts to access the previous paths for some user-supplied content, such as `http(s)://HOSTNAME/raw/`, may return `404` errors.
{% if currentVersion == "enterprise-server@2.22" %} {% if currentVersion == "enterprise-server@2.22" %}
To use Docker with To use Docker with {% data variables.product.prodname_registry %}, you must also enable subdomain isolation. For more information, see "[Working with the Docker registry](/enterprise/{{ currentVersion }}/user/packages/working-with-a-github-packages-registry/working-with-the-docker-registry)."
{% data variables.product.prodname_registry %}, you must also enable subdomain isolation. For more information, see "[Working with the Docker registry](/enterprise/{{ currentVersion }}/user/packages/working-with-a-github-packages-registry/working-with-the-docker-registry)."
{% data reusables.package_registry.packages-ghes-release-stage %} {% data reusables.package_registry.packages-ghes-release-stage %}
|
{% endif %} {% endif %}
| Pfad ohne Subdomain-Isolation | Pfad mit Subdomain-Isolation | | Pfad ohne Subdomain-Isolation | Pfad mit Subdomain-Isolation |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |

View File

@@ -18,6 +18,7 @@ topics:
- Networking - Networking
- Security - Security
--- ---
### Verwaltungsports ### Verwaltungsports
Einige Verwaltungsports sind zum Konfigurieren von {% data variables.product.product_location %} und zum Ausführen bestimmter Features erforderlich. Verwaltungsports sind für die einfache Verwendung von Anwendungen durch Endbenutzer nicht erforderlich. Einige Verwaltungsports sind zum Konfigurieren von {% data variables.product.product_location %} und zum Ausführen bestimmter Features erforderlich. Verwaltungsports sind für die einfache Verwendung von Anwendungen durch Endbenutzer nicht erforderlich.

View File

@@ -15,6 +15,7 @@ topics:
- Infrastructure - Infrastructure
- Networking - Networking
--- ---
{% data reusables.enterprise_clustering.load_balancer_intro %} {% data reusables.enterprise_clustering.load_balancer_intro %}
{% data reusables.enterprise_clustering.load_balancer_dns %} {% data reusables.enterprise_clustering.load_balancer_dns %}

View File

@@ -14,6 +14,7 @@ topics:
- Infrastructure - Infrastructure
- Networking - Networking
--- ---
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_site_admin_settings.management-console %}
{% data reusables.enterprise_management_console.hostname-menu-item %} {% data reusables.enterprise_management_console.hostname-menu-item %}

View File

@@ -12,6 +12,7 @@ topics:
redirect_from: redirect_from:
- /admin/configuration/about-enterprise-configuration - /admin/configuration/about-enterprise-configuration
--- ---
{% if enterpriseServerVersions contains currentVersion %} {% if enterpriseServerVersions contains currentVersion %}
{% data reusables.enterprise_site_admin_settings.about-the-site-admin-dashboard %} For more information, see "[Site admin dashboard](/admin/configuration/site-admin-dashboard)." {% data reusables.enterprise_site_admin_settings.about-the-site-admin-dashboard %} For more information, see "[Site admin dashboard](/admin/configuration/site-admin-dashboard)."
@@ -21,8 +22,7 @@ redirect_from:
{% endif %} {% endif %}
{% if currentVersion == "github-ae@latest" %} {% if currentVersion == "github-ae@latest" %}
The first time you access your enterprise, you will complete an initial configuration to get The first time you access your enterprise, you will complete an initial configuration to get {% data variables.product.product_name %} ready to use. The initial configuration includes connecting your enterprise with an identity provider (IdP), authenticating with SAML SSO, configuring policies for repositories and organizations in your enterprise, and configuring SMTP for outbound email. For more information, see "[Initializing {% data variables.product.prodname_ghe_managed %}](/admin/configuration/initializing-github-ae)."
{% data variables.product.product_name %} ready to use. The initial configuration includes connecting your enterprise with an identity provider (IdP), authenticating with SAML SSO, configuring policies for repositories and organizations in your enterprise, and configuring SMTP for outbound email. For more information, see "[Initializing {% data variables.product.prodname_ghe_managed %}](/admin/configuration/initializing-github-ae)."
Later, you can use the site admin dashboard and enterprise settings to further configure your enterprise, manage users, organizations and repositories, and set policies that reduce risk and increase quality. Later, you can use the site admin dashboard and enterprise settings to further configure your enterprise, manage users, organizations and repositories, and set policies that reduce risk and increase quality.

View File

@@ -20,6 +20,7 @@ topics:
- Fundamentals - Fundamentals
- SSH - SSH
--- ---
### Informationen zum Verwaltungsshellzugriff ### Informationen zum Verwaltungsshellzugriff
Wenn Sie über SSH-Zugriff auf die Verwaltungsshell verfügen, können Sie die Befehlszeilendienstprogramme von {% data variables.product.prodname_ghe_server %} ausführen. Der SSH-Zugriff eignet sich zudem zur Fehlerbehebung, zum Ausführen von Backups und zum Konfigurieren der Replikation. Der SSH-Verwaltungszugriff wird getrennt vom Git SSH-Zugriff verwaltet und ist nur über Port 122 zugänglich. Wenn Sie über SSH-Zugriff auf die Verwaltungsshell verfügen, können Sie die Befehlszeilendienstprogramme von {% data variables.product.prodname_ghe_server %} ausführen. Der SSH-Zugriff eignet sich zudem zur Fehlerbehebung, zum Ausführen von Backups und zum Konfigurieren der Replikation. Der SSH-Verwaltungszugriff wird getrennt vom Git SSH-Zugriff verwaltet und ist nur über Port 122 zugänglich.

View File

@@ -18,6 +18,7 @@ topics:
- Enterprise - Enterprise
- Fundamentals - Fundamentals
--- ---
### Informationen zur {% data variables.enterprise.management_console %} ### Informationen zur {% data variables.enterprise.management_console %}
{% data variables.enterprise.management_console %} für grundlegende Verwaltungsaktivitäten verwenden: {% data variables.enterprise.management_console %} für grundlegende Verwaltungsaktivitäten verwenden:

View File

@@ -15,6 +15,7 @@ topics:
- Enterprise - Enterprise
- SSH - SSH
--- ---
Sie können diese Befehle überall in der VM ausführen, nachdem Sie sich als ein SSH-Administratorbenutzer angemeldet haben. Weitere Informationen finden Sie unter „[Auf die Verwaltungsshell (SSH) zugreifen](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/)“. Sie können diese Befehle überall in der VM ausführen, nachdem Sie sich als ein SSH-Administratorbenutzer angemeldet haben. Weitere Informationen finden Sie unter „[Auf die Verwaltungsshell (SSH) zugreifen](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/)“.
### Allgemein ### Allgemein
@@ -24,8 +25,7 @@ Sie können diese Befehle überall in der VM ausführen, nachdem Sie sich als ei
Dieses Dienstprogramm liegt im oberen Bereich jeder {% data variables.product.prodname_enterprise %}-Seite einen Banner fest. Diesen können Sie verwenden, um Ihren Benutzer eine Mitteilung zu übermitteln. Dieses Dienstprogramm liegt im oberen Bereich jeder {% data variables.product.prodname_enterprise %}-Seite einen Banner fest. Diesen können Sie verwenden, um Ihren Benutzer eine Mitteilung zu übermitteln.
{% if currentVersion ver_gt "enterprise-server@2.21" %} {% if currentVersion ver_gt "enterprise-server@2.21" %}
You can also set an announcement banner using the enterprise settings on You can also set an announcement banner using the enterprise settings on {% data variables.product.product_name %}. Weitere Informationen finden Sie unter „[Benutzermeldungen auf Ihrer Instanz anpassen](/enterprise/admin/user-management/customizing-user-messages-on-your-instance#creating-a-global-announcement-banner)“.
{% data variables.product.product_name %}. Weitere Informationen finden Sie unter „[Benutzermeldungen auf Ihrer Instanz anpassen](/enterprise/admin/user-management/customizing-user-messages-on-your-instance#creating-a-global-announcement-banner)“.
{% endif %} {% endif %}
```shell ```shell

View File

@@ -12,6 +12,7 @@ topics:
- Enterprise - Enterprise
- Fundamentals - Fundamentals
--- ---
### Bildzwischenspeicherung anpassen ### Bildzwischenspeicherung anpassen
Sie können auswählen, wie lange {% data variables.product.product_location %} Avatare speichert. Beim Erhöhen der Cache-Zeit erhöhen Sie die Zeit, die der Avatar eines Benutzers zum Laden benötigt. Wird die Cache-Zeit mit einem zu niedrigen Wert konfiguriert, kann dies zur Überladung von {% data variables.product.product_location %}-Arbeitsprozessen führen. Sie können auswählen, wie lange {% data variables.product.product_location %} Avatare speichert. Beim Erhöhen der Cache-Zeit erhöhen Sie die Zeit, die der Avatar eines Benutzers zum Laden benötigt. Wird die Cache-Zeit mit einem zu niedrigen Wert konfiguriert, kann dies zur Überladung von {% data variables.product.product_location %}-Arbeitsprozessen führen.
@@ -19,7 +20,5 @@ Sie können auswählen, wie lange {% data variables.product.product_location %}
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.access-settings %}
{% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_site_admin_settings.management-console %}
3. Klicke in der linken Seitenleiste auf **Applications** (Anwendungen). ![Registerkarte „Applications“ (Anwendungen) auf der Seitenleiste mit den Einstellungen](/assets/images/enterprise/management-console/sidebar-applications.png) 3. Klicke in der linken Seitenleiste auf **Applications** (Anwendungen). ![Registerkarte „Applications“ (Anwendungen) auf der Seitenleiste mit den Einstellungen](/assets/images/enterprise/management-console/sidebar-applications.png)
4. Under "Avatar image cache time (seconds)", type the number of seconds that you would like 4. Geben Sie unter Avatar image cache time (seconds)“ (Avatarbild-Cache-Zeit (Sekunden)) ein, wie viele Sekunden {% data variables.product.product_location %} Avatarbilder zwischenspeichern soll. ![Formularfeld für die Zwischenspeicherung von Avatarbildern](/assets/images/enterprise/management-console/add-image-caching-value-field.png)
{% data variables.product.product_location %} to cache avatar images.
![Formularfeld für die Zwischenspeicherung von Avatarbildern](/assets/images/enterprise/management-console/add-image-caching-value-field.png)
{% data reusables.enterprise_management_console.save-settings %} {% data reusables.enterprise_management_console.save-settings %}

View File

@@ -24,6 +24,7 @@ topics:
- Fundamentals - Fundamentals
- Infrastructure - Infrastructure
--- ---
### Informationen zu {% data variables.product.prodname_enterprise_backup_utilities %} ### Informationen zu {% data variables.product.prodname_enterprise_backup_utilities %}
{% data variables.product.prodname_enterprise_backup_utilities %} ist ein Backup-System, das Sie auf einem separaten Host installieren, der in regelmäßigen Intervallen über eine sichere SSH-Netzwerkverbindung Backup-Snapshots von {% data variables.product.product_location %} erstellt. Mit einem Snapshot können Sie eine vorhandene {% data variables.product.prodname_ghe_server %}-Instanz in einem vorherigen Zustand auf dem Backup-Host wiederherstellen. {% data variables.product.prodname_enterprise_backup_utilities %} ist ein Backup-System, das Sie auf einem separaten Host installieren, der in regelmäßigen Intervallen über eine sichere SSH-Netzwerkverbindung Backup-Snapshots von {% data variables.product.product_location %} erstellt. Mit einem Snapshot können Sie eine vorhandene {% data variables.product.prodname_ghe_server %}-Instanz in einem vorherigen Zustand auf dem Backup-Host wiederherstellen.

View File

@@ -12,6 +12,7 @@ topics:
redirect_from: redirect_from:
- /admin/configuration/configuring-data-encryption-for-your-enterprise - /admin/configuration/configuring-data-encryption-for-your-enterprise
--- ---
{% note %} {% note %}
**Note:** Configuring encryption at rest with a customer-managed key is currently in beta and subject to change. **Note:** Configuring encryption at rest with a customer-managed key is currently in beta and subject to change.

View File

@@ -18,6 +18,7 @@ topics:
- Infrastructure - Infrastructure
- Notifications - Notifications
--- ---
{% if currentVersion == "github-ae@latest" %} {% if currentVersion == "github-ae@latest" %}
Enterprise owners can configure email for notifications. Enterprise owners can configure email for notifications.
{% endif %} {% endif %}
@@ -166,9 +167,7 @@ Wenn sich {% data variables.product.product_location %} hinter einer Firewall be
#### Support kontaktieren #### Support kontaktieren
{% if enterpriseServerVersions contains currentVersion %} {% if enterpriseServerVersions contains currentVersion %}
If you're still unable to resolve the problem, contact Kontaktieren Sie {% data variables.contact.contact_ent_support %}, falls Sie das Problem weiterhin nicht beheben können. Hängen Sie die Ausgabedatei von `http(s)://[hostname]/setup/diagnostics` an Ihre E-Mail an, um uns bei der Fehlerbehebung zu unterstützen.
{% data variables.contact.contact_ent_support %}. Hängen Sie die Ausgabedatei von `http(s)://[hostname]/setup/diagnostics` an Ihre E-Mail an, um uns bei der Fehlerbehebung zu unterstützen.
{% elsif currentVersion == "github-ae@latest" %} {% elsif currentVersion == "github-ae@latest" %}
You can contact You can contact {% data variables.contact.github_support %} for help configuring email for notifications to be sent through your SMTP server. For more information, see "[Receiving help from {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support)."
{% data variables.contact.github_support %} for help configuring email for notifications to be sent through your SMTP server. For more information, see "[Receiving help from {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support)."
{% endif %} {% endif %}

View File

@@ -17,6 +17,7 @@ topics:
- Enterprise - Enterprise
- Pages - Pages
--- ---
### Enabling public sites for {% data variables.product.prodname_pages %} ### Enabling public sites for {% data variables.product.prodname_pages %}
{% if enterpriseServerVersions contains currentVersion %}If private mode is enabled on your enterprise, the {% else %}The {% endif %}public cannot access {% data variables.product.prodname_pages %} sites hosted by your enterprise unless you enable public sites. {% if enterpriseServerVersions contains currentVersion %}If private mode is enabled on your enterprise, the {% else %}The {% endif %}public cannot access {% data variables.product.prodname_pages %} sites hosted by your enterprise unless you enable public sites.
@@ -44,8 +45,7 @@ topics:
### Disabling {% data variables.product.prodname_pages %} for your enterprise ### Disabling {% data variables.product.prodname_pages %} for your enterprise
{% if enterpriseServerVersions contains currentVersion %} {% if enterpriseServerVersions contains currentVersion %}
If subdomain isolation is disabled for your enterprise, you should also disable If subdomain isolation is disabled for your enterprise, you should also disable {% data variables.product.prodname_pages %} to protect yourself from potential security vulnerabilities. Weitere Informationen finden Sie unter „[Subdomain-Isolation aktivieren](/admin/configuration/enabling-subdomain-isolation)“.
{% data variables.product.prodname_pages %} to protect yourself from potential security vulnerabilities. Weitere Informationen finden Sie unter „[Subdomain-Isolation aktivieren](/admin/configuration/enabling-subdomain-isolation)“.
{% endif %} {% endif %}
{% if enterpriseServerVersions contains currentVersion %} {% if enterpriseServerVersions contains currentVersion %}

View File

@@ -13,6 +13,7 @@ topics:
- Infrastructure - Infrastructure
- Performance - Performance
--- ---
### Begrenzungen für {% data variables.product.prodname_enterprise_api %} aktivieren ### Begrenzungen für {% data variables.product.prodname_enterprise_api %} aktivieren
Die Aktivierung von Begrenzungen auf {% data variables.product.prodname_enterprise_api %} kann verhindern, dass einzelne oder nicht authentifizierte Benutzer Ressourcen übermäßig verwenden. For more information, see "[Rate Limiting](/enterprise/{{ page.version }}/v3/#rate-limiting)." Die Aktivierung von Begrenzungen auf {% data variables.product.prodname_enterprise_api %} kann verhindern, dass einzelne oder nicht authentifizierte Benutzer Ressourcen übermäßig verwenden. For more information, see "[Rate Limiting](/enterprise/{{ page.version }}/v3/#rate-limiting)."

View File

@@ -18,6 +18,7 @@ topics:
- Infrastructure - Infrastructure
- Networking - Networking
--- ---
### NTP-Standardserver ändern ### NTP-Standardserver ändern
{% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.access-settings %}

View File

@@ -20,6 +20,7 @@ topics:
- Maintenance - Maintenance
- Upgrades - Upgrades
--- ---
### Informationen zum Wartungsmodus ### Informationen zum Wartungsmodus
Bei einigen Vorgangstypen müssen Sie {% data variables.product.product_location %} offline nehmen und in den Wartungsmodus versetzen. Bei einigen Vorgangstypen müssen Sie {% data variables.product.product_location %} offline nehmen und in den Wartungsmodus versetzen.

View File

@@ -21,6 +21,7 @@ topics:
- Privacy - Privacy
- Security - Security
--- ---
Sie müssen den privaten Modus aktivieren, wenn {% data variables.product.product_location %} über das Internet öffentlich zugänglich ist. Im privaten Modus ist es Benutzern nicht möglich, Repositorys anonym über `git://` zu klonen. Wenn die integrierte Authentifizierung aktiviert ist, muss ein Administrator neue Benutzer einladen, um ein Konto auf der Instanz zu erstellen. Weitere Informationen finden Sie unter „[Integrierte Authentifizierung verwenden](/enterprise/{{ currentVersion }}/admin/guides/user-management/using-built-in-authentication)“. Sie müssen den privaten Modus aktivieren, wenn {% data variables.product.product_location %} über das Internet öffentlich zugänglich ist. Im privaten Modus ist es Benutzern nicht möglich, Repositorys anonym über `git://` zu klonen. Wenn die integrierte Authentifizierung aktiviert ist, muss ein Administrator neue Benutzer einladen, um ein Konto auf der Instanz zu erstellen. Weitere Informationen finden Sie unter „[Integrierte Authentifizierung verwenden](/enterprise/{{ currentVersion }}/admin/guides/user-management/using-built-in-authentication)“.
{% data reusables.enterprise_installation.image-urls-viewable-warning %} {% data reusables.enterprise_installation.image-urls-viewable-warning %}

View File

@@ -9,21 +9,29 @@ topics:
redirect_from: redirect_from:
- /admin/configuration/initializing-github-ae - /admin/configuration/initializing-github-ae
--- ---
### About initialization ### About initialization
Before you can initialize your enterprise, you must purchase {% data variables.product.product_name %}. For more information, contact {% data variables.contact.contact_enterprise_sales %}. Before you can initialize your enterprise, you must purchase {% data variables.product.product_name %}. For more information, contact {% data variables.contact.contact_enterprise_sales %}.
After you purchase {% data variables.product.product_name %}, we'll ask you to provide an email address and username for the person you want to initialize the enterprise. Your dedicated technical account manager in {% data variables.contact.enterprise_support %} will create an account for the enterprise owner and send the enterprise owner an email to log into {% data variables.product.product_name %} and complete the initialization. Make sure the information you provide matches the intended enterprise owner's information in the IdP. For more information about enterprise owners, see "[Roles in an enterprise](/github/setting-up-and-managing-your-enterprise/roles-in-an-enterprise#enterprise-owner)." After you purchase {% data variables.product.product_name %}, we'll ask you to provide an email address and username for the person you want to initialize the enterprise. Your dedicated technical account manager in {% data variables.contact.enterprise_support %} will create an account for the enterprise owner and send the enterprise owner an email to log into {% data variables.product.product_name %} and complete the initialization. Make sure the information you provide matches the intended enterprise owner's information in the IdP. For more information about enterprise owners, see "[Roles in an enterprise](/github/setting-up-and-managing-your-enterprise/roles-in-an-enterprise#enterprise-owner)."
{% note %}
**Hinweise**:
- If the initial password for {% data variables.product.prodname_ghe_managed %} expires before you finish initialization, you can request a password reset at any time from your invitation email.
- Store the initial username and password for {% data variables.product.prodname_ghe_managed %} securely in a password manager. {% data reusables.saml.contact-support-if-your-idp-is-unavailable %}
{% endnote %}
During initialization, the enterprise owner will name your enterprise, configure SAML SSO, create policies for all organizations in your enterprise, and configure a support contact for your users. During initialization, the enterprise owner will name your enterprise, configure SAML SSO, create policies for all organizations in your enterprise, and configure a support contact for your users.
### Vorrausetzungen ### Vorrausetzungen
{% note %} To begin initialization, you will receive an invitation email from {% data variables.product.company_short %}. Before you configure {% data variables.product.prodname_ghe_managed %}, review the following prerequisites.
**Note**: Before you begin initialization, store the initial username and password for {% data variables.product.prodname_ghe_managed %} securely in a password manager. {% data reusables.saml.contact-support-if-your-idp-is-unavailable %}
{% endnote %}
1. To initialize {% data variables.product.product_location %}, you must have a SAML identity provider (IdP). {% data reusables.saml.ae-uses-saml-sso %} To connect your IdP to your enterprise during initialization, you should have your IdP's Entity ID (SSO) URL, Issuer ID URL, and public signing certificate (Base64-encoded). For more information, see "[About identity and access management for your enterprise](/admin/authentication/about-identity-and-access-management-for-your-enterprise)." 1. To initialize {% data variables.product.product_location %}, you must have a SAML identity provider (IdP). {% data reusables.saml.ae-uses-saml-sso %} To connect your IdP to your enterprise during initialization, you should have your IdP's Entity ID (SSO) URL, Issuer ID URL, and public signing certificate (Base64-encoded). For more information, see "[About identity and access management for your enterprise](/admin/authentication/about-identity-and-access-management-for-your-enterprise)."

View File

@@ -11,6 +11,7 @@ topics:
redirect_from: redirect_from:
- /admin/configuration/managing-github-for-mobile-for-your-enterprise - /admin/configuration/managing-github-for-mobile-for-your-enterprise
--- ---
{% if enterpriseServerVersions contains currentVersion %} {% if enterpriseServerVersions contains currentVersion %}
{% data reusables.mobile.ghes-release-phase %} {% data reusables.mobile.ghes-release-phase %}
{% endif %} {% endif %}

View File

@@ -14,12 +14,14 @@ topics:
redirect_from: redirect_from:
- /admin/configuration/restricting-network-traffic-to-your-enterprise - /admin/configuration/restricting-network-traffic-to-your-enterprise
--- ---
### About IP allow lists ### About IP allow lists
By default, authorized users can access your enterprise from any IP address. Enterprise-Inhaber können den Zugriff auf Objekte im Besitz von Organisationen in Enterprise-Konten einschränken, indem sie eine Zulassungsliste für spezifische IP-Adressen konfigurieren. {% data reusables.identity-and-permissions.ip-allow-lists-example-and-restrictions %} By default, authorized users can access your enterprise from any IP address. Enterprise-Inhaber können den Zugriff auf Objekte im Besitz von Organisationen in Enterprise-Konten einschränken, indem sie eine Zulassungsliste für spezifische IP-Adressen konfigurieren. {% data reusables.identity-and-permissions.ip-allow-lists-example-and-restrictions %}
{% data reusables.identity-and-permissions.ip-allow-lists-cidr-notation %} {% data reusables.identity-and-permissions.ip-allow-lists-cidr-notation %}
{% data reusables.identity-and-permissions.ip-allow-lists-enable %} {% data reusables.identity-and-permissions.ip-allow-lists-enable %} {% data reusables.identity-and-permissions.ip-allow-lists-enterprise %}
Du kannst auch zugelassene IP-Adressen für eine einzelne Organisation konfigurieren. Weitere Informationen findest Du auf „[Zugelassene IP-Adressen für Deine Organisation verwalten](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization)." Du kannst auch zugelassene IP-Adressen für eine einzelne Organisation konfigurieren. Weitere Informationen findest Du auf „[Zugelassene IP-Adressen für Deine Organisation verwalten](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization)."
@@ -36,6 +38,10 @@ For instance-level restrictions using Azure NSGs, contact {% data variables.cont
{% data reusables.identity-and-permissions.ip-allow-lists-add-description %} {% data reusables.identity-and-permissions.ip-allow-lists-add-description %}
{% data reusables.identity-and-permissions.ip-allow-lists-add-entry %} {% data reusables.identity-and-permissions.ip-allow-lists-add-entry %}
### Allowing access by {% data variables.product.prodname_github_apps %}
{% data reusables.identity-and-permissions.ip-allow-lists-githubapps-enterprise %}
### Zulässige IP-Adressen aktivieren ### Zulässige IP-Adressen aktivieren
{% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.access-enterprise %}

View File

@@ -13,6 +13,7 @@ topics:
- Enterprise - Enterprise
- Fundamentals - Fundamentals
--- ---
Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf {% octicon "rocket" aria-label="The rocket ship" %}, um auf das Dashboard zuzugreifen.![Rocket ship icon for accessing site admin settings](/assets/images/enterprise/site-admin-settings/access-new-settings.png) Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf {% octicon "rocket" aria-label="The rocket ship" %}, um auf das Dashboard zuzugreifen.![Rocket ship icon for accessing site admin settings](/assets/images/enterprise/site-admin-settings/access-new-settings.png)
{% if currentVersion ver_gt "enterprise-server@2.21" %} {% if currentVersion ver_gt "enterprise-server@2.21" %}

View File

@@ -18,6 +18,7 @@ topics:
- Security - Security
- Troubleshooting - Troubleshooting
--- ---
### Passphrase aus Ihrer Schlüsseldatei entfernen ### Passphrase aus Ihrer Schlüsseldatei entfernen
Wenn Sie über eine Linux-Maschine mit installiertem OpenSSL verfügen, können Sie Ihre Passphrase entfernen. Wenn Sie über eine Linux-Maschine mit installiertem OpenSSL verfügen, können Sie Ihre Passphrase entfernen.

View File

@@ -14,6 +14,7 @@ topics:
redirect_from: redirect_from:
- /admin/configuration/verifying-or-approving-a-domain-for-your-enterprise - /admin/configuration/verifying-or-approving-a-domain-for-your-enterprise
--- ---
### About verification of domains ### About verification of domains
{% data reusables.enterprise-accounts.domains-about-verification %} {% data reusables.enterprise-accounts.domains-about-verification %}

Some files were not shown because too many files have changed in this diff Show More