Skip to content

Commit 99184c9

Browse files
justinyooCopilot
andcommitted
Initial commit
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: ad1a8872-dbea-4a6c-a0d0-3d0c3431da78
0 parents  commit 99184c9

24 files changed

Lines changed: 2313 additions & 0 deletions

.editorconfig

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
insert_final_newline = true
6+
trim_trailing_whitespace = true
7+
indent_style = space
8+
indent_size = 2
9+
10+
[*.md]
11+
trim_trailing_whitespace = false
12+
max_line_length = off
13+
14+
[*.{ps1,psm1,psd1}]
15+
end_of_line = crlf
16+
indent_size = 4
17+
18+
[*.{sh,bash,bicep,bicepparam,yml,yaml,json}]
19+
end_of_line = lf

.gitattributes

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Auto-detect text files and normalize line endings.
2+
* text=auto
3+
4+
# Unix shell scripts require LF.
5+
*.sh text eol=lf
6+
*.bash text eol=lf
7+
8+
# Windows PowerShell files use CRLF.
9+
*.ps1 text eol=crlf
10+
*.psm1 text eol=crlf
11+
*.psd1 text eol=crlf
12+
13+
# Documentation and infrastructure files use LF.
14+
*.md text eol=lf
15+
*.yml text eol=lf
16+
*.yaml text eol=lf
17+
*.json text eol=lf
18+
*.bicep text eol=lf
19+
*.bicepparam text eol=lf
20+
21+
# Binary files are never line-ending converted or diffed as text.
22+
*.png binary
23+
*.jpg binary
24+
*.jpeg binary
25+
*.gif binary
26+
*.ico binary
27+
*.webp binary
28+
*.pdf binary
29+
*.pptx binary
30+
*.zip binary
31+
*.tar.gz binary
32+
*.woff binary
33+
*.woff2 binary
34+
*.ttf binary
35+
*.eot binary
36+
37+
*.svg text
38+
*.min.js linguist-generated
39+
*.min.css linguist-generated

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @justinyoo
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Bug report
2+
description: Report a problem in the presentation, scripts, or infrastructure.
3+
title: "[Bug]: "
4+
labels:
5+
- bug
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Thanks for helping improve this project.
11+
12+
- type: dropdown
13+
id: area
14+
attributes:
15+
label: Area
16+
options:
17+
- Presentation content
18+
- Presentation rendering
19+
- PowerShell
20+
- Bash
21+
- Bicep
22+
- Documentation
23+
validations:
24+
required: true
25+
26+
- type: textarea
27+
id: description
28+
attributes:
29+
label: Problem
30+
description: Describe what happened and what you expected.
31+
validations:
32+
required: true
33+
34+
- type: textarea
35+
id: reproduction
36+
attributes:
37+
label: Reproduction steps
38+
placeholder: |
39+
1. Run ...
40+
2. Open ...
41+
3. Observe ...
42+
validations:
43+
required: true
44+
45+
- type: input
46+
id: environment
47+
attributes:
48+
label: Environment
49+
description: Include OS, shell, CLI, and browser versions when relevant.
50+
51+
- type: textarea
52+
id: logs
53+
attributes:
54+
label: Logs or screenshots
55+
render: shell
56+
57+
- type: checkboxes
58+
id: checks
59+
attributes:
60+
label: Checklist
61+
options:
62+
- label: I removed secrets and sensitive data from this report.
63+
required: true
64+
- label: I searched for an existing issue.
65+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security vulnerability
4+
url: https://github.com/devkimchi/github-copilot-sandbox/security/advisories/new
5+
about: Report security issues privately.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Feature request
2+
description: Suggest an improvement to the materials or demo automation.
3+
title: "[Feature]: "
4+
labels:
5+
- enhancement
6+
body:
7+
- type: dropdown
8+
id: area
9+
attributes:
10+
label: Area
11+
options:
12+
- Presentation content
13+
- Presentation design
14+
- PowerShell
15+
- Bash
16+
- Bicep
17+
- Documentation
18+
validations:
19+
required: true
20+
21+
- type: textarea
22+
id: problem
23+
attributes:
24+
label: Problem or opportunity
25+
description: What need would this change address?
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: proposal
31+
attributes:
32+
label: Proposed solution
33+
description: Describe the behavior or content you would like.
34+
validations:
35+
required: true
36+
37+
- type: textarea
38+
id: alternatives
39+
attributes:
40+
label: Alternatives considered
41+
42+
- type: checkboxes
43+
id: contribution
44+
attributes:
45+
label: Contribution
46+
options:
47+
- label: I am willing to submit a pull request for this change.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## Summary
2+
3+
Describe the purpose and scope of this change.
4+
5+
## Change type
6+
7+
- [ ] Presentation content
8+
- [ ] Presentation design
9+
- [ ] PowerShell
10+
- [ ] Bash
11+
- [ ] Bicep
12+
- [ ] Documentation or repository maintenance
13+
14+
## Validation
15+
16+
- [ ] Marp HTML generation succeeds.
17+
- [ ] Updated slides were visually reviewed.
18+
- [ ] PowerShell files parse without errors.
19+
- [ ] Bash files pass `bash -n`.
20+
- [ ] Bicep files build successfully.
21+
- [ ] No generated files, credentials, or sensitive data are included.
22+
23+
## Screenshots
24+
25+
Add before-and-after screenshots for visual changes.
26+
27+
## Related issues
28+
29+
Link related issues with `Closes #...` when applicable.

