Merge branch 'main' into sophietheking-7793
|
@ -18,7 +18,7 @@ If you aren't comfortable going through the steps alone, sync up with a docs eng
|
|||
```
|
||||
script/update-enterprise-dates.js
|
||||
```
|
||||
- [ ] Create REST files based on previous version. Copy the latest GHES version of the dereferenced file from `lib/rest/static/dereferenced` to a new file in the same directory for the new GHES release. Ex, `cp lib/rest/static/dereferenced/ghes-3.4.deref.json lib/rest/static/dereferenced/ghes-3.5.deref.json`. Then run `script/rest/updated-files.js --decorate-only` and check in the resulting files.
|
||||
- [ ] Create REST files based on previous version. Copy the latest GHES version of the dereferenced file from `lib/rest/static/dereferenced` to a new file in the same directory for the new GHES release. Ex, `cp lib/rest/static/dereferenced/ghes-3.4.deref.json lib/rest/static/dereferenced/ghes-3.5.deref.json`. Then run `script/rest/update-files.js --decorate-only` and check in the resulting files.
|
||||
|
||||
- [ ] Create GraphQL files based on previous version:
|
||||
|
||||
|
|
|
@ -52,13 +52,6 @@ jobs:
|
|||
ISSUE_TITLE: ${{ github.event.issue.title }}
|
||||
ISSUE_BODY: ${{ github.event.issue.body }}
|
||||
|
||||
- name: Comment on the new issue
|
||||
run: gh issue comment $NEW_ISSUE --body "This issue was originally opened in the open source repo as $OLD_ISSUE"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES}}
|
||||
NEW_ISSUE: ${{ env.NEW_ISSUE }}
|
||||
OLD_ISSUE: ${{ github.event.issue.html_url }}
|
||||
|
||||
- name: Comment on the old issue
|
||||
run: gh issue comment $OLD_ISSUE --body "Thank you for opening this issue! Updates to the REST/GraphQL API description must be made internally. I have copied your issue to an internal issue, so I will close this issue."
|
||||
env:
|
||||
|
@ -70,3 +63,10 @@ jobs:
|
|||
env:
|
||||
GITHUB_TOKEN: ${{secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES}}
|
||||
OLD_ISSUE: ${{ github.event.issue.html_url }}
|
||||
|
||||
- name: Comment on the new issue
|
||||
run: gh issue comment $NEW_ISSUE --body "This issue was originally opened in the open source repo as $OLD_ISSUE"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES}}
|
||||
NEW_ISSUE: ${{ env.NEW_ISSUE }}
|
||||
OLD_ISSUE: ${{ github.event.issue.html_url }}
|
||||
|
|
|
@ -9,6 +9,7 @@ on:
|
|||
types: [labeled]
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: none
|
||||
|
||||
jobs:
|
||||
|
|
|
@ -23,6 +23,9 @@ env:
|
|||
# Setting this will activate the jest tests that depend on actually
|
||||
# sending real search queries to Elasticsearch
|
||||
ELASTICSEARCH_URL: http://localhost:9200/
|
||||
# Hopefully the name is clear enough. By enabling this, we're testing
|
||||
# the future code.
|
||||
ENABLE_SEARCH_RESULTS_PAGE: true
|
||||
|
||||
jobs:
|
||||
test:
|
||||
|
@ -52,7 +55,7 @@ jobs:
|
|||
if: ${{ matrix.test-group == 'content' }}
|
||||
uses: getong/elasticsearch-action@95b501ab0c83dee0aac7c39b7cea3723bef14954
|
||||
with:
|
||||
elasticsearch version: '7.17.5'
|
||||
elasticsearch version: '7.11.1'
|
||||
host port: 9200
|
||||
container port: 9200
|
||||
host node port: 9300
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
.DS_Store
|
||||
.env
|
||||
.vscode/settings.json
|
||||
.idea/
|
||||
/node_modules/
|
||||
npm-debug.log
|
||||
coverage/
|
||||
|
|
Двоичные данные
assets/images/help/business-accounts/project-visibility-change-drop-down.png
Normal file
После Ширина: | Высота: | Размер: 56 KiB |
Двоичные данные
assets/images/help/classroom/classroom-settings-click-google-classroom.png
Normal file
После Ширина: | Высота: | Размер: 28 KiB |
После Ширина: | Высота: | Размер: 51 KiB |
После Ширина: | Высота: | Размер: 276 KiB |
После Ширина: | Высота: | Размер: 232 KiB |
После Ширина: | Высота: | Размер: 80 KiB |
После Ширина: | Высота: | Размер: 178 KiB |
После Ширина: | Высота: | Размер: 23 KiB |
После Ширина: | Высота: | Размер: 188 KiB |
После Ширина: | Высота: | Размер: 162 KiB |
После Ширина: | Высота: | Размер: 173 KiB |
После Ширина: | Высота: | Размер: 107 KiB |
После Ширина: | Высота: | Размер: 36 KiB |
После Ширина: | Высота: | Размер: 61 KiB |
После Ширина: | Высота: | Размер: 6.3 KiB |
После Ширина: | Высота: | Размер: 68 KiB |
Двоичные данные
assets/images/help/settings/ssh-sso-authorize.png
До Ширина: | Высота: | Размер: 66 KiB После Ширина: | Высота: | Размер: 18 KiB |
Двоичные данные
assets/images/help/settings/ssh-sso-button.png
До Ширина: | Высота: | Размер: 27 KiB После Ширина: | Высота: | Размер: 16 KiB |
После Ширина: | Высота: | Размер: 48 KiB |
После Ширина: | Высота: | Размер: 132 KiB |
|
@ -59,8 +59,9 @@ export const PlaygroundContextProvider = (props: { children: React.ReactNode })
|
|||
const router = useRouter()
|
||||
const [activeSectionIndex, setActiveSectionIndex] = useState(0)
|
||||
const [scrollToSection, setScrollToSection] = useState<number>()
|
||||
const path = router.asPath.split('?')[0].split('#')[0]
|
||||
|
||||
const path = router.asPath.includes('@latest')
|
||||
? router.asPath.split('?')[0].split('#')[0].split('@latest')[1]
|
||||
: router.asPath.split('?')[0].split('#')[0]
|
||||
const relevantArticles = articles.filter(({ slug }) => slug === path)
|
||||
|
||||
const { langId } = router.query
|
||||
|
|
|
@ -43,9 +43,14 @@ export function getShellExample(operation: Operation, codeSample: CodeSample) {
|
|||
}
|
||||
}
|
||||
|
||||
let authHeader = '-H "Authorization: Bearer <YOUR-TOKEN>"'
|
||||
if (operation.subcategory === 'management-console') {
|
||||
authHeader = '-u "api_key:your-password"'
|
||||
}
|
||||
|
||||
const args = [
|
||||
operation.verb !== 'get' && `-X ${operation.verb.toUpperCase()}`,
|
||||
`-H "Accept: ${defaultAcceptHeader}" \\ \n -H "Authorization: Bearer <YOUR-TOKEN>"`,
|
||||
`-H "Accept: ${defaultAcceptHeader}" \\ \n ${authHeader}`,
|
||||
`${operation.serverUrl}${requestPath}`,
|
||||
requestBodyParams,
|
||||
].filter(Boolean)
|
||||
|
|
|
@ -15,7 +15,7 @@ export const CodeLanguagePicker = () => {
|
|||
<SubNav.Link
|
||||
key={language.id}
|
||||
as={Link}
|
||||
href={`${routePath}?langId=${language.id}`}
|
||||
href={`/${router.locale}${routePath}?langId=${language.id}`}
|
||||
selected={language.id === currentLanguage.id}
|
||||
>
|
||||
{language.label}
|
||||
|
|
|
@ -53,18 +53,26 @@ const article: PlaygroundArticleT = {
|
|||
|
||||
To set up your repository to use a custom dev container, you will need to create one or more \`devcontainer.json\` files. You can add these either from a template, in Visual Studio Code, or you can write your own. For more information on dev container configurations, see "[Introduction to dev containers](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project)".
|
||||
|
||||
1. Access the Command Palette (<kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>P</kbd> / <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd>), then start typing "dev container". Select **Codespaces: Add Development Container Configuration Files...**.
|
||||
![Codespaces: Add Development Container Configuration Files... in the command palette](/assets/images/help/codespaces/add-prebuilt-container-command.png)
|
||||
1. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "dev container". Select **Codespaces: Add Development Container Configuration Files...**.
|
||||
|
||||
![Codespaces: Add Development Container Configuration Files... in the Command Palette](/assets/images/help/codespaces/add-prebuilt-container-command.png)
|
||||
|
||||
2. For this example, click **C# (.NET)**. If you need additional features you can select any container that’s specific to C# (.NET) or a combination of tools such as C# (.NET) and MS SQL.
|
||||
|
||||
![Select C# (.NET) option from the list](/assets/images/help/codespaces/add-dotnet-prebuilt-container.png)
|
||||
![Select C# (.NET) option from the list](/assets/images/help/codespaces/add-dotnet-prebuilt-container.png)
|
||||
|
||||
3. Click the recommended version of .NET.
|
||||
![.NET version selection](/assets/images/help/codespaces/add-dotnet-version.png)
|
||||
|
||||
![.NET version selection](/assets/images/help/codespaces/add-dotnet-version.png)
|
||||
|
||||
4. Accept the default option to add Node.js to your customization.
|
||||
![Add Node.js selection](/assets/images/help/codespaces/dotnet-options.png)
|
||||
|
||||
![Add Node.js selection](/assets/images/help/codespaces/dotnet-options.png)
|
||||
|
||||
5. Select any additional features to install and click **OK**.
|
||||
6. Access the command palette (<kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>P</kbd> / <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd>), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
6. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
@ -197,13 +205,16 @@ const article: PlaygroundArticleT = {
|
|||
"postCreateCommand": "dotnet restore",
|
||||
\`\`\`
|
||||
|
||||
4. Access the command palette (\`Shift + Command + P\`/ \`Ctrl + Shift + P\`), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
Rebuilding inside your codespace ensures your changes work as expected before you commit the changes to the repository. If something does result in a failure, you’ll be placed in a codespace with a recovery container that you can rebuild from to keep adjusting your container.
|
||||
4. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
|
||||
Rebuilding inside your codespace ensures your changes work as expected before you commit the changes to the repository. If something does result in a failure, you’ll be placed in a codespace with a recovery container that you can rebuild from to keep adjusting your container.
|
||||
|
||||
5. Check your changes were successfully applied by verifying the "Code Spell Checker" extension was installed.
|
||||
|
||||
![Extensions list](/assets/images/help/codespaces/dotnet-extensions.png)
|
||||
![Extensions list](/assets/images/help/codespaces/dotnet-extensions.png)
|
||||
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
@ -217,9 +228,10 @@ const article: PlaygroundArticleT = {
|
|||
|
||||
1. Run your application by pressing \`F5\` or entering \`dotnet watch run\` in your terminal.
|
||||
|
||||
2. When your project starts, you should see a message in the bottom right corner with a prompt to connect to the port your project uses.
|
||||
2. When your project starts, you should see a message in the bottom right corner with a prompt to connect to the port your project uses.
|
||||
|
||||
![Port forwarding toast](/assets/images/help/codespaces/python-port-forwarding.png)
|
||||
|
||||
![Port forwarding toast](/assets/images/help/codespaces/python-port-forwarding.png)
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
|
|
@ -51,15 +51,23 @@ const article: PlaygroundArticleT = {
|
|||
|
||||
To set up your repository to use a custom dev container, you will need to create one or more \`devcontainer.json\` files. You can add these either from a template, in Visual Studio Code, or you can write your own. For more information on dev container configurations, see "[Introduction to dev containers](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project)".
|
||||
|
||||
1. Access the Command Palette (\`Shift + Command + P\` / \`Ctrl + Shift + P\`), then start typing "dev container". Select **Codespaces: Add Development Container Configuration Files...**.
|
||||
!["Codespaces: Add Development Container Configuration Files..." in the command palette](/assets/images/help/codespaces/add-prebuilt-container-command.png)
|
||||
1. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "dev container". Select **Codespaces: Add Development Container Configuration Files...**.
|
||||
|
||||
!["Codespaces: Add Development Container Configuration Files..." in the Command Palette](/assets/images/help/codespaces/add-prebuilt-container-command.png)
|
||||
|
||||
2. For this example, click **Java**. In practice, you could select any container that’s specific to Java or a combination of tools such as Java and Azure Functions.
|
||||
![Select Java option from the list](/assets/images/help/codespaces/add-java-prebuilt-container.png)
|
||||
|
||||
![Select Java option from the list](/assets/images/help/codespaces/add-java-prebuilt-container.png)
|
||||
|
||||
3. Click the recommended version of Java.
|
||||
![Java version selection](/assets/images/help/codespaces/add-java-version.png)
|
||||
|
||||
![Java version selection](/assets/images/help/codespaces/add-java-version.png)
|
||||
|
||||
4. Select any additional features to install and click **OK**.
|
||||
5. Access the command palette (\`Shift + Command + P\`/ \`Ctrl + Shift + P\`), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
5. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
@ -185,9 +193,11 @@ const article: PlaygroundArticleT = {
|
|||
|
||||
For more information about \`devcontainer.json\` properties, see the Visual Studio Code documentation: "[devcontainer.json reference](https://code.visualstudio.com/docs/remote/devcontainerjson-reference)."
|
||||
|
||||
4. Access the command palette (\`Shift + Command + P\`/ \`Ctrl + Shift + P\`), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
Rebuilding inside your codespace ensures your changes work as expected before you commit the changes to the repository. If something does result in a failure, you’ll be placed in a codespace with a recovery container that you can rebuild from to keep adjusting your container.
|
||||
4. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
|
||||
Rebuilding inside your codespace ensures your changes work as expected before you commit the changes to the repository. If something does result in a failure, you’ll be placed in a codespace with a recovery container that you can rebuild from to keep adjusting your container.
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
|
|
@ -29,7 +29,7 @@ const article: PlaygroundArticleT = {
|
|||
content: dedent`
|
||||
1. Under the repository name, use the **Code** drop-down menu, and in the **Codespaces** tab, click **Create codespace on BRANCH**.
|
||||
|
||||
![New codespace button](/assets/images/help/codespaces/new-codespace-button.png)
|
||||
![New codespace button](/assets/images/help/codespaces/new-codespace-button.png)
|
||||
|
||||
If you don’t see this option, GitHub Codespaces isn't available for your project. See [Access to GitHub Codespaces](/codespaces/developing-in-codespaces/creating-a-codespace#access-to-codespaces) for more information.
|
||||
|
||||
|
@ -51,15 +51,23 @@ const article: PlaygroundArticleT = {
|
|||
|
||||
To set up your repository to use a custom dev container, you will need to create one or more \`devcontainer.json\` files. You can add these either from a template, in Visual Studio Code, or you can write your own. For more information on dev container configurations, see "[Introduction to dev containers](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project)".
|
||||
|
||||
1. Access the Command Palette (\`Shift + Command + P\` / \`Ctrl + Shift + P\`), then start typing "dev container". Select **Codespaces: Add Development Container Configuration Files...**.
|
||||
!["Codespaces: Add Development Container Configuration Files..." in the command palette](/assets/images/help/codespaces/add-prebuilt-container-command.png)
|
||||
1. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "dev container". Select **Codespaces: Add Development Container Configuration Files...**.
|
||||
|
||||
!["Codespaces: Add Development Container Configuration Files..." in the Command Palette](/assets/images/help/codespaces/add-prebuilt-container-command.png)
|
||||
|
||||
2. For this example, click **Node.js**. If you need additional features you can select any container that’s specific to Node or a combination of tools such as Node and MongoDB.
|
||||
![Select Node option from the list](/assets/images/help/codespaces/add-node-prebuilt-container.png)
|
||||
|
||||
![Select Node option from the list](/assets/images/help/codespaces/add-node-prebuilt-container.png)
|
||||
|
||||
3. Click the recommended version of Node.js.
|
||||
![Node.js version selection](/assets/images/help/codespaces/add-node-version.png)
|
||||
|
||||
![Node.js version selection](/assets/images/help/codespaces/add-node-version.png)
|
||||
|
||||
4. Select any additional features to install and click **OK**.
|
||||
5. Access the command palette (\`Shift + Command + P\`/ \`Ctrl + Shift + P\`), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
5. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
@ -173,7 +181,9 @@ const article: PlaygroundArticleT = {
|
|||
With your dev container configuration added and a basic understanding of what everything does, you can now make changes to customize your environment further. In this example, you'll add properties to install npm when your codespace launches and make a list of ports inside the container available locally.
|
||||
|
||||
1. In the Explorer, select the \`devcontainer.json\` file from the tree to open it. You might have to expand the \`.devcontainer\` folder to see it.
|
||||
![devcontainer.json file in the Explorer](/assets/images/help/codespaces/devcontainers-options.png)
|
||||
|
||||
![devcontainer.json file in the Explorer](/assets/images/help/codespaces/devcontainers-options.png)
|
||||
|
||||
2. Add the following lines to your \`devcontainer.json\` file after \`extensions\`:
|
||||
|
||||
\`\`\`js{:copy}
|
||||
|
@ -182,10 +192,11 @@ const article: PlaygroundArticleT = {
|
|||
\`\`\`
|
||||
For more information about \`devcontainer.json\` properties, see the Visual Studio Code documentation: "[devcontainer.json reference](https://code.visualstudio.com/docs/remote/devcontainerjson-reference)."
|
||||
|
||||
1. Access the command palette (\`Shift + Command + P\`/ \`Ctrl + Shift + P\`), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
3. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
|
||||
Rebuilding inside your codespace ensures your changes work as expected before you commit the changes to the repository. If something does result in a failure, you’ll be placed in a codespace with a recovery container that you can rebuild from to keep adjusting your container.
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
|
||||
Rebuilding inside your codespace ensures your changes work as expected before you commit the changes to the repository. If something does result in a failure, you’ll be placed in a codespace with a recovery container that you can rebuild from to keep adjusting your container.
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
|
|
@ -29,9 +29,9 @@ const article: PlaygroundArticleT = {
|
|||
content: dedent`
|
||||
1. Under the repository name, use the **Code** drop-down menu, and in the **Codespaces** tab, click **Create codespace on BRANCH**.
|
||||
|
||||
![New codespace button](/assets/images/help/codespaces/new-codespace-button.png)
|
||||
![New codespace button](/assets/images/help/codespaces/new-codespace-button.png)
|
||||
|
||||
If you don’t see this option, GitHub Codespaces isn't available for your project. See [Access to GitHub Codespaces](/codespaces/developing-in-codespaces/creating-a-codespace#access-to-codespaces) for more information.
|
||||
If you don’t see this option, GitHub Codespaces isn't available for your project. See [Access to GitHub Codespaces](/codespaces/developing-in-codespaces/creating-a-codespace#access-to-codespaces) for more information.
|
||||
|
||||
When you create a codespace, your project is created on a remote VM that is dedicated to you. By default, the container for your codespace has many languages and runtimes including Python, pip, and Miniconda. It also includes a common set of tools like git, wget, rsync, openssh, and nano.
|
||||
|
||||
|
@ -53,17 +53,27 @@ const article: PlaygroundArticleT = {
|
|||
|
||||
To set up your repository to use a custom dev container, you will need to create one or more \`devcontainer.json\` files. You can add these either from a template, in Visual Studio Code, or you can write your own. For more information on dev container configurations, see "[Introduction to dev containers](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project)".
|
||||
|
||||
1. Access the command palette (\`Shift + Command + P\` / \`Ctrl + Shift + P\`), then start typing "dev container". Select **Codespaces: Add Development Container Configuration Files...**.
|
||||
!["Codespaces: Add Development Container Configuration Files..." in the command palette](/assets/images/help/codespaces/add-prebuilt-container-command.png)
|
||||
1. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "dev container". Select **Codespaces: Add Development Container Configuration Files...**.
|
||||
|
||||
!["Codespaces: Add Development Container Configuration Files..." in the Command Palette](/assets/images/help/codespaces/add-prebuilt-container-command.png)
|
||||
|
||||
2. For this example, click **Python 3**. If you need additional features you can select any container that’s specific to Python or a combination of tools such as Python 3 and PostgreSQL.
|
||||
![Select Python option from the list](/assets/images/help/codespaces/add-python-prebuilt-container.png)
|
||||
|
||||
![Select Python option from the list](/assets/images/help/codespaces/add-python-prebuilt-container.png)
|
||||
|
||||
3. Click the recommended version of Python.
|
||||
![Python version selection](/assets/images/help/codespaces/add-python-version.png)
|
||||
|
||||
![Python version selection](/assets/images/help/codespaces/add-python-version.png)
|
||||
|
||||
4. Accept the default option to add Node.js to your customization.
|
||||
![Add Node.js selection](/assets/images/help/codespaces/add-nodejs-selection.png)
|
||||
|
||||
![Add Node.js selection](/assets/images/help/codespaces/add-nodejs-selection.png)
|
||||
|
||||
5. Select any additional features to install and click **OK**.
|
||||
6. Access the command palette (\`Shift + Command + P\` / \`Ctrl + Shift + P\`), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
6. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
@ -197,7 +207,7 @@ const article: PlaygroundArticleT = {
|
|||
"postCreateCommand": "pip3 install --user -r requirements.txt",
|
||||
\`\`\`
|
||||
|
||||
4. Access the command palette (\`Shift + Command + P\` / \`Ctrl + Shift + P\`), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
4. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), then start typing "rebuild". Select **Codespaces: Rebuild Container**.
|
||||
|
||||
![Rebuild container option](/assets/images/help/codespaces/codespaces-rebuild.png)
|
||||
|
||||
|
|
|
@ -60,14 +60,17 @@ export function RestCodeSamples({ operation, slug }: Props) {
|
|||
}))
|
||||
|
||||
// Menu options for the language selector
|
||||
const languageSelectOptions: LanguageOptionT[] = [
|
||||
{ key: CURLKEY, text: 'cURL' },
|
||||
{ key: JSKEY, text: 'JavaScript' },
|
||||
]
|
||||
// Not all examples support the GH CLI language option. If any of
|
||||
// the examples don't support it, we don't show GH CLI as an option.
|
||||
if (!languageExamples.some((example) => example.ghcli === undefined)) {
|
||||
languageSelectOptions.push({ key: GHCLIKEY, text: 'GitHub CLI' })
|
||||
const languageSelectOptions: LanguageOptionT[] = [{ key: CURLKEY, text: 'cURL' }]
|
||||
|
||||
// Management Console operations are not supported by Octokit
|
||||
if (operation.subcategory !== 'management-console') {
|
||||
languageSelectOptions.push({ key: JSKEY, text: 'JavaScript' })
|
||||
|
||||
// Not all examples support the GH CLI language option. If any of
|
||||
// the examples don't support it, we don't show GH CLI as an option.
|
||||
if (!languageExamples.some((example) => example.ghcli === undefined)) {
|
||||
languageSelectOptions.push({ key: GHCLIKEY, text: 'GitHub CLI' })
|
||||
}
|
||||
}
|
||||
|
||||
// Menu options for the example selector
|
||||
|
|
|
@ -25,6 +25,7 @@ children:
|
|||
- /managing-the-default-branch-name-for-your-repositories
|
||||
- /managing-security-and-analysis-settings-for-your-personal-account
|
||||
- /managing-access-to-your-personal-accounts-project-boards
|
||||
- /managing-your-cookie-preferences-for-githubs-enterprise-marketing-pages
|
||||
- /integrating-jira-with-your-personal-projects
|
||||
- /what-does-the-available-for-hire-checkbox-do
|
||||
shortTitle: Personal account settings
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
title: Managing your cookie preferences for GitHub's enterprise marketing pages
|
||||
intro: "You can control how {% data variables.product.company_short %} uses information from non-essential tracking cookies for enterprise marketing pages."
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
ghec: '*'
|
||||
topics:
|
||||
- Accounts
|
||||
shortTitle: Manage cookie preferences
|
||||
---
|
||||
|
||||
## About cookie preferences on enterprise marketing pages
|
||||
|
||||
{% data variables.product.company_short %} may use non-essential cookies on some enterprise marketing pages. You can customize how these cookies behave. For more information about how {% data variables.product.company_short %} uses cookies, see "[{% data variables.product.company_short %} Privacy Statement](/free-pro-team@latest/site-policy/privacy-policies/github-privacy-statement)."
|
||||
|
||||
## Changing your cookie preferences
|
||||
|
||||
You can customize how non-essential cookies behave on any {% data variables.product.company_short %} enterprise marketing page.
|
||||
|
||||
1. Navigate to the {% data variables.product.company_short %} enterprise marketing page where you'd like to change your cookie preferences. For example, navigate to [{% data variables.product.company_short %} Resources](https://resources.github.com/).
|
||||
1. Scroll to the bottom of the page, then click **Manage Cookies**.
|
||||
|
||||
![Screenshot of button to manage cookie settings.](/assets/images/help/settings/cookie-settings-manage.png)
|
||||
|
||||
1. Under "Manage cookie preferences," to accept or reject each non-essential cookie, click **Accept** or **Reject**.
|
||||
|
||||
![Screenshot of radio buttons to choose "Accept" or "Reject" for non-essential cookies.](/assets/images/help/settings/cookie-settings-accept-or-reject.png)
|
||||
|
||||
1. Click **Save changes**.
|
||||
|
||||
![Screenshot of button to save changes.](/assets/images/help/settings/cookie-settings-save.png)
|
|
@ -71,7 +71,7 @@ You can add self-hosted runners at the organization level, where they can be use
|
|||
{% data reusables.organizations.navigate-to-org %}
|
||||
{% data reusables.organizations.org_settings %}
|
||||
{% data reusables.organizations.settings-sidebar-actions-runners %}
|
||||
1. Click **New runner**.
|
||||
{% ifversion actions-hosted-runners %}1. Click **New runner**, then click **New self-hosted runner**.{% else %}1. Click **New runner**.{% endif %}
|
||||
{% data reusables.actions.self-hosted-runner-configure %}
|
||||
{% elsif ghae or ghes < 3.4 %}
|
||||
{% data reusables.organizations.navigate-to-org %}
|
||||
|
|
|
@ -9,216 +9,65 @@ versions:
|
|||
ghae: '*'
|
||||
ghec: '*'
|
||||
type: tutorial
|
||||
shortTitle: Manage access to runners
|
||||
shortTitle: Using runner groups
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
## About self-hosted runner groups
|
||||
## About runner groups
|
||||
|
||||
{% ifversion fpt %}
|
||||
{% note %}
|
||||
|
||||
**Note:** All organizations have a single default self-hosted runner group. Only enterprise accounts and organizations owned by enterprise accounts can create and manage additional self-hosted runner groups.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Self-hosted runner groups are used to control access to self-hosted runners. Organization admins can configure access policies that control which repositories in an organization have access to the runner group.
|
||||
|
||||
If you use {% data variables.product.prodname_ghe_cloud %}, you can create additional runner groups; enterprise admins can configure access policies that control which organizations in an enterprise have access to the runner group; and organization admins can assign additional granular repository access policies to the enterprise runner group. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups).
|
||||
{% endif %}
|
||||
{% data reusables.actions.about-runner-groups %} {% ifversion fpt %}For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups).{% endif %}
|
||||
|
||||
{% ifversion ghec or ghes or ghae %}
|
||||
Self-hosted runner groups are used to control access to self-hosted runners at the organization and enterprise level. Enterprise owners can configure access policies that control which organizations {% ifversion restrict-groups-to-workflows %}and workflows {% endif %}in an enterprise have access to the runner group. Organization owners can configure access policies that control which repositories{% ifversion restrict-groups-to-workflows %} and workflows{% endif %} in an organization have access to the runner group.
|
||||
|
||||
When an enterprise owner grants an organization access to a runner group, organization owners can see the runner group listed in the organization's self-hosted runner settings. The organization owners can then assign additional granular repository{% ifversion restrict-groups-to-workflows %} and workflow{% endif %} access policies to the enterprise runner group.
|
||||
|
||||
When new runners are created, they are automatically assigned to the default group. Runners can only be in one group at a time. You can move runners from the default group to another group. For more information, see "[Moving a self-hosted runner to a group](#moving-a-self-hosted-runner-to-a-group)."
|
||||
|
||||
## Creating a self-hosted runner group for an organization
|
||||
|
||||
All organizations have a single default self-hosted runner group. Organizations within an enterprise account can create additional self-hosted groups. Organization admins can allow individual repositories access to a runner group. For information about how to create a self-hosted runner group with the REST API, see "[Self-hosted runner groups](/rest/reference/actions#self-hosted-runner-groups)."
|
||||
{%- ifversion ghec or ghes %}
|
||||
|
||||
Self-hosted runners are automatically assigned to the default group when created, and can only be members of one group at a time. You can move a runner from the default group to any group you create.
|
||||
{% data reusables.actions.self-hosted-runner-security-admonition %}
|
||||
|
||||
When creating a group, you must choose a policy that defines which repositories{% ifversion restrict-groups-to-workflows %} and workflows{% endif %} have access to the runner group.
|
||||
{%- endif %}
|
||||
|
||||
{% ifversion ghec or ghes > 3.3 or ghae-issue-5091 %}
|
||||
{% data reusables.organizations.navigate-to-org %}
|
||||
{% data reusables.organizations.org_settings %}
|
||||
{% data reusables.organizations.settings-sidebar-actions-runner-groups %}
|
||||
1. In the "Runner groups" section, click **New runner group**.
|
||||
1. Enter a name for your runner group.
|
||||
{% data reusables.actions.runner-group-assign-policy-repo %}
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Warning**: {% indented_data_reference reusables.actions.self-hosted-runner-security spaces=3 %}
|
||||
|
||||
For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)."
|
||||
|
||||
{% endwarning %}
|
||||
{% data reusables.actions.runner-group-assign-policy-workflow %}{%- ifversion restrict-groups-to-workflows %} Organization-owned runner groups cannot access workflows from a different organization in the enterprise; instead, you must create an enterprise-owned runner group.{% endif %}
|
||||
{% data reusables.actions.self-hosted-runner-create-group %}
|
||||
{% elsif ghae or ghes < 3.4 %}
|
||||
{% data reusables.organizations.navigate-to-org %}
|
||||
{% data reusables.organizations.org_settings %}
|
||||
{% data reusables.organizations.settings-sidebar-actions-runner-groups %}
|
||||
1. Under {% ifversion ghes or ghae %}"Runners"{% endif %}, click **Add new**, and then **New group**.
|
||||
|
||||
![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.
|
||||
|
||||
You can configure a runner group to be accessible to a specific list of repositories, or to all repositories in the organization.{% ifversion ghec or ghes %} By default, only private repositories can access runners in a runner group, but you can override this. This setting can't be overridden if configuring an organization's runner group that was shared by an enterprise.{% endif %}
|
||||
|
||||
{%- ifversion ghes %}
|
||||
{% warning %}
|
||||
|
||||
**Warning**:
|
||||
|
||||
{% indented_data_reference reusables.actions.self-hosted-runner-security spaces=3 %}
|
||||
|
||||
For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)."
|
||||
|
||||
{% endwarning %}
|
||||
{%- endif %}
|
||||
|
||||
![Add runner group options](/assets/images/help/settings/actions-org-add-runner-group-options.png)
|
||||
1. Click **Save group** to create the group and apply the policy.
|
||||
{% endif %}
|
||||
{% data reusables.actions.creating-a-runner-group-for-an-organization %}
|
||||
|
||||
## Creating a self-hosted runner group for an enterprise
|
||||
|
||||
Enterprises can add their self-hosted runners to groups for access management. Enterprises can create groups of self-hosted runners that are accessible to specific organizations in the enterprise account{% ifversion restrict-groups-to-workflows %} or to specific workflows{% endif %}. Organization owners can then assign additional granular repository{% ifversion restrict-groups-to-workflows %} or workflow{% endif %} access policies to the enterprise runner groups. For information about how to create a self-hosted runner group with the REST API, see the enterprise endpoints in the [{% data variables.product.prodname_actions %} REST API](/rest/reference/actions#self-hosted-runner-groups).
|
||||
{%- ifversion ghec or ghes %}
|
||||
|
||||
Self-hosted runners are automatically assigned to the default group when created, and can only be members of one group at a time. You can assign the runner to a specific group during the registration process, or you can later move the runner from the default group to a custom group.
|
||||
{% data reusables.actions.self-hosted-runner-security-admonition %}
|
||||
|
||||
When creating a group, you must choose a policy that defines which organizations have access to the runner group.
|
||||
{%- endif %}
|
||||
|
||||
{% data reusables.actions.self-hosted-runner-groups-add-to-enterprise-first-steps %}
|
||||
1. To choose a policy for organization access, select the **Organization access** drop-down, and click a policy. You can configure a runner group to be accessible to a specific list of organizations, or all organizations in the enterprise.{% ifversion ghes %} By default, only private repositories can access runners in a runner group, but you can override this.{% endif %}
|
||||
|
||||
{%- ifversion ghec or ghes %}
|
||||
{% warning %}
|
||||
|
||||
**Warning**:
|
||||
|
||||
{% indented_data_reference reusables.actions.self-hosted-runner-security spaces=3 %}
|
||||
|
||||
For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)."
|
||||
|
||||
{% endwarning %}
|
||||
{%- endif %}
|
||||
{%- ifversion ghec or ghes %}
|
||||
|
||||
![Add runner group options](/assets/images/help/settings/actions-enterprise-account-add-runner-group-options.png)
|
||||
{%- elsif ghae %}
|
||||
|
||||
![Add runner group options](/assets/images/help/settings/actions-enterprise-account-add-runner-group-options-ae.png)
|
||||
{%- endif %}
|
||||
{% data reusables.actions.runner-group-assign-policy-workflow %}
|
||||
1. Click **Save group** to create the group and apply the policy.
|
||||
{% data reusables.actions.creating-a-runner-group-for-an-enterprise %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
## Changing the access policy of a self-hosted runner group
|
||||
|
||||
For runner groups in an enterprise, you can change what organizations in the enterprise can access a runner group{% ifversion restrict-groups-to-workflows %} or restrict what workflows a runner group can run{% endif %}. For runner groups in an organization, you can change what repositories in the organization can access a runner group{% ifversion restrict-groups-to-workflows %} or restrict what workflows a runner group can run{% endif %}.
|
||||
{%- ifversion fpt or ghec or ghes %}
|
||||
|
||||
### Changing what organizations or repositories can access a runner group
|
||||
{% data reusables.actions.self-hosted-runner-security-admonition %}
|
||||
|
||||
{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %}
|
||||
{% data reusables.actions.self-hosted-runner-groups-navigate-to-repo-org-enterprise %}
|
||||
{% data reusables.actions.settings-sidebar-actions-runner-groups-selection %}
|
||||
1. For runner groups in an enterprise, under **Organization access**, modify what organizations can access the runner group. For runner groups in an organization, under **Repository access**, modify what repositories can access the runner group.
|
||||
{%- endif %}
|
||||
|
||||
{%- ifversion fpt or ghec or ghes %}
|
||||
{% warning %}
|
||||
|
||||
**Warning**:
|
||||
|
||||
{% indented_data_reference reusables.actions.self-hosted-runner-security spaces=3 %}
|
||||
|
||||
For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)."
|
||||
|
||||
{% endwarning %}
|
||||
{%- endif %}
|
||||
{% elsif ghae or ghes < 3.4 %}
|
||||
{% data reusables.actions.self-hosted-runner-configure-runner-group-access %}
|
||||
{% endif %}
|
||||
|
||||
{% ifversion restrict-groups-to-workflows %}
|
||||
### Changing what workflows can access a runner group
|
||||
You can configure a self-hosted runner group to run either selected workflows or all workflows. For example, you might use this setting to protect secrets that are stored on self-hosted runners or to standardize deployment workflows by restricting a runner group to run only a specific reusable workflow. This setting cannot be overridden if you are configuring an organization's runner group that was shared by an enterprise.
|
||||
{% data reusables.actions.self-hosted-runner-groups-navigate-to-repo-org-enterprise %}
|
||||
{% data reusables.actions.settings-sidebar-actions-runner-groups-selection %}
|
||||
1. Under **Workflow access**, select the dropdown menu and click **Selected workflows**.
|
||||
1. Click {% octicon "gear" aria-label="the gear icon" %}.
|
||||
1. Enter a comma separated list of the workflows that can access the runner group. Use the full path, including the repository name and owner. Pin the workflow to a branch, tag, or full SHA. For example: `octo-org/octo-repo/.github/workflows/build.yml@v2, octo-org/octo-repo/.github/workflows/deploy.yml@d6dc6c96df4f32fa27b039f2084f576ed2c5c2a5, monalisa/octo-test/.github/workflows/test.yml@main`.
|
||||
|
||||
Only jobs directly defined within the selected workflows will have access to the runner group.
|
||||
|
||||
Organization-owned runner groups cannot access workflows from a different organization in the enterprise; instead, you must create an enterprise-owned runner group.
|
||||
|
||||
1. Click **Save**.
|
||||
|
||||
{% endif %}
|
||||
{% data reusables.actions.changing-the-access-policy-of-a-runner-group %}
|
||||
|
||||
## Changing the name of a runner group
|
||||
|
||||
{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5091 %}
|
||||
{% data reusables.actions.self-hosted-runner-groups-navigate-to-repo-org-enterprise %}
|
||||
{% data reusables.actions.settings-sidebar-actions-runner-groups-selection %}
|
||||
1. Change the runner group name.
|
||||
|
||||
{% elsif ghae or ghes < 3.4 %}
|
||||
{% data reusables.actions.self-hosted-runner-configure-runner-group %}
|
||||
1. Change the runner group name.
|
||||
{% endif %}
|
||||
{% data reusables.actions.changing-the-name-of-a-runner-group %}
|
||||
|
||||
{% ifversion ghec or ghes or ghae %}
|
||||
## Automatically adding a self-hosted runner to a group
|
||||
|
||||
You can use the configuration script to automatically add a new self-hosted runner to a group. For example, this command registers a new self-hosted runner and uses the `--runnergroup` parameter to add it to a group named `rg-runnergroup`.
|
||||
|
||||
```sh
|
||||
./config.sh --url $org_or_enterprise_url --token $token --runnergroup rg-runnergroup
|
||||
```
|
||||
|
||||
The command will fail if the runner group doesn't exist:
|
||||
|
||||
```
|
||||
Could not find any self-hosted runner group named "rg-runnergroup".
|
||||
```
|
||||
{% data reusables.actions.automatically-adding-a-runner-to-a-group %}
|
||||
|
||||
## Moving a self-hosted runner to a group
|
||||
|
||||
If you don't specify a runner group during the registration process, your new self-hosted runners are automatically assigned to the default group, and can then be moved to another group.
|
||||
|
||||
{% data reusables.actions.self-hosted-runner-navigate-to-org-enterprise %}
|
||||
{% ifversion ghec or ghes > 3.3 or ghae-issue-5091 %}
|
||||
1. In the "Runners" list, click the runner that you want to configure.
|
||||
2. Select the **Runner group** drop-down.
|
||||
3. In "Move runner to group", choose a destination group for the runner.
|
||||
{% elsif ghae or ghes < 3.4 %}
|
||||
1. In the {% ifversion ghes or ghae %}"Runner groups"{% 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)
|
||||
2. 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)
|
||||
3. 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)
|
||||
{% endif %}
|
||||
{% data reusables.actions.moving-a-runner-to-a-group %}
|
||||
|
||||
## Removing a self-hosted runner group
|
||||
|
||||
Self-hosted runners are automatically returned to the default group when their group is removed.
|
||||
|
||||
{% ifversion ghes or ghae or ghec %}
|
||||
{% data reusables.actions.self-hosted-runner-groups-navigate-to-repo-org-enterprise %}
|
||||
1. In the list of groups, to the right of the group you want to delete, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}.
|
||||
2. To remove the group, click **Remove group**.
|
||||
3. Review the confirmation prompts, and click **Remove this runner group**.
|
||||
{% data reusables.actions.removing-a-runner-group %}
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
|
|
@ -425,11 +425,11 @@ This example `jobs` context contains the result and outputs of a job from a reus
|
|||
|
||||
```json
|
||||
{
|
||||
example_job: {
|
||||
result: success,
|
||||
outputs: {
|
||||
output1: hello,
|
||||
output2: world
|
||||
"example_job": {
|
||||
"result": "success",
|
||||
"outputs": {
|
||||
"output1": "hello",
|
||||
"output2": "world"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -488,7 +488,7 @@ The `steps` context contains information about the steps in the current job that
|
|||
|
||||
This example `steps` context shows two previous steps that had an [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid) specified. The first step had the `id` named `checkout`, the second `generate_number`. The `generate_number` step had an output named `random_number`.
|
||||
|
||||
```yaml
|
||||
```json
|
||||
{
|
||||
"checkout": {
|
||||
"outputs": {},
|
||||
|
@ -549,7 +549,7 @@ The `runner.workspace` property is purposefully not documented. It is an early A
|
|||
|
||||
The following example context is from a Linux {% data variables.product.prodname_dotcom %}-hosted runner.
|
||||
|
||||
```yaml
|
||||
```json
|
||||
{
|
||||
"os": "Linux",
|
||||
"arch": "X64",
|
||||
|
@ -606,7 +606,7 @@ The `secrets` context contains the names and values of secrets that are availabl
|
|||
|
||||
The following example contents of the `secrets` context shows the automatic `GITHUB_TOKEN`, as well as two other secrets available to the workflow run.
|
||||
|
||||
```yaml
|
||||
```json
|
||||
{
|
||||
"github_token": "***",
|
||||
"NPM_TOKEN": "***",
|
||||
|
@ -634,7 +634,7 @@ For workflows with a matrix, the `strategy` context contains information about t
|
|||
|
||||
The following example contents of the `strategy` context is from a matrix with four jobs, and is taken from the final job. Note the difference between the zero-based `job-index` number, and `job-total` which is not zero-based.
|
||||
|
||||
```yaml
|
||||
```json
|
||||
{
|
||||
"fail-fast": true,
|
||||
"job-index": 3,
|
||||
|
@ -683,7 +683,7 @@ There are no standard properties in the `matrix` context, only those which are d
|
|||
|
||||
The following example contents of the `matrix` context is from a job in a matrix that has the `os` and `node` matrix properties defined in the workflow. The job is executing the matrix combination of an `ubuntu-latest` OS and Node.js version `16`.
|
||||
|
||||
```yaml
|
||||
```json
|
||||
{
|
||||
"os": "ubuntu-latest",
|
||||
"node": 16
|
||||
|
@ -732,7 +732,7 @@ The `needs` context contains outputs from all jobs that are defined as a depende
|
|||
|
||||
The following example contents of the `needs` context shows information for two jobs that the current job depends on.
|
||||
|
||||
```yaml
|
||||
```json
|
||||
{
|
||||
"build": {
|
||||
"result": "success",
|
||||
|
@ -800,7 +800,7 @@ There are no standard properties in the `inputs` context, only those which are d
|
|||
|
||||
The following example contents of the `inputs` context is from a workflow that has defined the `build_id`, `deploy_target`, and `perform_deploy` inputs.
|
||||
|
||||
```yaml
|
||||
```json
|
||||
{
|
||||
"build_id": 123456768,
|
||||
"deploy_target": "deployment_sys_1a",
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
title: Understanding GitHub Actions
|
||||
shortTitle: Understanding GitHub Actions
|
||||
intro: 'Learn the basics of {% data variables.product.prodname_actions %}, including core concepts and essential terminology.'
|
||||
miniTocMaxHeadingLevel: 3
|
||||
redirect_from:
|
||||
- /github/automating-your-workflow-with-github-actions/core-concepts-for-github-actions
|
||||
- /actions/automating-your-workflow-with-github-actions/core-concepts-for-github-actions
|
||||
|
@ -82,7 +83,7 @@ For more information, see "[Creating actions](/actions/creating-actions)."
|
|||
|
||||
### Runners
|
||||
|
||||
{% data reusables.actions.about-runners %} Each runner can run a single job at a time. {% ifversion ghes or ghae %} You must host your own runners for {% data variables.product.product_name %}. {% elsif fpt or ghec %}{% data variables.product.company_short %} provides Ubuntu Linux, Microsoft Windows, and macOS runners to run your workflows; each workflow run executes in a fresh, newly-provisioned virtual machine. If you need a different operating system or require a specific hardware configuration, you can host your own runners.{% endif %} For more information{% ifversion fpt or ghec %} about self-hosted runners{% endif %}, see "[Hosting your own runners](/actions/hosting-your-own-runners)."
|
||||
{% data reusables.actions.about-runners %} Each runner can run a single job at a time. {% ifversion ghes or ghae %} You must host your own runners for {% data variables.product.product_name %}. {% elsif fpt or ghec %}{% data variables.product.company_short %} provides Ubuntu Linux, Microsoft Windows, and macOS runners to run your workflows; each workflow run executes in a fresh, newly-provisioned virtual machine. {% ifversion actions-hosted-runners %} {% data variables.product.prodname_dotcom %} also offers {% data variables.actions.hosted_runner %}s, which are available in larger configurations. For more information, see "[Using {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/using-larger-runners)." {% endif %}If you need a different operating system or require a specific hardware configuration, you can host your own runners.{% endif %} For more information{% ifversion fpt or ghec %} about self-hosted runners{% endif %}, see "[Hosting your own runners](/actions/hosting-your-own-runners)."
|
||||
|
||||
{% data reusables.actions.workflow-basic-example-and-explanation %}
|
||||
|
||||
|
|
|
@ -86,6 +86,15 @@ While the job runs, the logs and output can be viewed in the {% data variables.p
|
|||
|
||||
## Supported runners and hardware resources
|
||||
|
||||
{% ifversion actions-hosted-runners %}
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: {% data variables.product.prodname_dotcom %} also offers {% data variables.actions.hosted_runner %}s, which are available in larger configurations. For more information, see "[Using {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/using-larger-runners)."
|
||||
|
||||
{% endnote %}
|
||||
{% endif %}
|
||||
|
||||
Hardware specification for Windows and Linux virtual machines:
|
||||
- 2-core CPU (x86_64)
|
||||
- 7 GB of RAM
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
title: Controlling access to larger runners
|
||||
intro: You can use policies to limit access to {% data variables.actions.hosted_runner %}s that have been added to an organization or enterprise.
|
||||
product: '{% data reusables.gated-features.hosted-runners %}'
|
||||
versions:
|
||||
feature: 'actions-hosted-runners'
|
||||
type: tutorial
|
||||
shortTitle: Controlling access to {% data variables.actions.hosted_runner %}s
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
## About runner groups
|
||||
|
||||
{% data reusables.actions.about-runner-groups %} {% ifversion fpt %}For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/actions/using-github-hosted-runners/controlling-access-to-larger-runners).{% endif %}
|
||||
|
||||
{% ifversion ghec or ghes or ghae %}
|
||||
|
||||
## Creating a runner group for an organization
|
||||
|
||||
{% data reusables.actions.hosted-runner-security-admonition %}
|
||||
{% data reusables.actions.creating-a-runner-group-for-an-organization %}
|
||||
|
||||
## Creating a runner group for an enterprise
|
||||
|
||||
{% data reusables.actions.hosted-runner-security-admonition %}
|
||||
{% data reusables.actions.creating-a-runner-group-for-an-enterprise %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
## Changing the access policy of a runner group
|
||||
|
||||
{% data reusables.actions.hosted-runner-security-admonition %}
|
||||
{% data reusables.actions.changing-the-access-policy-of-a-runner-group %}
|
||||
|
||||
## Changing the name of a runner group
|
||||
|
||||
{% data reusables.actions.changing-the-name-of-a-runner-group %}
|
||||
|
||||
{% ifversion ghec or ghes or ghae %}
|
||||
## Moving a runner to a group
|
||||
|
||||
{% data reusables.actions.moving-a-runner-to-a-group %}
|
||||
|
||||
## Removing a runner group
|
||||
|
||||
{% data reusables.actions.removing-a-runner-group %}
|
||||
|
||||
{% endif %}
|
|
@ -7,6 +7,8 @@ versions:
|
|||
ghes: '*'
|
||||
children:
|
||||
- /about-github-hosted-runners
|
||||
- /using-larger-runners
|
||||
- /controlling-access-to-larger-runners
|
||||
- /monitoring-your-current-jobs
|
||||
- /customizing-github-hosted-runners
|
||||
- /connecting-to-a-private-network
|
||||
|
|
|
@ -0,0 +1,135 @@
|
|||
---
|
||||
title: Using larger runners
|
||||
intro: '{% data variables.product.prodname_dotcom %} offers larger runners with more RAM and CPU.'
|
||||
miniTocMaxHeadingLevel: 3
|
||||
product: '{% data reusables.gated-features.hosted-runners %}'
|
||||
versions:
|
||||
feature: 'actions-hosted-runners'
|
||||
shortTitle: Using {% data variables.actions.hosted_runner %}s
|
||||
---
|
||||
|
||||
## Overview of {% data variables.actions.hosted_runner %}s
|
||||
|
||||
In addition to the [standard {% data variables.product.prodname_dotcom %}-hosted runners](/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources), {% data variables.product.prodname_dotcom %} also offers customers on {% data variables.product.prodname_team %} and {% data variables.product.prodname_ghe_cloud %} plans a range of {% data variables.actions.hosted_runner %}s with more RAM and CPU. These runners are hosted by {% data variables.product.prodname_dotcom %} and have the runner application and other tools preinstalled.
|
||||
|
||||
When you add a {% data variables.actions.hosted_runner %} to an organization, you are defining a type of machine from a selection of available hardware specifications and operating system images. {% data variables.product.prodname_dotcom %} will then create multiple instances of this runner that scale up and down to match the job demands of your organization, based on the autoscaling limits you define.
|
||||
|
||||
## Architectural overview of {% data variables.actions.hosted_runner %}s
|
||||
|
||||
The {% data variables.actions.hosted_runner %}s are managed at the organization level, where they are arranged into groups that can contain multiple instances of the runner. They can also be created at the enterprise level and shared with organizations in the hierarchy. Once you've created a group, you can then add a runner to the group and update your workflows to target the label assigned to the {% data variables.actions.hosted_runner %}. You can also control which repositories are permitted to send jobs to the group for processing. For more information about groups, see "[Controlling access to {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/controlling-access-to-larger-runners)."
|
||||
|
||||
In the following diagram, a class of hosted runner named `ubuntu-20.04-16core` has been defined with customized hardware and operating system configuration.
|
||||
|
||||
![Diagram explaining {% data variables.actions.hosted_runner %}](/assets/images/hosted-runner.png)
|
||||
|
||||
1. Instances of this runner are automatically created and added to a group called `ubuntu-20.04-16core`.
|
||||
2. The runners have been assigned the label `ubuntu-20.04-16core`.
|
||||
3. Workflow jobs use the `ubuntu-20.04-16core` label in their `runs-on` key to indicate the type of runner they need to execute the job.
|
||||
4. {% data variables.product.prodname_actions %} checks the runner group to see if your repository is authorized to send jobs to the runner.
|
||||
5. The job runs on the next available instance of the `ubuntu-20.04-16core` runner.
|
||||
|
||||
## Autoscaling {% data variables.actions.hosted_runner %}s
|
||||
|
||||
Your {% data variables.actions.hosted_runner %}s can be configured to automatically scale to suit your needs. When jobs are submitted for processing, more machines can be automatically provisioned to run the jobs, until reaching a pre-defined maximum limit. Each machine only handles one job at a time, so these settings effectively determine the number of jobs that can be run concurrently.
|
||||
|
||||
During the runner deployment process, you can configure the _Max_ option, which allows you to control your costs by setting the maximum parallel number of machines that are created in this set. A higher value here can help avoid workflows being blocked due to parallelism.
|
||||
|
||||
## Networking for {% data variables.actions.hosted_runner %}s
|
||||
|
||||
By default, {% data variables.actions.hosted_runner %}s receive a dynamic IP address that changes for each job run. Optionally, {% data variables.product.prodname_ghe_cloud %} customers can configure their {% data variables.actions.hosted_runner %}s to receive a static IP address from {% data variables.product.prodname_dotcom %}'s IP address pool. When enabled, instances of the {% data variables.actions.hosted_runner %} will receive an address from a range that is unique to the runner, allowing you to use this range to configure a firewall allowlist. You can use up to 10 static IP address ranges in total across all your {% data variables.actions.hosted_runner %}s.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: If runners are unused for more than 30 days, their IP address ranges are automatically removed and cannot be recovered.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
## Planning for {% data variables.actions.hosted_runner %}s
|
||||
|
||||
### Create a runner group
|
||||
|
||||
Runner groups are used to collect sets of virtual machines and create a security boundary around them. You can then decide which organizations or repositories are permitted to run jobs on those sets of machines. During the {% data variables.actions.hosted_runner %} deployment process, the runner can be added to an existing group, or otherwise it will join a default group. You can create a group by following the steps in "[Controlling access to {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/controlling-access-to-larger-runners)."
|
||||
|
||||
### Understanding billing
|
||||
|
||||
Compared to standard {% data variables.product.prodname_dotcom %}-hosted runners, {% data variables.actions.hosted_runner %}s are billed differently. For more information, see "[Per-minute rates](/billing/managing-billing-for-github-actions/about-billing-for-github-actions#per-minute-rates)".
|
||||
|
||||
## Adding a {% data variables.actions.hosted_runner %} to an enterprise
|
||||
|
||||
You can add {% data variables.actions.hosted_runner %}s to an enterprise, where they can be assigned to multiple organizations. The organization admins can then control which repositories can use the runners. To add a {% data variables.actions.hosted_runner %} to an enterprise, you must be an enterprise owner.
|
||||
|
||||
{% data reusables.actions.add-hosted-runner-overview %}
|
||||
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% data reusables.enterprise-accounts.policies-tab %}
|
||||
{% data reusables.enterprise-accounts.actions-tab %}
|
||||
{% data reusables.enterprise-accounts.actions-runners-tab %}
|
||||
{% data reusables.actions.add-hosted-runner %}
|
||||
1. To allow organizations to access your {% data variables.actions.hosted_runner %}s, you specify the list of organizations that can use it. For more information, see "[Managing access to your runners](#managing-access-to-your-runners)."
|
||||
|
||||
## Adding a {% data variables.actions.hosted_runner %} to an organization
|
||||
|
||||
You can add a {% data variables.actions.hosted_runner %} to an organization, where the organization admins can control which repositories can use it.
|
||||
|
||||
{% data reusables.actions.add-hosted-runner-overview %}
|
||||
|
||||
{% data reusables.organizations.navigate-to-org %}
|
||||
{% data reusables.organizations.org_settings %}
|
||||
{% data reusables.organizations.settings-sidebar-actions-runners %}
|
||||
{% data reusables.actions.add-hosted-runner %}
|
||||
1. To allow repositories to access your {% data variables.actions.hosted_runner %}s, add them to the list of repositories that can use it. For more information, see "[Managing access to your runners](#managing-access-to-your-runners)."
|
||||
|
||||
## Running jobs on your runner
|
||||
|
||||
Once your runner type has been been defined, you can update your workflows to send jobs to the runner instances for processing. In this example, a runner group is populated with Ubuntu 16-core runners, which have been assigned the label `ubuntu-20.04-16core`. If you have a runner matching this label, the `check-bats-version` job then uses the `runs-on` key to target that runner whenever the job is run:
|
||||
|
||||
```yaml
|
||||
name: learn-github-actions
|
||||
on: [push]
|
||||
jobs:
|
||||
check-bats-version:
|
||||
runs-on: ubuntu-20.04-16core
|
||||
steps:
|
||||
- uses: {% data reusables.actions.action-checkout %}
|
||||
- uses:{% data reusables.actions.action-setup-node %}
|
||||
with:
|
||||
node-version: '14'
|
||||
- run: npm install -g bats
|
||||
- run: bats -v
|
||||
```
|
||||
|
||||
## Managing access to your runners
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: Before your workflows can send jobs to {% data variables.actions.hosted_runner %}s, you must first configure permissions for the runner group. See the following sections for more information.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Runner groups are used to control which repositories can run jobs on your {% data variables.actions.hosted_runner %}s. You must grant access to the group from each level of the management hierarchy, depending on where you've defined the {% data variables.actions.hosted_runner %}:
|
||||
|
||||
- **Runners at the enterprise level**: Configure the runner group to grant access to all the required organizations. In addition, for each organization, you must configure the group to specify which repositories are allowed access.
|
||||
- **Runners at the organization level**: Configure the runner group by specifying which repositories are allowed access.
|
||||
|
||||
For example, the following diagram has a runner group named `grp-ubuntu-20.04-16core` at the enterprise level. Before the repository named `octo-repo` can use the runners in the group, you must first configure the group at the enterprise level to allow access from the `octo-org` organization; you must then configure the group at the organization level to allow access from `octo-repo`:
|
||||
|
||||
![Diagram explaining {% data variables.actions.hosted_runner %} groups](/assets/images/hosted-runner-mgmt.png)
|
||||
|
||||
### Allowing repositories to access a runner group
|
||||
|
||||
This procedure demonstrates how to configure group permissions at the enterprise and organization levels:
|
||||
|
||||
{% data reusables.actions.runner-groups-navigate-to-repo-org-enterprise %}
|
||||
{% data reusables.actions.settings-sidebar-actions-runner-groups-selection %}
|
||||
- For runner groups in an enterprise: under **Organization access**, modify which organizations can access the runner group.
|
||||
- For runner groups in an organization: under **Repository access**, modify which repositories can access the runner group.
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Warning**:
|
||||
|
||||
{% data reusables.actions.hosted-runner-security %}
|
||||
|
||||
For more information, see "[Controlling access to {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/controlling-access-to-larger-runners)."
|
||||
|
||||
{% endwarning %}
|
|
@ -23,7 +23,7 @@ topics:
|
|||
|
||||
Rather than copying and pasting from one workflow to another, you can make workflows reusable. You and anyone with access to the reusable workflow can then call the reusable workflow from another workflow.
|
||||
|
||||
Reusing workflows avoids duplication. This makes workflows easier to maintain and allows you to create new workflows more quickly by building on the work of others, just as you do with actions. Workflow reuse also promotes best practice by helping you to use workflows that are well designed, have already been tested, and have been proved to be effective. Your organization can build up a library of reusable workflows that can be centrally maintained.
|
||||
Reusing workflows avoids duplication. This makes workflows easier to maintain and allows you to create new workflows more quickly by building on the work of others, just as you do with actions. Workflow reuse also promotes best practice by helping you to use workflows that are well designed, have already been tested, and have been proven to be effective. Your organization can build up a library of reusable workflows that can be centrally maintained.
|
||||
|
||||
The diagram below shows three build jobs on the left of the diagram. After each of these jobs completes successfully a dependent job called "Deploy" runs. This job calls a reusable workflow that contains three jobs: "Staging", "Review", and "Production." The "Production" deployment job only runs after the "Staging" job has completed successfully. Using a reusable workflow to run deployment jobs allows you to run those jobs for each build without duplicating code in workflows.
|
||||
|
||||
|
@ -127,7 +127,7 @@ You can define inputs and secrets, which can be passed from the caller workflow
|
|||
runs-on: ubuntu-latest
|
||||
environment: production
|
||||
steps:
|
||||
- uses: ./.github/workflows/my-action
|
||||
- uses: octo-org/my-action@v1
|
||||
with:
|
||||
username: ${{ inputs.username }}
|
||||
token: ${{ secrets.envPAT }}
|
||||
|
@ -168,12 +168,13 @@ jobs:
|
|||
name: Pass input and secrets to my-action
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: ./.github/workflows/my-action
|
||||
- uses: octo-org/my-action@v1
|
||||
with:
|
||||
username: ${{ inputs.username }}
|
||||
token: ${{ secrets.token }}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
{% ifversion actions-reusable-workflow-matrix %}
|
||||
## Using a matrix strategy with a reusable workflow
|
||||
|
||||
|
|
|
@ -334,6 +334,12 @@ Write-Output "::add-mask::Mona The Octocat"
|
|||
|
||||
{% endpowershell %}
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Warning:** Make sure you register the secret with 'add-mask' before outputting it in the build logs or using it in any other workflow commands.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
### Example: Masking an environment variable
|
||||
|
||||
When you print the variable `MY_NAME` or the value `"Mona The Octocat"` in the log, you'll see `"***"` instead of `"Mona The Octocat"`.
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
title: Configuring dependency review for your appliance
|
||||
shortTitle: Configuring dependency review
|
||||
intro: 'To helps users understand dependency changes when reviewing pull requests, you can enable, configure, and disable dependency review for {% data variables.product.product_location %}.'
|
||||
product: '{% data reusables.gated-features.dependency-review %}'
|
||||
miniTocMaxHeadingLevel: 3
|
||||
versions:
|
||||
feature: dependency-review-action-ghes
|
||||
type: how_to
|
||||
topics:
|
||||
- Advanced Security
|
||||
- Enterprise
|
||||
- Dependency review
|
||||
- Security
|
||||
---
|
||||
|
||||
{% data reusables.dependency-review.beta %}
|
||||
|
||||
## About dependency review
|
||||
|
||||
{% data reusables.dependency-review.feature-overview %}
|
||||
|
||||
Some additional features, such as license checks, blocking of pull requests, and CI/CD integration, are available with the [dependency review action](https://github.com/actions/dependency-review-action).
|
||||
|
||||
## Checking whether your license includes {% data variables.product.prodname_GH_advanced_security %}
|
||||
|
||||
{% data reusables.advanced-security.check-for-ghas-license %}
|
||||
|
||||
## Prerequisites for dependency review
|
||||
|
||||
- A license for {% data variables.product.prodname_GH_advanced_security %}{% ifversion ghes %} (see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)").{% endif %}
|
||||
|
||||
- The dependency graph enabled for the instance. Site administrators can enable the dependency graph via the management console or the administrative shell (see "[Enabling the dependency graph for your enterprise](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise)").
|
||||
|
||||
- {% data variables.product.prodname_github_connect %} enabled to download and synchronize vulnerabilities from the {% data variables.product.prodname_advisory_database %}. This is usually configured as part of setting up {% data variables.product.prodname_dependabot %} (see "[Enabling Dependabot for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)").
|
||||
|
||||
## Enabling and disabling dependency review
|
||||
|
||||
To enable or disable dependency review, you need to enable or disable the dependency graph for your instance.
|
||||
|
||||
For more information, see "[Enabling the dependency graph for your enterprise](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise)."
|
||||
|
||||
## Running dependency review using {% data variables.product.prodname_actions %}
|
||||
|
||||
{% data reusables.dependency-review.dependency-review-action-beta-note %}
|
||||
|
||||
The dependency review action is included in your installation of {% data variables.product.prodname_ghe_server %}. It is available for all repositories that have {% data variables.product.prodname_GH_advanced_security %} and dependency graph enabled.
|
||||
|
||||
{% data reusables.dependency-review.dependency-review-action-overview %}
|
||||
|
||||
Users run the dependency review action using a {% data variables.product.prodname_actions %} workflow. If you have not already set up runners for {% data variables.product.prodname_actions %}, you must do this to enable users to run workflows. You can provision self-hosted runners at the repository, organization, or enterprise account level. For information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
|
||||
|
|
@ -14,6 +14,7 @@ topics:
|
|||
children:
|
||||
- /enabling-github-advanced-security-for-your-enterprise
|
||||
- /configuring-code-scanning-for-your-appliance
|
||||
- /configuring-dependency-review-for-your-appliance
|
||||
- /configuring-secret-scanning-for-your-appliance
|
||||
---
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ You can enable the dependency graph via the {% data variables.enterprise.managem
|
|||
|
||||
## Enabling the dependency graph via the {% data variables.enterprise.management_console %}
|
||||
|
||||
If your {% data variables.product.product_location %} uses clustering, you cannot enable the dependency graph with the {% data variables.enterprise.management_console %} and must use the administrative shell instead. For more information, see "[Enabling the dependency graph via the administrative shell](#enabling-the-dependency-graph-via-the-administrative-shell)."
|
||||
If {% data variables.product.product_location %} uses clustering, you cannot enable the dependency graph with the {% data variables.enterprise.management_console %} and must use the administrative shell instead. For more information, see "[Enabling the dependency graph via the administrative shell](#enabling-the-dependency-graph-via-the-administrative-shell)."
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.sign-in %}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
|
|
|
@ -16,7 +16,9 @@ topics:
|
|||
---
|
||||
If you configure a hostname instead of a hard-coded IP address, you will be able to change the physical hardware that {% data variables.product.product_location %} runs on without affecting users or client software.
|
||||
|
||||
The hostname setting in the {% data variables.enterprise.management_console %} should be set to an appropriate fully qualified domain name (FQDN) which is resolvable on the internet or within your internal network. For example, your hostname setting could be `github.companyname.com.` Web and API requests will automatically redirect to the hostname configured in the {% data variables.enterprise.management_console %}. Note that `localhost` is not a valid hostname setting.
|
||||
The hostname setting in the {% data variables.enterprise.management_console %} should be set to an appropriate fully qualified domain name (FQDN) which is resolvable on the internet or within your internal network. For example, your hostname setting could be `github.companyname.com.` Web and API requests will automatically redirect to the hostname configured in the {% data variables.enterprise.management_console %}. Note that `localhost` is not a valid hostname setting.
|
||||
|
||||
Hostnames must be less than 63 characters in length per [Section 2.3.4 of the Domain Names Specification RFC](https://datatracker.ietf.org/doc/html/rfc1035#section-2.3.4).
|
||||
|
||||
After you configure a hostname, you can enable subdomain isolation to further increase the security of {% data variables.product.product_location %}. For more information, see "[Enabling subdomain isolation](/enterprise/admin/guides/installation/enabling-subdomain-isolation/)."
|
||||
|
||||
|
|
|
@ -131,46 +131,49 @@ Key | Description
|
|||
{% ifversion ghes %}
|
||||
## Indexing
|
||||
|
||||
GitHub's [code search][] features are powered by [ElasticSearch][]. This section of the site admin dashboard shows you the current status of your ElasticSearch cluster and provides you with several tools to control the behavior of searching and indexing. These tools are split into the following three categories.
|
||||
GitHub's search features are powered by Elasticsearch. This section of the site admin dashboard shows you the current status of your Elasticsearch cluster and provides you with several tools to control search and index behavior.
|
||||
|
||||
[Code Search]: https://github.com/blog/1381-a-whole-new-code-search
|
||||
[ElasticSearch]: http://www.elasticsearch.org/
|
||||
For more information about code search, see "[Searching for information on {% data variables.product.prodname_dotcom %}](/search-github)." For more information about Elasticsearch, see the [Elasticsearch website](https://elastic.co).
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: In normal use, site administrators do not need to create new indices or schedule repair jobs. For troubleshooting or other support purposes, {% data variables.contact.github_support %} may instruct you to run a repair job.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
### Index management
|
||||
|
||||
{% data variables.product.product_name %} reconciles the state of the search index with data on the instance automatically and regularly.
|
||||
|
||||
- Issues, pull requests, repositories, and users in the database
|
||||
- Git repositories (source code) on disk
|
||||
|
||||
Your instance uses repair jobs to reconcile the data, and schedules a repair job in the background when the following events occur.
|
||||
|
||||
- A new search index is created.
|
||||
- Missing data needs to be backfilled.
|
||||
- Old search data needs to be updated.
|
||||
|
||||
You can create a new index, or you can click on an existing index in the list to manage the index. You can perform the following operations on an index.
|
||||
|
||||
- Make the index searchable.
|
||||
- Make the index writable.
|
||||
- Update the index.
|
||||
- Delete the index
|
||||
- Reset the index repair state.
|
||||
- Start a new index repair job.
|
||||
- Enable or disable index repair jobs.
|
||||
|
||||
A progress bar shows the current status of a repair job across background workers. The bar is the percentage difference of the repair offset with the highest record ID in the database. You can ignore the value shown in the progress bar after a repair job has completed. The progress bar shows the difference between the repair offset and the highest record ID in the database, and will decrease as more repositories are added to {% data variables.product.product_location %} even though those repositories are actually indexed.
|
||||
|
||||
To minimize the effects on I/O performance and reduce the chances of operations timing out, run the repair job during off-peak hours. As the job reconciles the search index with database and Git repository data, one CPU will be used. Monitor your system's load averages and CPU usage with a utility like `top`. If you don't notice any significant increase in resource consumption, it should also be safe to run an index repair job during peak hours.
|
||||
|
||||
Repair jobs use a "repair offset" for parallelization. This is an offset into the database table for the record being reconciled. Multiple background jobs can synchronize work based on this offset.
|
||||
|
||||
### Code search
|
||||
|
||||
This allows you to enable or disable both search and index operations on source code.
|
||||
|
||||
### Code search index repair
|
||||
|
||||
This controls how the code search index is repaired. You can
|
||||
|
||||
- enable or disable index repair jobs
|
||||
- start a new index repair job
|
||||
- reset all index repair state
|
||||
|
||||
{% data variables.product.prodname_enterprise %} uses repair jobs to reconcile the state of the search index with data stored in a database (issues, pull requests, repositories, and users) and data stored in Git repositories (source code). This happens when
|
||||
|
||||
- a new search index is created;
|
||||
- missing data needs to be backfilled; or
|
||||
- old search data needs to be updated.
|
||||
|
||||
In other words, repair jobs are started as needed and run in the background—they are not scheduled by site admins in any way.
|
||||
|
||||
Furthermore, repair jobs use a "repair offset" for parallelization. This is an offset into the database table for the record being reconciled. Multiple background jobs can synchronize work based on this offset.
|
||||
|
||||
A progress bar shows the current status of a repair job across all of its background workers. It is the percentage difference of the repair offset with the highest record ID in the database. Don't worry about the value shown in the progress bar after a repair job has completed: because it shows the difference between the repair offset and the highest record ID in the database, it will decrease as more repositories are added to {% data variables.product.product_location %} even though those repositories are actually indexed.
|
||||
|
||||
You can start a new code-search index repair job at any time. It will use a single CPU as it reconciles the search index with database and Git repository data. To minimize the effects this will have on I/O performance and reduce the chances of operations timing out, try to run a repair job during off-peak hours first. Monitor your system's load averages and CPU usage with a utility like `top`; if you don't notice any significant changes, it should be safe to run an index repair job during peak hours, as well.
|
||||
|
||||
### Issues index repair
|
||||
|
||||
This controls how the [Issues][] index is repaired. You can
|
||||
|
||||
[Issues]: https://github.com/blog/831-issues-2-0-the-next-generation
|
||||
|
||||
- enable or disable index repair jobs
|
||||
- start a new index repair job
|
||||
- reset all index repair state
|
||||
{% endif %}
|
||||
## Reserved logins
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ topics:
|
|||
- Infrastructure
|
||||
shortTitle: Initiate failover to appliance
|
||||
---
|
||||
The time required to failover depends on how long it takes to manually promote the replica and redirect traffic. The average time ranges between 2-10 minutes.
|
||||
The time required to failover depends on how long it takes to manually promote the replica and redirect traffic. The average time ranges between 20-30 minutes.
|
||||
|
||||
{% data reusables.enterprise_installation.promoting-a-replica %}
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ You can create a runner group to manage access to the runner that you added to y
|
|||
|
||||
{% data variables.product.product_name %} adds all new runners to a group. Runners can be in one group at a time. By default, {% data variables.product.product_name %} adds new runners to the "Default" group.
|
||||
|
||||
{% data reusables.actions.self-hosted-runner-groups-add-to-enterprise-first-steps %}
|
||||
{% data reusables.actions.runner-groups-add-to-enterprise-first-steps %}
|
||||
1. To choose a policy for organization access, under "Organization access", select the **Organization access** drop-down, and click **Selected organizations**.
|
||||
1. To the right of the drop-down with the organization access policy, click {% octicon "gear" aria-label="The Gear icon" %}.
|
||||
1. Select the organizations you'd like to grant access to the runner group.
|
||||
|
@ -100,7 +100,7 @@ You can create a runner group to manage access to the runner that you added to y
|
|||
|
||||
{% endwarning %}
|
||||
{%- endif %}
|
||||
{% data reusables.actions.self-hosted-runner-create-group %}
|
||||
{% data reusables.actions.create-runner-group %}
|
||||
{%- ifversion ghec or ghes > 3.3 or ghae-issue-5091 %}
|
||||
1. Click the "Runners" tab.
|
||||
1. In the list of runners, click the runner that you deployed in the previous section.
|
||||
|
|
|
@ -45,6 +45,7 @@ includeGuides:
|
|||
- /admin/configuration/configuring-built-in-firewall-rules
|
||||
- /admin/configuration/configuring-code-scanning-for-your-appliance
|
||||
- /admin/configuration/configuring-data-encryption-for-your-enterprise
|
||||
- /admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-dependency-review-for-your-appliance
|
||||
- /admin/configuration/configuring-dns-nameservers
|
||||
- /admin/configuration/configuring-rate-limits
|
||||
- /admin/configuration/configuring-secret-scanning-for-your-appliance
|
||||
|
@ -98,7 +99,7 @@ includeGuides:
|
|||
- /admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise
|
||||
- /admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise
|
||||
- /admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise
|
||||
- /admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise
|
||||
- /admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-projects-in-your-enterprise
|
||||
- /admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise
|
||||
- /admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise
|
||||
- /admin/policies/enforcing-policies-for-your-enterprise/restricting-email-notifications-for-your-enterprise
|
||||
|
|
|
@ -146,6 +146,9 @@ The scope of the events that appear in your enterprise's audit log depend on whe
|
|||
{%- ifversion ghec or ghes %}
|
||||
| `business.set_fork_pr_workflows_policy` | The policy for workflows on private repository forks was changed. For more information, see "{% ifversion ghec %}[Enforcing policies for {% data variables.product.prodname_actions %} in an enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enforcing-a-policy-for-fork-pull-requests-in-private-repositories){% else ifversion ghes > 2.22 %}[Enabling workflows for private repository forks](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enforcing-github-actions-policies-for-your-enterprise#enabling-workflows-for-private-repository-forks){% endif %}."
|
||||
{%- endif %}
|
||||
{%- ifversion audit-log-sso-response-events %}
|
||||
|`business.sso_response` | A SAML single sign-on (SSO) response was generated when a member attempted to authenticate with your enterprise. This event is only available via audit log streaming and the REST API.
|
||||
{%- endif %}
|
||||
{%- ifversion ghes %}
|
||||
| `business.update_actions_settings` | An enterprise owner or site administrator updated {% data variables.product.prodname_actions %} policy settings for an enterprise. For more information, see "[Enforcing policies for GitHub Actions in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise)."
|
||||
{%- endif %}
|
||||
|
@ -730,8 +733,8 @@ Before you'll see `git` category actions, you must enable Git events in the audi
|
|||
{%- ifversion fpt or ghec or ghes %}
|
||||
| `org.set_fork_pr_workflows_policy` | The policy for workflows on private repository forks was changed. For more information, see "[Enabling workflows for private repository forks](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#enabling-workflows-for-private-repository-forks)."
|
||||
{%- endif %}
|
||||
{%- ifversion ghes %}
|
||||
| `org.sso_response` | A SAML single sign-on response was generated when a member attempted to authenticate with an organization.
|
||||
{%- ifversion ghes or audit-log-sso-response-events %}
|
||||
| `org.sso_response` | A SAML single sign-on (SSO) response was generated when a member attempted to authenticate with your organization. This event is only available via audit log streaming and the REST API.
|
||||
{%- endif %}
|
||||
{%- ifversion not ghae %}
|
||||
| `org.transform` | A user account was converted into an organization. For more information, see "[Converting a user into an organization](/github/setting-up-and-managing-your-github-user-account/converting-a-user-into-an-organization)."
|
||||
|
@ -793,9 +796,9 @@ Before you'll see `git` category actions, you must enable Git events in the audi
|
|||
|
||||
| Action | Description
|
||||
|--------|-------------
|
||||
| `organization_projects_change.clear` | An enterprise owner{% ifversion ghes %} or site administrator{% endif %} cleared the policy setting for organization-wide project boards in an enterprise. For more information, see "[Enforcing a policy for organization-wide project boards](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise#enforcing-a-policy-for-organization-wide-project-boards)."
|
||||
| `organization_projects_change.disable` | Organization projects were disabled for all organizations in an enterprise. For more information, see "[Enforcing a policy for organization-wide project boards](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise#enforcing-a-policy-for-organization-wide-project-boards)."
|
||||
| `organization_projects_change.enable` | Organization projects were enabled for all organizations in an enterprise. For more information, see "[Enforcing a policy for organization-wide project boards](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise#enforcing-a-policy-for-organization-wide-project-boards)."
|
||||
| `organization_projects_change.clear` | An enterprise owner{% ifversion ghes %} or site administrator{% endif %} cleared the policy setting for organization-wide project boards in an enterprise. For more information, see "[Enforcing policies for projects in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-projects-in-your-enterprise#enforcing-a-policy-for-organization-wide-project-boards)."
|
||||
| `organization_projects_change.disable` | Organization projects were disabled for all organizations in an enterprise. For more information, see "[Enforcing policies for projects in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-projects-in-your-enterprise#enforcing-a-policy-for-organization-wide-project-boards)."
|
||||
| `organization_projects_change.enable` | Organization projects were enabled for all organizations in an enterprise. For more information, see "[Enforcing policies for projects in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-projects-in-your-enterprise#enforcing-a-policy-for-organization-wide-project-boards)."
|
||||
{%- endif %}
|
||||
|
||||
## `packages` category actions
|
||||
|
@ -1110,7 +1113,7 @@ Before you'll see `git` category actions, you must enable Git events in the audi
|
|||
|
||||
| Action | Description
|
||||
|--------|-------------
|
||||
| `repository_projects_change.clear` | The repository projects policy was removed for an organization, or all organizations in the enterprise. Organization admins can now control their repository projects settings. For more information, see "[Enforcing project board policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise)."
|
||||
| `repository_projects_change.clear` | The repository projects policy was removed for an organization, or all organizations in the enterprise. Organization admins can now control their repository projects settings. For more information, see "[Enforcing policies for projects in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-projects-in-your-enterprise)."
|
||||
| `repository_projects_change.disable` | Repository projects were disabled for a repository, all repositories in an organization, or all organizations in an enterprise.
|
||||
| `repository_projects_change.enable` | Repository projects were enabled for a repository, all repositories in an organization, or all organizations in an enterprise.
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ For more information about the audit log REST API, see "[Enterprise administrati
|
|||
The query below searches for audit log events created on Jan 1st, 2022 in the `avocado-corp` enterprise, and return the first page with a maximum of 100 items per page using [REST API pagination](/rest/overview/resources-in-the-rest-api#pagination):
|
||||
|
||||
```shell
|
||||
curl -H "Authorization: token <em>TOKEN</em>" \
|
||||
curl -H "Authorization: Bearer <em>TOKEN</em>" \
|
||||
--request GET \
|
||||
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&page=1&per_page=100"
|
||||
```
|
||||
|
@ -133,7 +133,7 @@ You can specify multiple search phrases, such as `created` and `actor`, by separ
|
|||
The query below searches for audit log events for pull requests, where the event occurred on or after Jan 1st, 2022 in the `avocado-corp` enterprise, and the action was performed by the `octocat` user:
|
||||
|
||||
```shell
|
||||
curl -H "Authorization: token <em>TOKEN</em>" \
|
||||
curl -H "Authorization: Bearer <em>TOKEN</em>" \
|
||||
--request GET \
|
||||
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=action:pull_request+created:>=2022-01-01+actor:octocat"
|
||||
```
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
---
|
||||
title: Enforcing policies for projects in your enterprise
|
||||
intro: 'You can enforce policies for {% data variables.projects.projects_v2_and_v1 %} within your enterprise''s organizations, or allow policies to be set in each organization.'
|
||||
permissions: Enterprise owners can enforce policies for projects in an enterprise.
|
||||
redirect_from:
|
||||
- /articles/enforcing-project-board-settings-for-organizations-in-your-business-account
|
||||
- /articles/enforcing-project-board-policies-for-organizations-in-your-enterprise-account
|
||||
- /articles/enforcing-project-board-policies-in-your-enterprise-account
|
||||
- /github/setting-up-and-managing-your-enterprise-account/enforcing-project-board-policies-in-your-enterprise-account
|
||||
- /github/setting-up-and-managing-your-enterprise/enforcing-project-board-policies-in-your-enterprise-account
|
||||
- /github/setting-up-and-managing-your-enterprise/setting-policies-for-organizations-in-your-enterprise-account/enforcing-project-board-policies-in-your-enterprise-account
|
||||
- /admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise
|
||||
versions:
|
||||
ghec: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: how_to
|
||||
topics:
|
||||
- Enterprise
|
||||
- Policies
|
||||
- Projects
|
||||
shortTitle: Project board policies
|
||||
---
|
||||
|
||||
## About policies for projects in your enterprise
|
||||
|
||||
You can enforce policies to control how enterprise members manage {% data variables.projects.projects_v2_and_v1 %}, or you can allow organization owners to manage policies for {% data variables.projects.projects_v2_and_v1 %} at the organization level.{% ifversion project-visibility-policy %}
|
||||
|
||||
Some policies apply to both {% data variables.product.prodname_projects_v2 %}, the new projects experience, and {% data variables.product.prodname_projects_v1 %}, the previous experience, while some apply only to {% data variables.product.prodname_projects_v1 %}. For more information about each experience, see "[About {% data variables.product.prodname_projects_v2 %}](/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects)" and "[About {% data variables.product.prodname_projects_v1 %}](/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)."
|
||||
{% else %}For more information, see "[About project boards](/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)."{% endif %}
|
||||
|
||||
## Enforcing a policy for organization-wide projects
|
||||
|
||||
Across all organizations owned by your enterprise, you can enable or disable organization-wide project boards, or allow owners to administer the setting on the organization level.
|
||||
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% data reusables.enterprise-accounts.policies-tab %}
|
||||
{% data reusables.enterprise-accounts.projects-tab %}
|
||||
4. Under "Organization projects", review the information about changing the setting. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %}
|
||||
5. Under "Organization projects", use the drop-down menu and choose a policy.
|
||||
![Drop-down menu with organization project board policy options](/assets/images/help/business-accounts/organization-projects-policy-drop-down.png)
|
||||
|
||||
{% ifversion project-visibility-policy %}
|
||||
## Enforcing a policy for visibility changes to projects
|
||||
|
||||
Across all organizations owned by your enterprise, you can enable or disable the ability for people with admin access to a project to change the visibility of the project, or you can allow owners to administer the setting on the organization level.
|
||||
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% data reusables.enterprise-accounts.policies-tab %}
|
||||
{% data reusables.enterprise-accounts.projects-tab %}
|
||||
1. Under "Project visibility change permission", review the information about changing the setting. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %}
|
||||
1. Select the dropdown menu, then click a policy.
|
||||
|
||||
![Screenshot of the dropdown menu for configuring the "Project visibility change permission" policy](/assets/images/help/business-accounts/project-visibility-change-drop-down.png)
|
||||
{% endif %}
|
||||
|
||||
{% ifversion projects-v1 %}
|
||||
## Enforcing policies for {% data variables.product.prodname_projects_v1 %}
|
||||
|
||||
Some policies apply only to {% data variables.product.prodname_projects_v1 %}.
|
||||
|
||||
### Enforcing a policy for repository projects
|
||||
|
||||
Across all organizations owned by your enterprise, you can enable or disable repository-level projects, or allow owners to administer the setting at the organization level.
|
||||
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% data reusables.enterprise-accounts.policies-tab %}
|
||||
{% data reusables.enterprise-accounts.projects-tab %}
|
||||
4. Under "Repository projects", review the information about changing the setting. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %}
|
||||
5. Under "Repository projects", use the drop-down menu and choose a policy.
|
||||
|
||||
![Drop-down menu with repository project board policy options](/assets/images/help/business-accounts/repository-projects-policy-drop-down.png)
|
||||
{% endif %}
|
|
@ -1,48 +0,0 @@
|
|||
---
|
||||
title: Enforcing project board policies in your enterprise
|
||||
intro: 'You can enforce policies for projects within your enterprise''s organizations, or allow policies to be set in each organization.'
|
||||
permissions: Enterprise owners can enforce policies for project boards in an enterprise.
|
||||
redirect_from:
|
||||
- /articles/enforcing-project-board-settings-for-organizations-in-your-business-account
|
||||
- /articles/enforcing-project-board-policies-for-organizations-in-your-enterprise-account
|
||||
- /articles/enforcing-project-board-policies-in-your-enterprise-account
|
||||
- /github/setting-up-and-managing-your-enterprise-account/enforcing-project-board-policies-in-your-enterprise-account
|
||||
- /github/setting-up-and-managing-your-enterprise/enforcing-project-board-policies-in-your-enterprise-account
|
||||
- /github/setting-up-and-managing-your-enterprise/setting-policies-for-organizations-in-your-enterprise-account/enforcing-project-board-policies-in-your-enterprise-account
|
||||
versions:
|
||||
ghec: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: how_to
|
||||
topics:
|
||||
- Enterprise
|
||||
- Policies
|
||||
- Projects
|
||||
shortTitle: Project board policies
|
||||
---
|
||||
|
||||
## About policies for project boards in your enterprise
|
||||
|
||||
You can enforce policies to control how members of your enterprise on {% data variables.product.product_name %} manage project boards. You can also allow organization owners to manage policies for project boards. For more information, see "[About project boards](/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)."
|
||||
|
||||
## Enforcing a policy for organization-wide project boards
|
||||
|
||||
Across all organizations owned by your enterprise, you can enable or disable organization-wide project boards, or allow owners to administer the setting on the organization level.
|
||||
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% data reusables.enterprise-accounts.policies-tab %}
|
||||
{% data reusables.enterprise-accounts.projects-tab %}
|
||||
4. Under "Organization projects", review the information about changing the setting. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %}
|
||||
5. Under "Organization projects", use the drop-down menu and choose a policy.
|
||||
![Drop-down menu with organization project board policy options](/assets/images/help/business-accounts/organization-projects-policy-drop-down.png)
|
||||
|
||||
## Enforcing a policy for repository project boards
|
||||
|
||||
Across all organizations owned by your enterprise, you can enable or disable repository-level project boards, or allow owners to administer the setting on the organization level.
|
||||
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% data reusables.enterprise-accounts.policies-tab %}
|
||||
{% data reusables.enterprise-accounts.projects-tab %}
|
||||
4. Under "Repository projects", review the information about changing the setting. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %}
|
||||
5. Under "Repository projects", use the drop-down menu and choose a policy.
|
||||
![Drop-down menu with repository project board policy options](/assets/images/help/business-accounts/repository-projects-policy-drop-down.png)
|
|
@ -16,7 +16,7 @@ children:
|
|||
- /about-enterprise-policies
|
||||
- /enforcing-repository-management-policies-in-your-enterprise
|
||||
- /enforcing-team-policies-in-your-enterprise
|
||||
- /enforcing-project-board-policies-in-your-enterprise
|
||||
- /enforcing-policies-for-projects-in-your-enterprise
|
||||
- /restricting-email-notifications-for-your-enterprise
|
||||
- /enforcing-policies-for-security-settings-in-your-enterprise
|
||||
- /enforcing-policies-for-dependency-insights-in-your-enterprise
|
||||
|
|
|
@ -44,7 +44,7 @@ The Migrations API is currently in a preview period, which means that the endpoi
|
|||
* Your access token for authentication.
|
||||
* A [list of the repositories](/free-pro-team@latest/rest/repos#list-organization-repositories) you want to migrate:
|
||||
```shell
|
||||
curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" \
|
||||
curl -H "Authorization: Bearer <em>GITHUB_ACCESS_TOKEN</em>" \
|
||||
-X POST \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-d'{"lock_repositories":true,"repositories":["<em>orgname</em>/<em>reponame</em>", "<em>orgname</em>/<em>reponame</em>"]}' \
|
||||
|
@ -59,7 +59,7 @@ The Migrations API is currently in a preview period, which means that the endpoi
|
|||
* Your access token for authentication.
|
||||
* The unique `id` of the migration:
|
||||
```shell
|
||||
curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" \
|
||||
curl -H "Authorization: Bearer <em>GITHUB_ACCESS_TOKEN</em>" \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
https://api.github.com/orgs/<em>orgname</em>/migrations/<em>id</em>
|
||||
```
|
||||
|
@ -74,7 +74,7 @@ The Migrations API is currently in a preview period, which means that the endpoi
|
|||
* Your access token for authentication.
|
||||
* The unique `id` of the migration:
|
||||
```shell
|
||||
curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" \
|
||||
curl -H "Authorization: Bearer <em>GITHUB_ACCESS_TOKEN</em>" \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-L -o migration_archive.tar.gz \
|
||||
https://api.github.com/orgs/<em>orgname</em>/migrations/<em>id</em>/archive
|
||||
|
@ -84,7 +84,7 @@ The Migrations API is currently in a preview period, which means that the endpoi
|
|||
* Your access token for authentication.
|
||||
* The unique `id` of the migration:
|
||||
```shell
|
||||
curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" \
|
||||
curl -H "Authorization: Bearer <em>GITHUB_ACCESS_TOKEN</em>" \
|
||||
-X DELETE \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
https://api.github.com/orgs/<em>orgname</em>/migrations/<em>id</em>/archive
|
||||
|
|
|
@ -133,7 +133,7 @@ To unlock the repositories on a {% data variables.product.prodname_dotcom_the_we
|
|||
* The unique `id` of the migration
|
||||
* The name of the repository to unlock
|
||||
```shell
|
||||
curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" -X DELETE \
|
||||
curl -H "Authorization: Bearer <em>GITHUB_ACCESS_TOKEN</em>" -X DELETE \
|
||||
-H "Accept: application/vnd.github.wyandotte-preview+json" \
|
||||
https://api.github.com/orgs/<em>orgname</em>/migrations/<em>id</em>/repos/<em>repo_name</em>/lock
|
||||
```
|
||||
|
@ -142,7 +142,7 @@ curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" -X DELETE \
|
|||
|
||||
After unlocking the {% data variables.product.prodname_dotcom_the_website %} organization's repositories, you should delete every repository you previously migrated using [the repository delete endpoint](/rest/repos/#delete-a-repository). You'll need your access token for authentication:
|
||||
```shell
|
||||
curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" -X DELETE \
|
||||
curl -H "Authorization: Bearer <em>GITHUB_ACCESS_TOKEN</em>" -X DELETE \
|
||||
https://api.github.com/repos/<em>orgname</em>/<em>repo_name</em>
|
||||
```
|
||||
|
||||
|
|
|
@ -26,11 +26,12 @@ You can authorize an existing SSH key, or create a new SSH key and then authoriz
|
|||
|
||||
{% data reusables.user-settings.access_settings %}
|
||||
{% data reusables.user-settings.ssh %}
|
||||
3. Next to the SSH key you'd like to authorize, click **Enable SSO** or **Disable SSO**.
|
||||
![SSO token authorize button](/assets/images/help/settings/ssh-sso-button.png)
|
||||
4. Find the organization you'd like to authorize the SSH key for.
|
||||
5. Click **Authorize**.
|
||||
![Token authorize button](/assets/images/help/settings/ssh-sso-authorize.png)
|
||||
1. To the right of the SSH key you'd like to authorize, click **Configure SSO**.
|
||||
|
||||
![Screenshot of the SSO token authorize button](/assets/images/help/settings/ssh-sso-button.png)
|
||||
1. To the right of the organization you'd like to authorize the SSH key for, click **Authorize**.
|
||||
|
||||
![Screenshot of the token authorize button](/assets/images/help/settings/ssh-sso-authorize.png)
|
||||
|
||||
## Further reading
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
title: About billing for GitHub Actions
|
||||
intro: 'If you want to use {% data variables.product.prodname_actions %} beyond the storage or minutes included in your account, you will be billed for additional usage.'
|
||||
miniTocMaxHeadingLevel: 3
|
||||
redirect_from:
|
||||
- /github/setting-up-and-managing-billing-and-payments-on-github/about-billing-for-github-actions
|
||||
- /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions/about-billing-for-github-actions
|
||||
|
@ -27,6 +28,14 @@ Minutes reset every month, while storage usage does not.
|
|||
|
||||
### Included storage and minutes
|
||||
|
||||
{% ifversion actions-hosted-runners %}
|
||||
{% note %}
|
||||
|
||||
**Note**: Entitlement minutes cannot be used for Windows and Ubuntu runners over 2-cores. These runners will always be charged for, including in public repos. For more information, see "[Per-minute rates for runners](/billing/managing-billing-for-github-actions/about-billing-for-github-actions#per-minute-rates)."
|
||||
|
||||
{% endnote %}
|
||||
{% endif %}
|
||||
|
||||
|Product | Storage | Minutes (per month)|
|
||||
|------- | ------- | ---------|
|
||||
| {% data variables.product.prodname_free_user %} | 500 MB | 2,000 |
|
||||
|
@ -57,15 +66,15 @@ The storage used by a repository is the total storage used by {% data variables.
|
|||
|
||||
### Per-minute rates
|
||||
|
||||
| Operating system | Per-minute rate (USD) |
|
||||
|------- | ---------|
|
||||
| Linux | $0.008 |
|
||||
| macOS | $0.08 |
|
||||
| Windows | $0.016 |
|
||||
{% data reusables.billing.billing-standard-runners %}
|
||||
{% ifversion actions-hosted-runners %}{% data reusables.billing.billing-hosted-runners %}{% endif %}
|
||||
|
||||
The number of jobs you can run concurrently across all repositories in your user or organization account depends on your GitHub plan. For more information, see "[Usage limits and billing](/actions/reference/usage-limits-billing-and-administration)" for {% data variables.product.prodname_dotcom %}-hosted runners and "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits)" for self-hosted runner usage limits.
|
||||
|
||||
{% data reusables.user-settings.context_switcher %}
|
||||
- The number of jobs you can run concurrently across all repositories in your user or organization account depends on your GitHub plan. For more information, see "[Usage limits and billing](/actions/reference/usage-limits-billing-and-administration)" for {% data variables.product.prodname_dotcom %}-hosted runners and "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners/#usage-limits)" for self-hosted runner usage limits.
|
||||
- {% data reusables.user-settings.context_switcher %}
|
||||
{% ifversion actions-hosted-runners %}
|
||||
- For {% data variables.actions.hosted_runner %}s, there is no additional cost for configurations that assign public static IP addresses to a {% data variables.actions.hosted_runner %}. For more information on {% data variables.actions.hosted_runner %}s, see "[Using {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/using-larger-runners)."
|
||||
- Entitlement minutes cannot be used for {% data variables.actions.hosted_runner %}s.
|
||||
{% endif %}
|
||||
|
||||
## Calculating minute and storage spending
|
||||
|
||||
|
|
|
@ -33,8 +33,6 @@ In repositories where {% data variables.product.prodname_code_scanning %} is con
|
|||
- The **Conversation** tab of the pull request, as part of a pull request review {% endif %}
|
||||
- The **Files changed** tab of the pull request
|
||||
|
||||
{% ifversion code-scanning-pr-conversations-tab %} {% endif %}
|
||||
|
||||
If you have write permission for the repository, you can see any existing {% data variables.product.prodname_code_scanning %} alerts on the **Security** tab. For information about repository alerts, see "[Managing {% data variables.product.prodname_code_scanning %} alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository)."
|
||||
|
||||
{% ifversion fpt or ghes > 3.2 or ghae or ghec %}
|
||||
|
|
|
@ -71,6 +71,29 @@ SARIF files support both rules and results. The information stored in these elem
|
|||
|
||||
When you compare SARIF files generated by analyzing different codebases with the same tool and rules, you should see differences in the results of the analyses but not in the rules.
|
||||
|
||||
## Specifying the root for source files
|
||||
|
||||
{% data variables.product.prodname_code_scanning_capc %} interprets results that are reported with relative paths as relative to the root of the repository analyzed. If a result contains an absolute URI, the URI is converted to a relative URI. The relative URI can then be matched against a file committed to the repository.
|
||||
|
||||
You can provide the source root for conversion from absolute to relative URIs in one of the following ways.
|
||||
|
||||
- [`checkout_path`](https://github.com/github/codeql-action/blob/c2c0a2908e95769d01b907f9930050ecb5cf050d/analyze/action.yml#L44-L47) input to the `github/codeql-action/analyze` action
|
||||
- `checkout_uri` parameter to the SARIF upload API endpoint. For more information, see "[{% data variables.product.prodname_code_scanning_capc %}](/rest/code-scanning#upload-an-analysis-as-sarif-data)" in the REST API documentation
|
||||
- [`invocation.workingDirectory.uri`](https://docs.oasis-open.org/sarif/sarif/v2.1.0/csprd01/sarif-v2.1.0-csprd01.html#_Toc9244365) property in the SARIF file
|
||||
|
||||
If you provide a source root, any location of an artifact specified using an absolute URI must use the same URI scheme. If there is a mismatch between the URI scheme for the source root and one or more of the absolute URIs, the upload is rejected.
|
||||
|
||||
For example, a SARIF file is uploaded using a source root of `file:///github/workspace`.
|
||||
|
||||
```
|
||||
# Conversion of absolute URIs to relative URIs for location artifacts
|
||||
|
||||
file:///github/workspace/src/main.go -> src/main.go
|
||||
file:///tmp/go-build/tmp.go -> file:///tmp/go-build/tmp.go
|
||||
```
|
||||
|
||||
The file is successfully uploaded as both absolute URIs use the same URI scheme as the source root.
|
||||
|
||||
## Validating your SARIF file
|
||||
|
||||
<!--UI-LINK: When code scanning fails, the error banner shown in the Security > Code scanning alerts view links to this anchor.-->
|
||||
|
@ -107,6 +130,7 @@ Any valid SARIF 2.1.0 output file can be uploaded, however, {% data variables.pr
|
|||
|----|----|
|
||||
| `tool.driver` | **Required.** A `toolComponent` object that describes the analysis tool. For more information, see the [`toolComponent` object](#toolcomponent-object). |
|
||||
| `tool.extensions[]` | **Optional.** An array of `toolComponent` objects that represent any plugins or extensions used by the tool during analysis. For more information, see the [`toolComponent` object](#toolcomponent-object). |
|
||||
| `invocation.workingDirectory.uri` | **Optional.** This field is used only when `checkout_uri` (SARIF upload API only) or `checkout_path` (% data variables.product.prodname_actions %} only) are not provided. The value is used to convert absolute URIs used in [`physicalLocation` objects](#physicallocation-object) to relative URIs. For more information, see "[Specifying the root for source files](#specifying-the-root-for-source-files)."|
|
||||
| `results[]` | **Required.** The results of the analysis tool. {% data variables.product.prodname_code_scanning_capc %} displays the results on {% data variables.product.prodname_dotcom %}. For more information, see the [`result` object](#result-object).
|
||||
|
||||
### `toolComponent` object
|
||||
|
@ -168,7 +192,7 @@ A location within a programming artifact, such as a file in the repository or a
|
|||
|
||||
| Name | Description |
|
||||
|----|----|
|
||||
| `artifactLocation.uri`| **Required.** A URI indicating the location of an artifact, usually a file either in the repository or generated during a build. If the URI is relative, it should be relative to the root of the {% data variables.product.prodname_dotcom %} repository being analyzed. For example, main.js or src/script.js are relative to the root of the repository. If the URI is absolute, {% data variables.product.prodname_code_scanning %} can use the URI to checkout the artifact and match up files in the repository. For example, `https://github.com/ghost/example/blob/00/src/promiseUtils.js`.
|
||||
| `artifactLocation.uri`| **Required.** A URI indicating the location of an artifact, usually a file either in the repository or generated during a build. For the best results we recommend that this is a relative path from the root of the GitHub repository being analyzed. For example, `src/main.js`. For more information about artifact URIs, see "[Specifying the root for source files](#specifying-the-root-for-source-files)."|
|
||||
| `region.startLine` | **Required.** The line number of the first character in the region.
|
||||
| `region.startColumn` | **Required.** The column number of the first character in the region.
|
||||
| `region.endLine` | **Required.** The line number of the last character in the region.
|
||||
|
|
|
@ -52,9 +52,9 @@ Generally, we name our supported ecosystems after the software programming langu
|
|||
- Composer (registry: https://packagist.org/){% ifversion GH-advisory-db-erlang-support %}
|
||||
- Erlang (registry: https://hex.pm/){% endif %}
|
||||
- Go (registry: https://pkg.go.dev/)
|
||||
{% ifversion fpt or ghec or ghes > 3.6 or ghae-issue-7508 %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae-issue-7508 %}
|
||||
- GitHub Actions (https://github.com/marketplace?type=actions/) {% endif %}
|
||||
- Maven (registry: https://repo1.maven.org/maven2/org/)
|
||||
- Maven (registry: https://repo.maven.apache.org/maven2)
|
||||
- npm (registry: https://www.npmjs.com/)
|
||||
- NuGet (registry: https://www.nuget.org/)
|
||||
- pip (registry: https://pypi.org/)
|
||||
|
|
|
@ -75,7 +75,7 @@ The following configuration options are available.
|
|||
{% endtip %}
|
||||
{% endif %}
|
||||
|
||||
This {% data variables.product.prodname_dependency_review_action %} example file illustrates how you can use these configuration options.
|
||||
This {% data variables.product.prodname_dependency_review_action %} example file illustrates how you can use these configuration options. Notice that the example uses short version number for the action (`v2`) instead of a semver release number (for example, `v2.0.8`). This ensures that you use the most recent minor version of the action.
|
||||
|
||||
```yaml{:copy}
|
||||
name: 'Dependency Review'
|
||||
|
|
|
@ -17,7 +17,7 @@ redirect_from:
|
|||
|
||||
## About the {% data variables.product.prodname_vscode_command_palette %}
|
||||
|
||||
The Command Palette is one of the focal features of {% data variables.product.prodname_vscode %} and is available for you to use in {% data variables.product.prodname_github_codespaces %}. The {% data variables.product.prodname_vscode_command_palette %} allows you to access many commands for {% data variables.product.prodname_codespaces %} and {% data variables.product.prodname_vscode_shortname %}. For more information on using the {% data variables.product.prodname_vscode_command_palette_shortname %}, see "[User Interface](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette)" in the {% data variables.product.prodname_vscode_shortname %} documentation.
|
||||
The Command Palette is one of the focal features of {% data variables.product.prodname_vscode %} and is available for you to use in {% data variables.product.prodname_github_codespaces %}. The Command Palette allows you to access many commands for {% data variables.product.prodname_codespaces %} and {% data variables.product.prodname_vscode_shortname %}. For more information on using the {% data variables.product.prodname_vscode_command_palette_shortname %}, see "[User Interface](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette)" in the {% data variables.product.prodname_vscode_shortname %} documentation.
|
||||
|
||||
## Accessing the {% data variables.product.prodname_vscode_command_palette_shortname %}
|
||||
|
||||
|
|
|
@ -149,3 +149,6 @@ Replace `machine-type` with a valid identifier for an available machine type. Id
|
|||
For full details of the options for this command, see [the {% data variables.product.prodname_cli %} manual](https://cli.github.com/manual/gh_codespace_create).
|
||||
|
||||
{% endcli %}
|
||||
|
||||
## Further reading
|
||||
- "[Adding an 'Open in GitHub Codespaces' badge](/codespaces/setting-up-your-project-for-codespaces/adding-a-codespaces-badge)"
|
|
@ -99,4 +99,4 @@ gh cs delete --repo octo-org/octo-repo --days 7
|
|||
{% endcli %}
|
||||
|
||||
## Further reading
|
||||
- [Codespaces lifecycle](/codespaces/developing-in-codespaces/codespaces-lifecycle)
|
||||
- "[Codespaces lifecycle](/codespaces/developing-in-codespaces/codespaces-lifecycle)"
|
||||
|
|
|
@ -0,0 +1,120 @@
|
|||
---
|
||||
title: Getting started with GitHub Codespaces for machine learning
|
||||
shortTitle: Machine learning
|
||||
intro: 'Learn about working on machine learning projects with {% data variables.product.prodname_github_codespaces %} and its out-of-the-box tools.'
|
||||
product: '{% data reusables.gated-features.codespaces %}'
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghec: '*'
|
||||
type: tutorial
|
||||
topics:
|
||||
- Codespaces
|
||||
- Developer
|
||||
---
|
||||
|
||||
## Introduction
|
||||
|
||||
This guide introduces you to machine learning with {% data variables.product.prodname_github_codespaces %}. You’ll build a simple image classifier, learn about some of the tools that come preinstalled in {% data variables.product.prodname_github_codespaces %}, configure your development environment for NVIDIA CUDA, and use {% data variables.product.prodname_cli %} to open your codespace in JupyterLab.
|
||||
|
||||
## Prerequisite
|
||||
|
||||
You have access to {% data variables.product.prodname_github_codespaces %}. For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace#access-to-github-codespaces)."
|
||||
|
||||
## Build a simple image classifier
|
||||
|
||||
We'll use a Jupyter notebook to build a simple image classifier.
|
||||
|
||||
Jupyter notebooks are sets of cells that you can execute one after another. The notebook we'll use includes a number of cells that build an image classifier using [PyTorch](https://pytorch.org/). Each cell is a different phase of that process: download a dataset, set up a neural network, train a model, and then test that model.
|
||||
|
||||
We'll run all of the cells, in sequence, to perform all phases of building the image classifier. When we do this Jupyter saves the output back into the notebook so that you can examine the results.
|
||||
|
||||
### Creating a repository and a codespace
|
||||
|
||||
1. Go to the [github/codespaces-getting-started-ml](https://github.com/github/codespaces-getting-started-ml) template repository and click **Use this template**.
|
||||
{% data reusables.codespaces.open-codespace-from-template-repo %}
|
||||
|
||||
By default, a codespace for this repository opens in a web-based version of {% data variables.product.prodname_vscode %}.
|
||||
|
||||
### Open the image classifier notebook
|
||||
|
||||
The default container image that's used by {% data variables.product.prodname_github_codespaces %} includes a set of machine learning libraries that are preinstalled in your codespace. For example, Numpy, pandas, SciPy, Matplotlib, seaborn, scikit-learn, TensorFlow, Keras, PyTorch, Requests, and Plotly. For more information about the default image, see "[Introduction to dev containers](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers#using-the-default-dev-container-configuration)" and [the `devcontainers/images` repository](https://github.com/devcontainers/images/tree/main/src/codespaces#github-codespaces-default-linux-universal).
|
||||
|
||||
1. In the {% data variables.product.prodname_vscode_shortname %} editor, close any "Get Started" tabs that are displayed.
|
||||
1. Open the `image-classifier.ipynb` notebook file.
|
||||
1. Click the Python kernel link at the top right of the editor.
|
||||
|
||||
![Screenshot of the Python kernal link](/assets/images/help/codespaces/jupyter-python-kernel-link.png)
|
||||
|
||||
1. In the drop-down menu, choose the kernel in the directory `/opt/python/latest/bin/python`.
|
||||
|
||||
![Screenshot of the Python kernal drop-down menu](/assets/images/help/codespaces/jupyter-python-kernel-dropdown.png)
|
||||
|
||||
### Build the image classifier
|
||||
|
||||
The image classifier notebook contains all the code you need to download a dataset, train a neural network, and evaluate its performance.
|
||||
|
||||
1. Click **Run All** to execute all of the notebook’s cells.
|
||||
|
||||
![Screenshot of the Run All button](/assets/images/help/codespaces/jupyter-run-all.png)
|
||||
|
||||
1. Scroll down to view the output of each cell.
|
||||
|
||||
![Screenshot of Step 3 in the editor](/assets/images/help/codespaces/jupyter-notebook-step3.png)
|
||||
|
||||
## Configure NVIDIA CUDA for your codespace
|
||||
|
||||
Some software, such as TensorFlow, requires you to install NVIDIA CUDA to use your codespace’s GPU. Where this is the case, you can create your own custom configuration, by using a `devcontainer.json` file, and specify that CUDA should be installed. For more information on creating a custom configuration, see "[Introduction to dev containers](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers#creating-a-custom-dev-container-configuration)."
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: For full details of the script that's run when you add the `nvidia-cuda` feature, see [the devcontainers/features repository](https://github.com/devcontainers/features/tree/main/src/nvidia-cuda).
|
||||
|
||||
{% endnote %}
|
||||
|
||||
1. Within a codespace, open the `.devcontainer/devcontainer.json` file in the editor.
|
||||
1. Add a top-level `features` object with the following contents:
|
||||
|
||||
```json{:copy}
|
||||
“features”: {
|
||||
"ghcr.io/devcontainers/features/nvidia-cuda:1": {
|
||||
"installCudnn": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
For more information about the `features` object, see the [development containers specification](https://containers.dev/implementors/features/#devcontainer-json-properties).
|
||||
|
||||
If you are using the `devcontainer.json` file from the image classifier repository you created for this tutorial, your `devcontainer.json` file will now look like this:
|
||||
|
||||
```
|
||||
{
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"ms-python.python",
|
||||
"ms-toolsai.jupyter"
|
||||
]
|
||||
}
|
||||
},
|
||||
“features”: {
|
||||
"ghcr.io/devcontainers/features/nvidia-cuda:1": {
|
||||
"installCudnn": true
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
1. Save the change.
|
||||
{% data reusables.codespaces.rebuild-command %}
|
||||
The codespace container will be rebuilt. This will take several minutes. When the rebuild is complete the codespace is automatically reopened.
|
||||
1. Commit the change to the repository so that CUDA will be installed in any new codespaces you create from this repository in future.
|
||||
|
||||
## Open your codespace in JupyterLab
|
||||
|
||||
The default container image that's used by {% data variables.product.prodname_github_codespaces %} includes JupyterLab, the web-based Jupyter IDE. You can use {% data variables.product.prodname_cli %} to open your codespace in JupyterLab without having to install anything else on your codespace.
|
||||
|
||||
1. In the terminal, enter the {% data variables.product.prodname_cli %} command `gh cs jupyter`.
|
||||
1. Choose the codespace you want to open.
|
||||
|
||||
![Screenshot of opening a codespace from the terminal](/assets/images/help/codespaces/open-codespace-in-jupyter.png)
|
||||
|
|
@ -18,6 +18,7 @@ children:
|
|||
- /forwarding-ports-in-your-codespace
|
||||
- /default-environment-variables-for-your-codespace
|
||||
- /connecting-to-a-private-network
|
||||
- /getting-started-with-github-codespaces-for-machine-learning
|
||||
- /using-github-codespaces-in-visual-studio-code
|
||||
- /using-github-codespaces-with-github-cli
|
||||
---
|
||||
|
|
|
@ -73,7 +73,7 @@ As you develop in your codespace, it will save any changes to your files every f
|
|||
|
||||
### Closing or stopping your codespace
|
||||
|
||||
To stop your codespace you can [use the {% data variables.product.prodname_vscode_command_palette %}](/codespaces/codespaces-reference/using-the-vs-code-command-palette-in-codespaces#suspending-or-stopping-a-codespace) (`Shift + Command + P` (Mac) / `Ctrl + Shift + P` (Windows)). If you exit your codespace without running the stop command (for example, closing the browser tab), or if you leave the codespace running without interaction, the codespace and its running processes will continue until a window of inactivity occurs, after which the codespace will stop. By default, the window of inactivity is 30 minutes.
|
||||
To stop your codespace you can [use the {% data variables.product.prodname_vscode_command_palette %}](/codespaces/codespaces-reference/using-the-vs-code-command-palette-in-codespaces#suspending-or-stopping-a-codespace) (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> (Mac) / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux)). If you exit your codespace without running the stop command (for example, closing the browser tab), or if you leave the codespace running without interaction, the codespace and its running processes will continue until a window of inactivity occurs, after which the codespace will stop. By default, the window of inactivity is 30 minutes.
|
||||
|
||||
When you close or stop your codespace, all uncommitted changes are preserved until you connect to the codespace again.
|
||||
|
||||
|
@ -114,7 +114,7 @@ If you already use {% data variables.product.prodname_vscode_shortname %}, you c
|
|||
|
||||
## Further reading
|
||||
|
||||
- [Enabling {% data variables.product.prodname_codespaces %} for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization)
|
||||
- [Managing billing for {% data variables.product.prodname_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-codespaces-in-your-organization)
|
||||
- [Setting up your project for Codespaces](/codespaces/setting-up-your-project-for-codespaces)
|
||||
- [Codespaces lifecycle](/codespaces/developing-in-codespaces/codespaces-lifecycle)
|
||||
- "[Enabling {% data variables.product.prodname_codespaces %} for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization)"
|
||||
- "[Managing billing for {% data variables.product.prodname_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-codespaces-in-your-organization)"
|
||||
- "[Setting up your project for Codespaces](/codespaces/setting-up-your-project-for-codespaces)"
|
||||
- "[Codespaces lifecycle](/codespaces/developing-in-codespaces/codespaces-lifecycle)"
|
||||
|
|
|
@ -25,12 +25,7 @@ For more information on exactly how {% data variables.product.prodname_github_co
|
|||
## Creating your codespace
|
||||
|
||||
1. Navigate to the [template repository](https://github.com/github/haikus-for-codespaces) and select **Use this template**.
|
||||
|
||||
1. Choose an owner for the new repository, enter a repository name, select your preferred privacy setting, and click **Create repository from template**.
|
||||
|
||||
1. Navigate to the main page of the newly created repository. Under the repository name, use the **{% octicon "code" aria-label="The code icon" %} Code** drop-down menu, and in the **Codespaces** tab, click **Create codespace on main**.
|
||||
|
||||
![New codespace button](/assets/images/help/codespaces/new-codespace-button.png)
|
||||
{% data reusables.codespaces.open-codespace-from-template-repo %}
|
||||
|
||||
## Running the application
|
||||
|
||||
|
@ -115,5 +110,5 @@ You've successfully created, personalized, and run your first application within
|
|||
|
||||
## Further reading
|
||||
|
||||
- [Enabling {% data variables.product.prodname_codespaces %} for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization)
|
||||
- [Managing billing for {% data variables.product.prodname_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-codespaces-in-your-organization)
|
||||
- "[Enabling {% data variables.product.prodname_codespaces %} for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization)"
|
||||
- "[Managing billing for {% data variables.product.prodname_codespaces %} in your organization](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-codespaces-in-your-organization)"
|
||||
|
|
|
@ -15,6 +15,7 @@ includeGuides:
|
|||
- /codespaces/setting-up-your-project-for-codespaces/setting-up-your-python-project-for-codespaces
|
||||
- /codespaces/setting-up-your-project-for-codespaces/setting-up-your-dotnet-project-for-codespaces
|
||||
- /codespaces/setting-up-your-project-for-codespaces/setting-up-your-java-project-for-codespaces
|
||||
- /codespaces/setting-up-your-project-for-codespaces/adding-a-codespaces-badge
|
||||
- /codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project
|
||||
- /codespaces/setting-up-your-codespace/personalizing-codespaces-for-your-account
|
||||
- /codespaces/developing-in-codespaces/creating-a-codespace
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
---
|
||||
title: Adding an "Open in GitHub Codespaces" badge
|
||||
shortTitle: Add a Codespaces badge
|
||||
intro: 'You can add a badge to a Markdown file in your repository which people can click to create a codespace.'
|
||||
allowTitleToDifferFromFilename: true
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghec: '*'
|
||||
type: how_to
|
||||
topics:
|
||||
- Codespaces
|
||||
- Set up
|
||||
product: '{% data reusables.gated-features.codespaces %}'
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Adding an "Open in {% data variables.product.prodname_github_codespaces %}" badge to a Markdown file gives people an easy way to create a codespace for your repository.
|
||||
|
||||
![Screenshot of a Codespaces badge on a README page](/assets/images/help/codespaces/codespaces-badge-on-readme.png)
|
||||
|
||||
When you create a badge you can choose specific configuration options for the codespace that the badge will create.
|
||||
|
||||
When people click the badge they'll be taken to the advanced options page for codespace creation, with the options you chose preselected. For more information about the advanced options page, see "[Creating a codespace](https://docs-internal-30445-bfc9ce.preview.ghdocs.com/en/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)."
|
||||
|
||||
From the advanced options page, users can change the preselected settings if required, then click **Create codespace**.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: Be aware that people who don't yet have access to {% data variables.product.prodname_github_codespaces %} will see a 404 message if they click this badge.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
## Creating an "Open in {% data variables.product.prodname_github_codespaces %}" badge
|
||||
|
||||
{% data reusables.repositories.navigate-to-repo %}
|
||||
1. Under the repository name, use the "Branch" drop-down menu, and select the branch you want to create the badge for.
|
||||
|
||||
![Screenshot of the Branch drop-down menu](/assets/images/help/codespaces/branch-drop-down.png)
|
||||
|
||||
1. Click the **{% octicon "code" aria-label="The code icon" %} Code** button, then click the **Codespaces** tab.
|
||||
|
||||
![Screenshot of the New codespace button](/assets/images/help/codespaces/new-codespace-button.png)
|
||||
|
||||
1. Click the down arrow at the side of the **Create codespace on BRANCH** button, click **Configure and create codespace**, then click the **Configure and create codespace** button.
|
||||
|
||||
![Screenshot of the "Configure and create codespace" option](/assets/images/help/codespaces/configure-and-create-option.png)
|
||||
|
||||
1. On the advanced options page for codespace creation, select the values you want to be preselected in each field.
|
||||
|
||||
![Screenshot of the advanced options page](/assets/images/help/codespaces/advanced-options.png)
|
||||
|
||||
1. Copy the URL from the browser's address bar.
|
||||
1. Add the following Markdown to, for example, the `README.md` file of your repository:
|
||||
|
||||
```Markdown{:copy}
|
||||
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](COPIED-URL)
|
||||
```
|
||||
|
||||
For example:
|
||||
|
||||
```Markdown
|
||||
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=0000000&machine=premiumLinux&devcontainer_path=.devcontainer%2Fdevcontainer.json&location=WestUs2)
|
||||
```
|
||||
|
||||
In the above example, `0000000` will be the reference number of your repository. The other details in the URL are determined by the values you selected in the fields on the advanced options page.
|
|
@ -17,5 +17,6 @@ children:
|
|||
- /setting-up-your-java-project-for-codespaces
|
||||
- /setting-up-your-python-project-for-codespaces
|
||||
- /setting-a-minimum-specification-for-codespace-machines
|
||||
- /adding-a-codespaces-badge
|
||||
---
|
||||
|
||||
|
|
|
@ -155,9 +155,9 @@ You can add features to your predefined container configuration to customize whi
|
|||
You can add some of the most common features by selecting them when configuring your predefined container. For more information on the available features, see the [script library](https://github.com/microsoft/vscode-dev-containers/tree/main/script-library#scripts) in the `vscode-dev-containers` repository.
|
||||
|
||||
|
||||
1. Access the Command Palette (`Shift + Command + P` / `Ctrl + Shift + P`), then start typing "configure". Select **Codespaces: Configure Devcontainer Features**.
|
||||
1. Access the Command Palette (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> (Mac) / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux)), then start typing "configure". Select **Codespaces: Configure Devcontainer Features**.
|
||||
|
||||
![The Configure Devcontainer Features command in the command palette](/assets/images/help/codespaces/codespaces-configure-features.png)
|
||||
![The Configure Devcontainer Features command in the Command Palette](/assets/images/help/codespaces/codespaces-configure-features.png)
|
||||
|
||||
1. Update your feature selections, then click **OK**.
|
||||
|
||||
|
@ -165,7 +165,7 @@ You can add some of the most common features by selecting them when configuring
|
|||
|
||||
1. To apply the changes, in the bottom right corner of the screen, click **Rebuild now**. For more information about rebuilding your container, see "[Applying changes to your configuration](#applying-configuration-changes-to-a-codespace)."
|
||||
|
||||
!["Codespaces: Rebuild Container" in the command palette](/assets/images/help/codespaces/rebuild-prompt.png)
|
||||
!["Codespaces: Rebuild Container" in the Command Palette](/assets/images/help/codespaces/rebuild-prompt.png)
|
||||
|
||||
## Creating a custom dev container configuration
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ These logs contain detailed information about the codespace, the container, the
|
|||
{% webui %}
|
||||
|
||||
1. If you are using {% data variables.product.prodname_codespaces %} in the browser, ensure that you are connected to the codespace you want to debug.
|
||||
1. Open the {% data variables.product.prodname_vscode %} Command Palette (`Shift + Command + P` (Mac) / `Ctrl + Shift + P` (Windows)) and type **Export logs**. Select **Codespaces: Export Logs** from the list to download the logs.
|
||||
1. Open the {% data variables.product.prodname_vscode_command_palette_shortname %} (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> (Mac) / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux)) and type **Export logs**. Select **Codespaces: Export Logs** from the list to download the logs.
|
||||
1. Define where to save the zip archive of logs then click **Save** (desktop) or click **OK** (web).
|
||||
1. If you are using {% data variables.product.prodname_codespaces %} in the browser, right-click on the zip archive of logs from the Explorer view and select **Download…** to download them to your local machine.
|
||||
|
||||
|
@ -36,7 +36,7 @@ These logs contain detailed information about the codespace, the container, the
|
|||
|
||||
{% vscode %}
|
||||
|
||||
1. Open the {% data variables.product.prodname_vscode %} Command Palette (`Shift + Command + P` (Mac) / `Ctrl + Shift + P` (Windows)) and type **Export logs**. Select **Codespaces: Export Logs** from the list to download the logs.
|
||||
1. Open the {% data variables.product.prodname_vscode_command_palette_shortname %} (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> (Mac) / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux)) and type **Export logs**. Select **Codespaces: Export Logs** from the list to download the logs.
|
||||
1. Define where to save the zip archive of logs then click **Save** (desktop) or click **OK** (web).
|
||||
|
||||
{% endvscode %}
|
||||
|
@ -55,7 +55,7 @@ These logs contain information about the container, dev container, and their con
|
|||
{% webui %}
|
||||
|
||||
1. Connect to the codespace you want to debug.
|
||||
2. Open the {% data variables.product.prodname_vscode_command_palette %} (`Shift + Command + P` (Mac) / `Ctrl + Shift + P` (Windows)) and type **Creation logs**. Select **Codespaces: View Creation Log** from the list to open the `creation.log` file.
|
||||
2. Open the {% data variables.product.prodname_vscode_command_palette_shortname %} (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> (Mac) / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux)) and type **Creation logs**. Select **Codespaces: View Creation Log** from the list to open the `creation.log` file.
|
||||
|
||||
If you want to share the log with support, you can copy the text from the creation log into a text editor and save the file locally.
|
||||
|
||||
|
@ -63,7 +63,7 @@ If you want to share the log with support, you can copy the text from the creati
|
|||
|
||||
{% vscode %}
|
||||
|
||||
Open the Command Palette (`Shift + Command + P` (Mac) / `Ctrl + Shift + P` (Windows)) and type **Creation logs**. Select **Codespaces: View Creation Log** from the list to open the `creation.log` file.
|
||||
Open the {% data variables.product.prodname_vscode_command_palette_shortname %} (<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> (Mac) / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux)) and type **Creation logs**. Select **Codespaces: View Creation Log** from the list to open the `creation.log` file.
|
||||
|
||||
If you want to share the log with support, you can copy the text from the creation log into a text editor and save the file locally.
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ redirect_from:
|
|||
Codespaces are set to stop after 30 minutes without any activity. If you try to interact with a codespace after it has stopped, you may see a `503 service unavailable` error.
|
||||
|
||||
- If a **Start** button is shown in {% data variables.product.prodname_vscode %} or in your browser window, click **Start** to reconnect to the codespace.
|
||||
- Reset your codespace by reloading the window. From the [command palette](/codespaces/codespaces-reference/using-the-command-palette-in-codespaces#accessing-the-command-palette) in {% data variables.product.prodname_vscode %}, click **Developer: Reload Window**.
|
||||
- Reset your codespace by reloading the window. From the [Command Palette](/codespaces/codespaces-reference/using-the-command-palette-in-codespaces#accessing-the-command-palette) in {% data variables.product.prodname_vscode %}, click **Developer: Reload Window**.
|
||||
|
||||
## Browser cannot connect
|
||||
|
||||
|
|
|
@ -149,13 +149,19 @@ To authenticate with an installation access token, include it in the Authorizati
|
|||
|
||||
```shell
|
||||
$ curl -i \
|
||||
-H "Authorization: token YOUR_INSTALLATION_ACCESS_TOKEN" \
|
||||
-H "Authorization: Bearer YOUR_INSTALLATION_ACCESS_TOKEN" \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
{% data variables.product.api_url_pre %}/installation/repositories
|
||||
```
|
||||
|
||||
`YOUR_INSTALLATION_ACCESS_TOKEN` is the value you must replace.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note:** {% data reusables.getting-started.bearer-vs-token %}
|
||||
|
||||
{% endnote %}
|
||||
|
||||
## Accessing API endpoints as an installation
|
||||
|
||||
For a list of REST API endpoints that are available for use by {% data variables.product.prodname_github_apps %} using an installation access token, see "[Available Endpoints](/rest/overview/endpoints-available-for-github-apps)."
|
||||
|
|
|
@ -107,13 +107,13 @@ By default, the response takes the following form. The response parameters `expi
|
|||
|
||||
The user's access token allows the GitHub App to make requests to the API on behalf of a user.
|
||||
|
||||
Authorization: token OAUTH-TOKEN
|
||||
Authorization: Bearer OAUTH-TOKEN
|
||||
GET {% data variables.product.api_url_code %}/user
|
||||
|
||||
For example, in curl you can set the Authorization header like this:
|
||||
|
||||
```shell
|
||||
curl -H "Authorization: token OAUTH-TOKEN" {% data variables.product.api_url_pre %}/user
|
||||
curl -H "Authorization: Bearer OAUTH-TOKEN" {% data variables.product.api_url_pre %}/user
|
||||
```
|
||||
|
||||
## Device flow
|
||||
|
@ -132,12 +132,12 @@ The device flow allows you to authorize users for a headless app, such as a CLI
|
|||
|
||||
Once you have an OAuth token for a user, you can check which installations that user can access.
|
||||
|
||||
Authorization: token OAUTH-TOKEN
|
||||
Authorization: Bearer OAUTH-TOKEN
|
||||
GET /user/installations
|
||||
|
||||
You can also check which repositories are accessible to a user for an installation.
|
||||
|
||||
Authorization: token OAUTH-TOKEN
|
||||
Authorization: Bearer OAUTH-TOKEN
|
||||
GET /user/installations/:installation_id/repositories
|
||||
|
||||
More details can be found in: [List app installations accessible to the user access token](/rest/apps#list-app-installations-accessible-to-the-user-access-token) and [List repositories accessible to the user access token](/rest/apps#list-repositories-accessible-to-the-user-access-token).
|
||||
|
|
|
@ -106,13 +106,13 @@ Accept: application/xml
|
|||
|
||||
The access token allows you to make requests to the API on a behalf of a user.
|
||||
|
||||
Authorization: token OAUTH-TOKEN
|
||||
Authorization: Bearer OAUTH-TOKEN
|
||||
GET {% data variables.product.api_url_code %}/user
|
||||
|
||||
For example, in curl you can set the Authorization header like this:
|
||||
|
||||
```shell
|
||||
curl -H "Authorization: token OAUTH-TOKEN" {% data variables.product.api_url_pre %}/user
|
||||
curl -H "Authorization: Bearer OAUTH-TOKEN" {% data variables.product.api_url_pre %}/user
|
||||
```
|
||||
|
||||
## Device flow
|
||||
|
|
|
@ -27,7 +27,7 @@ If your {% data variables.product.prodname_oauth_app %} doesn't have access to a
|
|||
Check headers to see what OAuth scopes you have, and what the API action accepts:
|
||||
|
||||
```shell
|
||||
$ curl -H "Authorization: token OAUTH-TOKEN" {% data variables.product.api_url_pre %}/users/codertocat -I
|
||||
$ curl -H "Authorization: Bearer OAUTH-TOKEN" {% data variables.product.api_url_pre %}/users/codertocat -I
|
||||
HTTP/2 200
|
||||
X-OAuth-Scopes: repo, user
|
||||
X-Accepted-OAuth-Scopes: user
|
||||
|
|
|
@ -23,9 +23,9 @@ Email <a href="mailto:partnerships@github.com">partnerships@github.com</a> to re
|
|||
## Have an integration that works with GitHub?
|
||||
|
||||
Awesome! We'd love to have you be part of the program. Here’s how you can spread the word:</p>
|
||||
* [Let us know about your integration](https://support.github.com/contact?tags=rr-general-technical&form[subject]=New+GitHub+Integration)
|
||||
* Use the [Octocat or GitHub logo](https://github.com/logos) to identify that your product works with GitHub
|
||||
* Post a video or a blog on your website about your integration
|
||||
* [Let us know about your integration](https://support.github.com/contact?tags=rr-general-technical&form[subject]=New+GitHub+Integration).
|
||||
* Use the [Octocat or GitHub logo](https://github.com/logos) to identify that your product works with GitHub.
|
||||
* Post a video or a blog on your website about your integration.
|
||||
|
||||
## Ready to join the GitHub Developer Program?
|
||||
|
||||
|
|
|
@ -24,23 +24,22 @@ To configure an LMS to connect to {% data variables.product.prodname_classroom %
|
|||
|
||||
## Supported LMSes
|
||||
|
||||
{% data variables.product.prodname_classroom %} supports import of roster data from LMSes that implement Learning Tools Interoperability (LTI) standards.
|
||||
{% note %}
|
||||
|
||||
- LTI version 1.0 and/or 1.1
|
||||
- LTI Names and Roles Provisioning 1.X
|
||||
**Note:** {% data variables.product.prodname_classroom %} previously supported import of roster data from LMSes that implement Learning Tools Interoperability (LTI) versions 1.0 and 1.1. On June 30, 2022, the Instructional Management System (IMS) Global Learning Consortium [ended support for LTI versions 1.0 and 1.1](https://www.imsglobal.org/lti-security-announcement-and-deprecation-schedule). In the interest of keeping sensitive student information safe and secure, {% data variables.product.company_short %} has temporarily disabled importing roster data from LTI-compliant LMSes.<br><br>
|
||||
|
||||
Using LTI helps keep your information safe and secure. LTI is an industry-standard protocol and GitHub Classroom's use of LTI is certified by the Instructional Management System (IMS) Global Learning Consortium. For more information, see [Learning Tools Interoperability](https://www.imsglobal.org/activity/learning-tools-interoperability) and [About IMS Global Learning Consortium](http://www.imsglobal.org/aboutims.html) on the IMS Global Learning Consortium website.
|
||||
Support for the latest version of Learning Tools Interoperability, [LTI 1.3](https://www.imsglobal.org/activity/learning-tools-interoperability), is currently being worked on and will be made available in {% data variables.product.prodname_classroom %} very soon.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
LTI is an industry-standard protocol and GitHub Classroom's use of LTI is certified by the Instructional Management System (IMS) Global Learning Consortium. For more information, see [Learning Tools Interoperability](https://www.imsglobal.org/activity/learning-tools-interoperability) and [About IMS Global Learning Consortium](http://www.imsglobal.org/aboutims.html) on the IMS Global Learning Consortium website.
|
||||
|
||||
{% data variables.product.company_short %} has tested import of roster data from the following LMSes into {% data variables.product.prodname_classroom %}.
|
||||
|
||||
- Canvas
|
||||
- Google Classroom
|
||||
- Moodle
|
||||
- Sakai
|
||||
|
||||
Currently, {% data variables.product.prodname_classroom %} doesn't support import of roster data from Blackboard or Brightspace.
|
||||
|
||||
## Generating configuration credentials for your classroom
|
||||
## Connecting to Google Classroom
|
||||
|
||||
{% data reusables.classroom.sign-into-github-classroom %}
|
||||
{% data reusables.classroom.click-classroom-in-list %}
|
||||
|
@ -48,90 +47,16 @@ Currently, {% data variables.product.prodname_classroom %} doesn't support impor
|
|||
1. If your classroom already has a roster, you can either update the roster or delete the roster and create a new roster.
|
||||
- For more information about deleting and creating a roster, see "[Deleting a roster for a classroom](/education/manage-coursework-with-github-classroom/manage-classrooms#deleting-a-roster-for-a-classroom)" and "[Creating a roster for your classroom](/education/manage-coursework-with-github-classroom/manage-classrooms#creating-a-roster-for-your-classroom)."
|
||||
- For more information about updating a roster, see "[Adding students to the roster for your classroom](/education/manage-coursework-with-github-classroom/manage-classrooms#adding-students-to-the-roster-for-your-classroom)."
|
||||
1. In the list of LMSes, click your LMS. If your LMS is not supported, click **Other LMS**.
|
||||
![List of LMSes](/assets/images/help/classroom/classroom-settings-click-lms.png)
|
||||
1. Read about connecting your LMS, then click **Connect to _LMS_**.
|
||||
1. Copy the "Consumer Key", "Shared Secret", and "Launch URL" for the connection to the classroom.
|
||||
![Copy credentials](/assets/images/help/classroom/classroom-copy-credentials.png)
|
||||
1. In the list of LMSes, click Google Classroom.
|
||||
![Google Classroom](/assets/images/help/classroom/classroom-settings-click-google-classroom.png)
|
||||
1. Sign in to Google, then select the Classroom to link to.
|
||||
|
||||
## Configuring a generic LMS
|
||||
|
||||
You must configure the privacy settings for your LMS to allow external tools to receive roster information.
|
||||
## Connecting to Canvas, Moodle, Sakai, and other LMSes
|
||||
|
||||
1. Navigate to your LMS.
|
||||
1. Configure an external tool.
|
||||
1. Provide the configuration credentials you generated in {% data variables.product.prodname_classroom %}.
|
||||
- Consumer key
|
||||
- Shared secret
|
||||
- Launch URL (sometimes called "tool URL" or similar)
|
||||
Connecting to other LMSes is temporarily unavailable as {% data variables.product.company_short %} updates to Learning Tools Interoperability (LTI) version 1.3. For more information, see "[Supported LMSes](#supported-lmses)."
|
||||
|
||||
## Configuring Canvas
|
||||
|
||||
You can configure {% data variables.product.prodname_classroom %} as an external app for Canvas to import roster data into your classroom. For more information about Canvas, see the [Canvas website](https://www.instructure.com/canvas/).
|
||||
|
||||
1. Sign into [Canvas](https://www.instructure.com/canvas/#login).
|
||||
1. Select the Canvas course to integrate with {% data variables.product.prodname_classroom %}.
|
||||
1. In the left sidebar, click **Settings**.
|
||||
1. Click the **Apps** tab.
|
||||
1. Click **View app configurations**.
|
||||
1. Click **+App**.
|
||||
1. Select the **Configuration Type** drop-down menu, and click **By URL**.
|
||||
1. Paste the configuration credentials from {% data variables.product.prodname_classroom %}. For more information, see "[Generating configuration credentials for your classroom](#generating-configuration-credentials-for-your-classroom)."
|
||||
|
||||
| Field in Canvas app configuration | Value or setting |
|
||||
| :- | :- |
|
||||
| **Consumer Key** | Consumer key from {% data variables.product.prodname_classroom %} |
|
||||
| **Shared Secret** | Shared secret from {% data variables.product.prodname_classroom %} |
|
||||
| **Allow this tool to access the IMS Names and Role Provisioning Service** | Enabled |
|
||||
| **Configuration URL** | Launch URL from {% data variables.product.prodname_classroom %} |
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: If you don't see a checkbox in Canvas labeled "Allow this tool to access the IMS Names and Role Provisioning Service", then your Canvas administrator must contact Canvas support to enable membership service configuration for your Canvas account. Without enabling this feature, you won't be able to sync the roster from Canvas. For more information, see [How do I contact Canvas Support?](https://community.canvaslms.com/t5/Canvas-Basics-Guide/How-do-I-contact-Canvas-Support/ta-p/389767) on the Canvas website.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
1. Click **Submit**.
|
||||
1. In the left sidebar, click **Home**.
|
||||
1. To prompt Canvas to send a confirmation email, in the left sidebar, click **GitHub Classroom**. Follow the instructions in the email to finish linking {% data variables.product.prodname_classroom %}.
|
||||
|
||||
## Configuring Moodle
|
||||
|
||||
You can configure {% data variables.product.prodname_classroom %} as an activity for Moodle to import roster data into your classroom. For more information about Moodle, see the [Moodle website](https://moodle.org).
|
||||
|
||||
You must be using Moodle version 3.0 or greater.
|
||||
|
||||
1. Sign into [Moodle](https://moodle.org/login/).
|
||||
1. Select the Moodle course to integrate with {% data variables.product.prodname_classroom %}.
|
||||
1. Click **Turn editing on**.
|
||||
1. Wherever you'd like {% data variables.product.prodname_classroom %} to be available in Moodle, click **Add an activity or resource**.
|
||||
1. Choose **External tool** and click **Add**.
|
||||
1. In the "Activity name" field, type "GitHub Classroom".
|
||||
1. In the **Preconfigured tool** field, to the right of the drop-down menu, click **+**.
|
||||
1. Under "External tool configuration", paste the configuration credentials from {% data variables.product.prodname_classroom %}. For more information, see "[Generating configuration credentials for your classroom](#generating-configuration-credentials-for-your-classroom)."
|
||||
|
||||
| Field in Moodle app configuration | Value or setting |
|
||||
| :- | :- |
|
||||
| **Tool name** | {% data variables.product.prodname_classroom %} - _YOUR CLASSROOM NAME_<br/><br/>**Note**: You can use any name, but we suggest this value for clarity. |
|
||||
| **Tool URL** | Launch URL from {% data variables.product.prodname_classroom %} |
|
||||
| **LTI version** | LTI 1.0/1.1 |
|
||||
| **Default launch container** | New window |
|
||||
| **Consumer key** | Consumer key from {% data variables.product.prodname_classroom %} |
|
||||
| **Shared secret** | Shared secret from {% data variables.product.prodname_classroom %} |
|
||||
|
||||
1. Scroll to and click **Services**.
|
||||
1. To the right of "IMS LTI Names and Role Provisioning", select the drop-down menu and click **Use this service to retrieve members' information as per privacy settings**.
|
||||
1. Scroll to and click **Privacy**.
|
||||
1. To the right of **Share launcher's name with tool** and **Share launcher's email with tool**, select the drop-down menus to click **Always**.
|
||||
1. At the bottom of the page, click **Save changes**.
|
||||
1. In the **Preconfigure tool** menu, click **GitHub Classroom - _YOUR CLASSROOM NAME_**.
|
||||
1. Under "Common module settings", to the right of "Availability", select the drop-down menu and click **Hide from students**.
|
||||
1. At the bottom of the page, click **Save and return to course**.
|
||||
1. Navigate to anywhere you chose to display {% data variables.product.prodname_classroom %}, and click the {% data variables.product.prodname_classroom %} activity.
|
||||
|
||||
## Importing a roster from your LMS
|
||||
|
||||
For more information about importing the roster from your LMS into {% data variables.product.prodname_classroom %}, see "[Manage classrooms](/education/manage-coursework-with-github-classroom/manage-classrooms#creating-a-roster-for-your-classroom)."
|
||||
In the meantime, you may manually input your roster for your class. For more information about manually importing the roster from your LMS into {% data variables.product.prodname_classroom %}, see "[Manage classrooms](/education/manage-coursework-with-github-classroom/manage-classrooms#creating-a-roster-for-your-classroom)."
|
||||
|
||||
## Disconnecting your LMS
|
||||
|
||||
|
|
|
@ -66,10 +66,10 @@ If you have existing source code or repositories stored locally on your computer
|
|||
$ git init -b main
|
||||
```
|
||||
|
||||
If you’re using Git 2.27.1 or an earlier version, you can set the name of the default branch using `&& git branch -m`.
|
||||
If you’re using Git 2.27.1 or an earlier version, you can set the name of the default branch using `&& git symbolic-ref HEAD refs/heads/main`.
|
||||
|
||||
``` shell
|
||||
$ git init && git branch -m main
|
||||
$ git init && git symbolic-ref HEAD refs/heads/main
|
||||
```
|
||||
5. Add the files in your new local repository. This stages them for the first commit.
|
||||
|
||||
|
@ -113,10 +113,10 @@ If you have existing source code or repositories stored locally on your computer
|
|||
$ git init -b main
|
||||
```
|
||||
|
||||
If you’re using Git 2.27.1 or an earlier version, you can set the name of the default branch using `&& git branch -m`.
|
||||
If you’re using Git 2.27.1 or an earlier version, you can set the name of the default branch using `&& git symbolic-ref HEAD refs/heads/main`.
|
||||
|
||||
``` shell
|
||||
$ git init && git branch -m main
|
||||
$ git init && git symbolic-ref HEAD refs/heads/main
|
||||
```
|
||||
5. Add the files in your new local repository. This stages them for the first commit.
|
||||
```shell
|
||||
|
@ -159,10 +159,10 @@ If you have existing source code or repositories stored locally on your computer
|
|||
$ git init -b main
|
||||
```
|
||||
|
||||
If you’re using Git 2.27.1 or an earlier version, you can set the name of the default branch using `&& git branch -m`.
|
||||
If you’re using Git 2.27.1 or an earlier version, you can set the name of the default branch using `&& git symbolic-ref HEAD refs/heads/main`.
|
||||
|
||||
``` shell
|
||||
$ git init && git branch -m main
|
||||
$ git init && git symbolic-ref HEAD refs/heads/main
|
||||
```
|
||||
5. Add the files in your new local repository. This stages them for the first commit.
|
||||
```shell
|
||||
|
|
|
@ -118,7 +118,7 @@ Right now, you have a fork of the Spoon-Knife repository, but you do not have th
|
|||
> Cloning into `Spoon-Knife`...
|
||||
> remote: Counting objects: 10, done.
|
||||
> remote: Compressing objects: 100% (8/8), done.
|
||||
> remove: Total 10 (delta 1), reused 10 (delta 1)
|
||||
> remote: Total 10 (delta 1), reused 10 (delta 1)
|
||||
> Unpacking objects: 100% (10/10), done.
|
||||
```
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ Here is an example request using cURL:
|
|||
|
||||
```
|
||||
$ curl \
|
||||
-H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Authorization: Bearer $GITHUB_TOKEN" \
|
||||
-H "X-Github-Next-Global-ID: 1" \
|
||||
https://api.github.com/graphql \
|
||||
-d '{ "query": "{ node(id: \"MDQ6VXNlcjM0MDczMDM=\") { id } }" }'
|
||||
|
|
|
@ -70,7 +70,7 @@ You can find the node ID of an organization project if you know the organization
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"query{organization(login: \"<em>ORGANIZATION</em>\") {projectV2(number: <em>NUMBER</em>){id}}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -94,7 +94,7 @@ You can also find the node ID of all projects in your organization. The followin
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"{organization(login: \"<em>ORGANIZATION</em>\") {projectsV2(first: 20) {nodes {id title}}}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -125,7 +125,7 @@ You can find the node ID of a user project if you know the project number. Repla
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"query{user(login: \"<em>USER</em>\") {projectV2(number: <em>NUMBER</em>){id}}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -149,7 +149,7 @@ You can also find the node ID for all of your projects. The following example wi
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"{user(login: \"<em>USER</em>\") {projectsV2(first: 20) {nodes {id title}}}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -180,7 +180,7 @@ The following example will return the ID, name, settings, and configuration for
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"query{ node(id: \"<em>PROJECT_ID</em>\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2Field { id name } ... on ProjectV2IterationField { id name configuration { iterations { startDate id }}} ... on ProjectV2SingleSelectField { id name options { id name }}}}}}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -284,7 +284,7 @@ If you just need the name and ID of a field, and do not need information about i
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"query{ node(id: \"<em>PROJECT_ID</em>\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2FieldCommon { id name }}}}}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -354,7 +354,7 @@ The following example will return the first 20 issues, pull requests, and draft
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"query{ node(id: \"<em>PROJECT_ID</em>\") { ... on ProjectV2 { items(first: 20) { nodes{ id fieldValues(first: 8) { nodes{ ... on ProjectV2ItemFieldTextValue { text field { ... on ProjectV2FieldCommon { name }}} ... on ProjectV2ItemFieldDateValue { date field { ... on ProjectV2FieldCommon { name } } } ... on ProjectV2ItemFieldSingleSelectValue { name field { ... on ProjectV2FieldCommon { name }}}}} content{ ... on DraftIssue { title body } ...on Issue { title assignees(first: 10) { nodes{ login }}} ...on PullRequest { title assignees(first: 10) { nodes{ login }}}}}}}}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -446,7 +446,7 @@ The following example will add an issue or pull request to your project. Replace
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"mutation {addProjectV2ItemById(input: {projectId: \"<em>PROJECT_ID</em>\" contentId: \"<em>CONTENT_ID</em>\"}) {item {id}}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -488,8 +488,8 @@ The following example will add a draft issue to your project. Replace `PROJECT_I
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--data '{"query":"mutation {addProjectV2DraftIssue(input: {projectId: "<em>PROJECT_ID</em>" title: "<em>TITLE</em>" body: "<em>BODY</em>"}) {item {id}}}"}'
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"mutation {addProjectV2DraftIssue(input: {projectId: "<em>PROJECT_ID</em>" title: "<em>TITLE</em>" body: "<em>BODY</em>"}) {projectItem {id}}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
||||
|
@ -498,7 +498,7 @@ curl --request POST \
|
|||
gh api graphql -f query='
|
||||
mutation {
|
||||
addProjectV2DraftIssue(input: {projectId: "<em>PROJECT_ID</em>" title: "<em>TITLE</em>" body: "<em>BODY</em>"}) {
|
||||
item {
|
||||
projectItem {
|
||||
id
|
||||
}
|
||||
}
|
||||
|
@ -512,7 +512,7 @@ The response will contain the node ID of the newly created draft issue.
|
|||
{
|
||||
"data": {
|
||||
"addProjectV2ItemById": {
|
||||
"item": {
|
||||
"projectItem": {
|
||||
"id": "PVTI_lADOANN5s84ACbL0zgBbxFc"
|
||||
}
|
||||
}
|
||||
|
@ -528,7 +528,7 @@ The following example will update your project's settings. Replace `PROJECT_ID`
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"mutation { updateProjectV2(input: { projectId: \"<em>PROJECT_ID</em>\", title: \"Project title\", public: false, readme: \"# Project README\n\nA long description\", shortDescription: \"A short description\"}) { projectV2 { id, title, readme, shortDescription }}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -565,7 +565,7 @@ The following example will update the value of a text field for an item. Replace
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "<em>PROJECT_ID</em>" itemId: "<em>ITEM_ID</em>" fieldId: "<em>FIELD_ID</em>" value: { text: "Updated text" }}) { projectV2Item { id }}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -619,7 +619,7 @@ The following example will update the value of a single select field for an item
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "<em>PROJECT_ID</em>" itemId: "<em>ITEM_ID</em>" fieldId: "<em>FIELD_ID</em>" value: { singleSelectOptionId: "<em>OPTION_ID</em>" }}) { projectV2Item { id }}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -659,7 +659,7 @@ The following example will update the value of an iteration field for an item.
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "<em>PROJECT_ID</em>" itemId: "<em>ITEM_ID</em>" fieldId: "<em>FIELD_ID</em>" value: { singleSelectOptionId: "<em>OPTION_ID</em>" }}) { projectV2Item { id }}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
@ -694,7 +694,7 @@ The following example will delete an item from a project. Replace `PROJECT_ID` w
|
|||
```shell
|
||||
curl --request POST \
|
||||
--url https://api.github.com/graphql \
|
||||
--header 'Authorization: token <em>TOKEN</em>' \
|
||||
--header 'Authorization: Bearer <em>TOKEN</em>' \
|
||||
--data '{"query":"mutation {deleteProjectV2Item(input: {projectId: \"<em>PROJECT_ID</em>\" itemId: \"<em>ITEM_ID</em>\"}) {deletedItemId}}"}'
|
||||
```
|
||||
{% endcurl %}
|
||||
|
|
|
@ -22,7 +22,7 @@ Only the project visibility is affected; to view an item on the project, someone
|
|||
|
||||
![Project with hidden item](/assets/images/help/projects/hidden-items.png)
|
||||
|
||||
Project admins and organization owners can control project visibility. Organization owners can restrict the ability to change project visibility to just organization owners.
|
||||
Project admins and organization owners can control project visibility. Organization owners{% ifversion project-visibility-policy %} and enterprise owners{% endif %} can restrict the ability to change project visibility to just organization owners.
|
||||
|
||||
In public and private projects, insights are only visible to users with write permissions for the project.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Linking a pull request to an issue
|
||||
intro: You can link a pull request to an issue to show that a fix is in progress and to automatically close the issue when the pull request is merged.
|
||||
intro: You can link a pull request {% ifversion link-existing-branches-to-issue %}or branch {% endif %}to an issue to show that a fix is in progress and to automatically close the issue when the pull request {% ifversion link-existing-branches-to-issue %}or branch {% endif %} is merged.
|
||||
redirect_from:
|
||||
- /github/managing-your-work-on-github/managing-your-work-with-issues-and-pull-requests/linking-a-pull-request-to-an-issue
|
||||
- /articles/closing-issues-via-commit-message
|
||||
|
@ -60,9 +60,9 @@ Only manually linked pull requests can be manually unlinked. To unlink an issue
|
|||
|
||||
You can also use closing keywords in a commit message. The issue will be closed when you merge the commit into the default branch, but the pull request that contains the commit will not be listed as a linked pull request.
|
||||
|
||||
## Manually linking a pull request to an issue
|
||||
## Manually linking a pull request to an issue using the pull request sidebar
|
||||
|
||||
Anyone with write permissions to a repository can manually link a pull request to an issue.
|
||||
Anyone with write permissions to a repository can manually link a pull request to an issue from the pull request sidebar.
|
||||
|
||||
You can manually link up to ten issues to each pull request. The issue and pull request must be in the same repository.
|
||||
|
||||
|
@ -78,6 +78,28 @@ You can manually link up to ten issues to each pull request. The issue and pull
|
|||
5. Click the issue you want to link to the pull request.
|
||||
![Drop down to link issue](/assets/images/help/pull_requests/link-issue-drop-down.png)
|
||||
|
||||
{% ifversion link-existing-branches-to-issue %}
|
||||
|
||||
## Manually linking a pull request or branch to an issue using the issue sidebar
|
||||
|
||||
Anyone with write permissions to a repository can manually link a pull request or branch to an issue from the issue sidebar.
|
||||
|
||||
You can manually link up to ten issues to each pull request. The issue can be in a different repository than the linked pull request or branch. Your last selected repository will be remembered
|
||||
|
||||
{% data reusables.repositories.navigate-to-repo %}
|
||||
{% data reusables.repositories.sidebar-issues %}
|
||||
3. In the list of issues, click the issue that you'd like to link a pull request or branch to.
|
||||
4. In the right sidebar, click **Development**.
|
||||
![Development menu in the right sidebar](/assets/images/help/issues/development-menu.png)
|
||||
5. Click the repository containing the pull request or branch you want to link to the issue.
|
||||
![Drop down to select repository](/assets/images/help/issues/development-menu-select-repository.png)
|
||||
6. Click the pull request or branch you want to link to the issue.
|
||||
![Drop down to link pull request or branch](/assets/images/help/issues/development-menu-select-pr-or-branch.png)
|
||||
7. Click **Apply**.
|
||||
![Apply](/assets/images/help/issues/development-menu-apply.png)
|
||||
|
||||
{% endif %}
|
||||
|
||||
## Further reading
|
||||
|
||||
- "[Autolinked references and URLs](/articles/autolinked-references-and-urls/#issues-and-pull-requests)"
|
||||
* "[Autolinked references and URLs](/articles/autolinked-references-and-urls/#issues-and-pull-requests)"
|
||||
|
|
|
@ -11,10 +11,18 @@ allowTitleToDifferFromFilename: true
|
|||
permissions: Organization owners can allow {% data variables.projects.project_v2_and_v1 %} visibility changes for an organization.
|
||||
---
|
||||
|
||||
## About visibility changes for projects
|
||||
|
||||
You can restrict who has the ability to change the visibility of {% data variables.projects.projects_v2_and_v1 %} in your organization, such as restricting members from changing {% data variables.projects.projects_v2_and_v1 %} from private to public.
|
||||
|
||||
You can limit the ability to change {% data variables.projects.project_v2_and_v1 %} visibility to just organization owners, or you can allow anyone granted admin permissions to change the visibility.
|
||||
|
||||
{% ifversion project-visibility-policy %}
|
||||
This option may not be available to you if an enterprise owner restricts visibility changes for {% data variables.projects.projects_v2_and_v1 %} at the enterprise level. For more information, see "[Enforcing policies for projects in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-projects-in-your-enterprise)."
|
||||
{% endif %}
|
||||
|
||||
## Allowing members to change project visibilities
|
||||
|
||||
{% data reusables.profile.access_org %}
|
||||
{% data reusables.profile.org_settings %}
|
||||
1. In the "Code, planning, and automation" section of the sidebar, click **{% octicon "table" aria-label="The table icon" %} Projects**.
|
||||
|
|
|
@ -17,7 +17,7 @@ shortTitle: Merge PR automatically
|
|||
---
|
||||
## About auto-merge
|
||||
|
||||
If you enable auto-merge for a pull request, the pull request will merge automatically when all required reviews are met and status checks have passed. Auto-merge prevents you from waiting around for requirements to be met, so you can move on to other tasks.
|
||||
If you enable auto-merge for a pull request, the pull request will merge automatically when all required reviews are met and all required status checks have passed. Auto-merge prevents you from waiting around for requirements to be met, so you can move on to other tasks.
|
||||
|
||||
Before you can use auto-merge with a pull request, auto-merge must be enabled for the repository. For more information, see "[Managing auto-merge for pull requests in your repository](/github/administering-a-repository/managing-auto-merge-for-pull-requests-in-your-repository)."
|
||||
|
||||
|
|
|
@ -64,3 +64,6 @@ A README should contain only the necessary information for developers to get sta
|
|||
|
||||
- "[Adding a file to a repository](/articles/adding-a-file-to-a-repository)"
|
||||
- 18F's "[Making READMEs readable](https://github.com/18F/open-source-guide/blob/18f-pages/pages/making-readmes-readable.md)"
|
||||
{%- ifversion fpt or ghec %}
|
||||
- "[Adding an 'Open in GitHub Codespaces' badge](/codespaces/setting-up-your-project-for-codespaces/adding-a-codespaces-badge)"
|
||||
{%- endif %}
|
|
@ -166,7 +166,7 @@ curl --request GET \
|
|||
|
||||
{% note %}
|
||||
|
||||
**Note:** In most cases, you can use `Authorization: Bearer` or `Authorization: token`. JSON web tokens (JWTs) will only work with `Authorization: Bearer`.
|
||||
**Note:** {% data reusables.getting-started.bearer-vs-token %}
|
||||
|
||||
{% endnote %}
|
||||
|
||||
|
|
|
@ -86,10 +86,16 @@ If you have two-factor authentication enabled, make sure you understand how to [
|
|||
|
||||
{% endnote %}
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note:** {% data reusables.getting-started.bearer-vs-token %}
|
||||
|
||||
{% endnote %}
|
||||
|
||||
If you're using the API to access an organization that enforces [SAML SSO][saml-sso] for authentication, you'll need to create a personal access token (PAT) and [authorize the token][allowlist] for that organization. Visit the URL specified in `X-GitHub-SSO` to authorize the token for the organization.
|
||||
|
||||
```shell
|
||||
$ curl -v -H "Authorization: token <em>TOKEN</em>" {% data variables.product.api_url_pre %}/repos/octodocs-test/test
|
||||
$ curl -v -H "Authorization: Bearer <em>TOKEN</em>" {% data variables.product.api_url_pre %}/repos/octodocs-test/test
|
||||
|
||||
> X-GitHub-SSO: required; url=https://github.com/orgs/octodocs-test/sso?authorization_request=AZSCKtL4U8yX1H3sCQIVnVgmjmon5fWxks5YrqhJgah0b2tlbl9pZM4EuMz4
|
||||
{
|
||||
|
@ -101,7 +107,7 @@ $ curl -v -H "Authorization: token <em>TOKEN</em>" {% data variables.product.api
|
|||
When requesting data that could come from multiple organizations (for example, [requesting a list of issues created by the user][user-issues]), the `X-GitHub-SSO` header indicates which organizations require you to authorize your personal access token:
|
||||
|
||||
```shell
|
||||
$ curl -v -H "Authorization: token <em>TOKEN</em>" {% data variables.product.api_url_pre %}/user/issues
|
||||
$ curl -v -H "Authorization: Bearer <em>TOKEN</em>" {% data variables.product.api_url_pre %}/user/issues
|
||||
|
||||
> X-GitHub-SSO: partial-results; organizations=21955855,20582480
|
||||
```
|
||||
|
|
|
@ -91,7 +91,7 @@ $ curl -u "username" {% data variables.product.api_url_pre %}
|
|||
### OAuth2 token (sent in a header)
|
||||
|
||||
```shell
|
||||
$ curl -H "Authorization: token <em>OAUTH-TOKEN</em>" {% data variables.product.api_url_pre %}
|
||||
$ curl -H "Authorization: Bearer <em>OAUTH-TOKEN</em>" {% data variables.product.api_url_pre %}
|
||||
```
|
||||
|
||||
{% note %}
|
||||
|
@ -100,6 +100,12 @@ Note: GitHub recommends sending OAuth tokens using the Authorization header.
|
|||
|
||||
{% endnote %}
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note:** {% data reusables.getting-started.bearer-vs-token %}
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Read [more about OAuth2](/apps/building-oauth-apps/). Note that OAuth2 tokens can be acquired using the [web application flow](/developers/apps/authorizing-oauth-apps#web-application-flow) for production applications.
|
||||
|
||||
{% ifversion fpt or ghes or ghec %}
|
||||
|
|
|
@ -55,13 +55,13 @@ curl -u my_user:my_password https://api.github.com/user/repos
|
|||
Instead, use a [personal access token](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) when testing endpoints or doing local development:
|
||||
|
||||
```bash
|
||||
curl -H 'Authorization: token my_access_token' https://api.github.com/user/repos
|
||||
curl -H 'Authorization: Bearer my_access_token' https://api.github.com/user/repos
|
||||
```
|
||||
|
||||
For OAuth Apps, you should use the [web application flow](/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to generate an OAuth token to use in the API call's header:
|
||||
|
||||
```bash
|
||||
curl -H 'Authorization: token my-oauth-token' https://api.github.com/user/repos
|
||||
curl -H 'Authorization: Bearer my-oauth-token' https://api.github.com/user/repos
|
||||
```
|
||||
|
||||
## Timeouts
|
||||
|
|
|
@ -284,7 +284,7 @@ jobs:
|
|||
|
||||
{% note %}
|
||||
|
||||
**Note:** In most cases, you can use `Authorization: Bearer` or `Authorization: token`. JSON web tokens (JWTs) only work with `Authorization: Bearer`.
|
||||
**Note:** {% data reusables.getting-started.bearer-vs-token %}
|
||||
|
||||
{% endnote %}
|
||||
|
||||
|
|
|
@ -19,5 +19,6 @@ children:
|
|||
- /followers
|
||||
- /gpg-keys
|
||||
- /keys
|
||||
- /ssh-signing-keys
|
||||
---
|
||||
|
||||
|
|