Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
20f859f
save install ca scripts
IlmLV Mar 26, 2026
b9828f3
add tests
IlmLV Mar 27, 2026
31f6304
run push actions only on main
IlmLV Mar 27, 2026
fc949ca
Update README.md
IlmLV Mar 27, 2026
91e3d7e
Update install-ca-cert.sh
IlmLV Mar 27, 2026
c9bb1d3
Update tests/docker-linux-setup.sh
IlmLV Mar 27, 2026
2abfc5e
Simplify HTTPS server readiness check in entrypoint.linux.sh
Copilot Mar 27, 2026
1c26e79
Update install-ca-cert.ps1
IlmLV Mar 27, 2026
27edecb
Update install-ca-cert.sh
IlmLV Mar 27, 2026
8765f71
Update tests/windows.ps1
IlmLV Mar 27, 2026
c987e71
WIP: begin runtime cert gen, arg parsing, TLS fallback changes
Copilot Mar 27, 2026
d7af330
Address comments: runtime cert gen, arg/force flags, TLS fallback, se…
Copilot Mar 27, 2026
c6057c7
fix some tests
IlmLV Mar 27, 2026
243ee5f
Fix Stop-Job -Force: remove invalid -Force param from Stop-Job in win…
Copilot Mar 27, 2026
c68b033
code cleanup
IlmLV Mar 27, 2026
1c12eed
update tests
IlmLV Mar 27, 2026
5094a02
code quality improvements
IlmLV Mar 27, 2026
3d4732c
remove brave test add todos for missing browser tests
IlmLV Mar 27, 2026
e870adc
cleanup
IlmLV Mar 27, 2026
ebdd569
add auto-approve option
IlmLV Mar 27, 2026
5268c82
add graceful interrupt
IlmLV Mar 27, 2026
bd79c80
Update tests/windows.ps1
IlmLV Mar 27, 2026
792a1d3
Apply suggestions from code review
IlmLV Mar 27, 2026
f54e937
Apply suggestions from code review
IlmLV Mar 27, 2026
6c5397a
Apply suggestions from code review
IlmLV Mar 27, 2026
ec97506
refactor(tests): replace Invoke-WithInput with direct Invoke-Script, …
Copilot Mar 27, 2026
b6b6639
Apply suggestions from code review
IlmLV Mar 27, 2026
a4a1f54
feat(ps1): add early elevation check; simplify README admin instructions
Copilot Mar 27, 2026
e439434
Apply suggestions from code review
IlmLV Mar 27, 2026
074e02c
code quality improvements
IlmLV Mar 27, 2026
9c0780d
Apply suggestions from code review
IlmLV Mar 27, 2026
c02ecbd
Apply suggestions from code review
IlmLV Mar 27, 2026
9bf701b
fix: remove -UseBasicParsing; reliable openssl cleanup; add --force/-…
Copilot Mar 27, 2026
8ce22d1
Apply suggestions from code review
IlmLV Mar 27, 2026
9420e31
refactor: require PowerShell 7+; simplify platform detection and inse…
Copilot Mar 27, 2026
926d67f
Apply suggestions from code review
IlmLV Mar 27, 2026
323dd92
Update install-ca-cert.ps1
IlmLV Mar 27, 2026
405a80a
Apply suggestions from code review
IlmLV Mar 29, 2026
ce08d14
Apply suggestions from code review
IlmLV Mar 29, 2026
189d26d
Apply suggestions from code review
IlmLV Mar 29, 2026
e7c9f9b
Apply suggestions from code review
IlmLV Mar 31, 2026
8ba9ecd
feat: add elevation check to test harness and CA cert validation to i…
Copilot Mar 31, 2026
5dd8399
Apply suggestions from code review
IlmLV Mar 31, 2026
e449d55
fix: resolve CI test failures in Linux and Windows test suites
Copilot Mar 31, 2026
708f1df
3 iterations of copilot review improvements
IlmLV Apr 1, 2026
8ee1e30
claude codereview improvements
IlmLV Apr 1, 2026
582114f
fix: address reviewer feedback — SourceIdentifier, leaf cert test, RE…
Copilot Apr 3, 2026
a4bbab5
style: add BasicConstraints OID comment in generate-certs.ps1
Copilot Apr 3, 2026
df92a2c
fix: correct New-SelfSignedCertificate KeyUsage and openssl output ca…
Copilot Apr 3, 2026
1739e0a
fix: resolve Pester test failures from PEM loading issues
Copilot Apr 3, 2026
81d37fa
fix: use split/join for PEM base64 wrapping to avoid trailing newline…
Copilot Apr 3, 2026
ebb7e7e
improve script non interactive usage
IlmLV Apr 3, 2026
6aeba75
update readme
IlmLV Apr 3, 2026
87ea2ac
reduce powershell requirements and fix line endings
IlmLV Apr 3, 2026
28aeebd
powershell v5 compatibility
IlmLV Apr 3, 2026
f3b2fca
add vscode task and launch configuration
IlmLV Apr 3, 2026
ac720cc
shorten oneliner
IlmLV Apr 3, 2026
c3d31db
shorten oneliner bash examples
IlmLV Apr 3, 2026
bbfdf85
rename repository to install-ca
IlmLV Apr 3, 2026
9df7b3b
Apply suggestions from code review
IlmLV Apr 3, 2026
fc0d8ff
rename casource to url for ps script
IlmLV Apr 3, 2026
758879c
Merge branch 'feature/create-scripts' of github.com:IlmLV/install-ca …
IlmLV Apr 3, 2026
ae3aa1f
Apply suggestions from code review
IlmLV Apr 3, 2026
7b93fb3
Apply suggestions from code review
IlmLV Apr 3, 2026
0b7d660
add long for m--url to ps script
IlmLV Apr 3, 2026
8b793c4
Apply suggestions from code review
IlmLV Apr 3, 2026
15a34ec
fix inconsistent comments and docs
IlmLV Apr 3, 2026
1d4c108
update ca certs after teardown
IlmLV Apr 3, 2026
dade694
fix irm iex Initialize
IlmLV Apr 3, 2026
37ba7b2
fix: prevent PS5.1 openssl stderr from crashing generate-certs.ps1 Be…
Copilot Apr 3, 2026
632a232
fix: keep openssl s_server alive in CI by redirecting stdin
Copilot Apr 3, 2026
5ac883d
fix: add -UseBasicParsing to Invoke-WebRequest in HTTPS trust test
Copilot Apr 3, 2026
cc3d34d
ps script remove bom
IlmLV Apr 3, 2026
2bce495
fix non elevated user warning output
IlmLV Apr 3, 2026
c868430
fix ps output
IlmLV Apr 3, 2026
da2ecd1
cleanup output
IlmLV Apr 3, 2026
4874247
irm iex fixes
IlmLV Apr 3, 2026
8d12598
iem fix
IlmLV Apr 3, 2026
bfa028d
iem fix
IlmLV Apr 3, 2026
caf36e0
clarify readme windows requirements
IlmLV Apr 3, 2026
50586d1
fix bash piping
IlmLV Apr 3, 2026
03b2016
add more tests
IlmLV Apr 3, 2026
d0932f7
Apply suggestions from code review
IlmLV Apr 3, 2026
c384932
Apply suggestions from code review
IlmLV Apr 3, 2026
6108ad9
fix: add UTF-8 BOM to PS1 files; replace broken coproc with /dev/null
Copilot Apr 3, 2026
dc2d685
fix: propagate Install exit code in Invoke-Oneliner
Copilot Apr 3, 2026
32b1403
remove bom and reason it was used
IlmLV Apr 3, 2026
a25420c
replace ps1 script unicode characters with ascii
IlmLV Apr 3, 2026
097dce6
pr review fixes
IlmLV Apr 3, 2026
d23b2de
Apply suggestions from code review
IlmLV Apr 3, 2026
22f6a2c
restore tls version config on host running script
IlmLV Apr 3, 2026
bb5687f
Apply suggestions from code review
IlmLV Apr 3, 2026
2fb6292
dynamic arch for linux install script
IlmLV Apr 3, 2026
cf48e84
fix
IlmLV Apr 3, 2026
2a33de5
prevent multiple url passing
IlmLV Apr 3, 2026
5e4edef
fix
IlmLV Apr 3, 2026
cbf9e78
PR review fixes
IlmLV Apr 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Normalize line endings: LF in repository
* text=auto eol=lf