.github/dependabot.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: github-actions
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
labels:
8+
- dependencies
9+
- github-actions

.github/workflows/ci.yml

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
concurrency:
15+
group: pages
16+
cancel-in-progress: true
17+
18+
jobs:
19+
validate:
20+
runs-on: ubuntu-latest
21+
22+
steps:
23+
- name: Check out repository
24+
uses: actions/checkout@v4
25+
26+
- name: Set up Node.js
27+
uses: actions/setup-node@v4
28+
with:
29+
node-version: 22
30+
31+
- name: Validate Marp presentation
32+
run: |
33+
mkdir -p site
34+
npx --yes @marp-team/marp-cli@4 \
35+
ai-agent-sandboxing.md \
36+
--html \
37+
--allow-local-files \
38+
-o site/index.html
39+
40+
- name: Validate PowerShell syntax
41+
shell: pwsh
42+
run: |
43+
$hasErrors = $false
44+
$files = Get-ChildItem -Recurse -File -Include *.ps1, *.psm1, *.psd1 |
45+
Where-Object { $_.FullName -notmatch '[\\/]\.git[\\/]' }
46+
47+
foreach ($file in $files) {
48+
$tokens = $null
49+
$errors = $null
50+
[System.Management.Automation.Language.Parser]::ParseFile(
51+
$file.FullName,
52+
[ref] $tokens,
53+
[ref] $errors
54+
) | Out-Null
55+
56+
if ($errors.Count -gt 0) {
57+
$hasErrors = $true
58+
$errors | ForEach-Object {
59+
Write-Error "$($file.FullName): $($_.Message)"
60+
}
61+
}
62+
}
63+
64+
if ($hasErrors) {
65+
exit 1
66+
}
67+
68+
- name: Validate Bash syntax
69+
shell: bash
70+
run: |
71+
while IFS= read -r -d '' file; do
72+
bash -n "$file"
73+
done < <(
74+
find . -type f \( -name '*.sh' -o -name '*.bash' \) \
75+
-not -path './.git/*' -print0
76+
)
77+
78+
- name: Validate Bicep files
79+
shell: bash
80+
run: |
81+
if find . -type f -name '*.bicep' -not -path './.git/*' | grep -q .; then
82+
az bicep install
83+
while IFS= read -r file; do
84+
az bicep build --file "$file" --stdout > /dev/null
85+
done < <(
86+
find . -type f -name '*.bicep' -not -path './.git/*'
87+
)
88+
fi
89+
90+
if find . -type f -name '*.bicepparam' -not -path './.git/*' | grep -q .; then
91+
az bicep install
92+
while IFS= read -r file; do
93+
az bicep build-params --file "$file" --stdout > /dev/null
94+
done < <(
95+
find . -type f -name '*.bicepparam' -not -path './.git/*'
96+
)
97+
fi
98+
99+
- name: Configure GitHub Pages
100+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
101+
uses: actions/configure-pages@v5
102+
103+
- name: Upload GitHub Pages artifact
104+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
105+
uses: actions/upload-pages-artifact@v3
106+
with:
107+
path: site
108+
109+
deploy:
110+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
111+
needs: validate
112+
runs-on: ubuntu-latest
113+
environment:
114+
name: github-pages
115+
url: ${{ steps.deployment.outputs.page_url }}
116+
117+
steps:
118+
- name: Deploy GitHub Pages
119+
id: deployment
120+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Ignore every file by default.
2+
*
3+
4+
# Allow Git to traverse directories while keeping their files ignored.
5+
!assets/
6+
7+
# Repository configuration.
8+
!.gitignore
9+
!.gitattributes
10+
!.editorconfig
11+
!.markdownlint.json
12+
13+
# Repository health files.
14+
!LICENSE
15+
!README.md
16+
!CONTRIBUTING.md
17+
!CODE_OF_CONDUCT.md
18+
!SECURITY.md
19+
!CHANGELOG.md
20+
!.github/
21+
!.github/**
22+
23+
# Presentation source and referenced assets.
24+
!ai-agent-sandboxing.md
25+
!assets/**
26+
27+
# Generated GitHub Pages entrypoint.
28+
index.html
29+
30+
# PowerShell scripts and modules.
31+
!*.ps1
32+
!*.psm1
33+
!*.psd1
34+
35+
# Bash and shell scripts.
36+
!*.sh
37+
!*.bash
38+
39+
# Bicep infrastructure files.
40+
!*.bicep
41+
!*.bicepparam
42+
!*.parameters.json

0 commit comments

Comments
 (0)