# Shell scripts: LF always
*.sh text eol=lf

# PowerShell scripts: CRLF on checkout
*.ps1 text eol=crlf
63 changes: 63 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Tests

on:
push:
branches: [main]
pull_request:
schedule:
- cron: "0 2 1 * *"

jobs:
# ── Linux / Bash ─────────────────────────────────────────────────────────────
test-bash:
name: BATS (Linux - ${{ matrix.distro }})
runs-on: ubuntu-latest
if: ${{ github.event_name != 'schedule' || github.ref == 'refs/heads/main' }}
strategy:
fail-fast: false
matrix:
include:
- distro: ubuntu
dockerfile: tests/Dockerfile.ubuntu
tag: install-ca-bats-ubuntu:ci
- distro: debian
dockerfile: tests/Dockerfile.debian
tag: install-ca-bats-debian:ci

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build test image
uses: docker/build-push-action@v5
with:
context: .
file: ${{ matrix.dockerfile }}
load: true
tags: ${{ matrix.tag }}
cache-from: type=gha,scope=bats-${{ matrix.distro }}
cache-to: type=gha,scope=bats-${{ matrix.distro }},mode=max

- name: Run BATS tests
run: docker run --rm ${{ matrix.tag }}

# ── Windows / Native ────────────────────────────────────────────────────────
test-windows:
name: Pester (Windows)
runs-on: windows-latest
if: ${{ github.event_name != 'schedule' || github.ref == 'refs/heads/main' }}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Pester
shell: powershell
run: Install-Module -Name Pester -MinimumVersion 5.0 -Force -Scope CurrentUser

- name: Run Windows tests
shell: powershell
Comment thread
IlmLV marked this conversation as resolved.
run: Invoke-Pester tests/windows.ps1 -Output Detailed -CI
74 changes: 74 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Test: Linux All",
"type": "node-terminal",
"request": "launch",
"command": "bash tests/run-tests.sh",
"cwd": "${workspaceFolder}",
"presentation": {
"group": "linux",
"order": 1
}
},
{
"name": "Test: Linux Ubuntu",
"type": "node-terminal",
"request": "launch",
"command": "bash tests/run-tests.sh linux-ubuntu",
"cwd": "${workspaceFolder}",
"presentation": {
"group": "linux",
"order": 2
}
},
{
"name": "Test: Linux Debian",
"type": "node-terminal",
"request": "launch",
"command": "bash tests/run-tests.sh linux-debian",
"cwd": "${workspaceFolder}",
"presentation": {
"group": "linux",
"order": 3
}
},
{
"name": "Debug: install-ca.sh",
"type": "node-terminal",
"request": "launch",
"command": "bash install-ca.sh",
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"presentation": {
"group": "linux",
"order": 4
}
},
{
"name": "Test: Windows",
"type": "node-terminal",
"request": "launch",
"command": "powershell -NoProfile -ExecutionPolicy Bypass -Command \"Invoke-Pester '${workspaceFolder}/tests/windows.ps1' -Output Detailed\"",
"cwd": "${workspaceFolder}",
"presentation": {
"group": "windows",
"order": 1
}
},
{
"name": "Debug: install-ca.ps1",
"type": "PowerShell",
"request": "launch",
"script": "${workspaceFolder}/install-ca.ps1",
"args": [],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"presentation": {
"group": "---",
"order": 2
}
}
]
}
74 changes: 74 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Test: Linux Ubuntu",
"type": "shell",
"command": "bash tests/run-tests.sh linux-ubuntu",
"group": "test",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": []
},
{
"label": "Test: Linux Debian",
"type": "shell",
"command": "bash tests/run-tests.sh linux-debian",
"group": "test",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": []
},
{
"label": "Test: Linux All",
"type": "shell",
"command": "bash tests/run-tests.sh",
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": []
},
{
"label": "Test: Windows",
"type": "shell",
"command": "Invoke-Pester tests/windows.ps1 -Output Detailed",
"options": {
"shell": {
"executable": "powershell",
"args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-Command"]
}
},
"group": "test",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": []
}
]
}
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Ilmars Kluss

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading
Loading