Skip to content

Comments

Add self-hosted runner security framework and private data protection#8

Draft
Copilot wants to merge 5 commits intomasterfrom
copilot/verify-pdf-claim
Draft

Add self-hosted runner security framework and private data protection#8
Copilot wants to merge 5 commits intomasterfrom
copilot/verify-pdf-claim

Conversation

Copy link

Copilot AI commented Feb 13, 2026

Establishes security baseline for self-hosted GitHub Actions runners and expands private data protection in version control.

Security Documentation

  • SELF_HOSTED_RUNNER_SECURITY.md (10KB): Runner hardening, network isolation, secrets rotation, incident response
  • RUNNER_SETUP.md: Administrator quick-start with configuration checklists
  • SECURITY_QUICK_REFERENCE.md: Developer patterns for secure workflows
  • .github/README.md: Navigation hub for all security resources

Automated Validation

validate-workflows.py enforces 6 security checks:

  • Permission scope (flags write-all, missing permissions:)
  • SHA-pinned actions (prevents supply chain attacks)
  • pull_request_target isolation
  • Secret exposure patterns
  • Input validation presence
  • Self-hosted runner labels (ephemeral, isolated, secure)
$ python3 .github/validate-workflows.py
✅ secure-runner-template.yml: 0 issue(s)
⚠️  etherscan-apiv2.yml: 1 issue(s)

Workflow Templates

secure-runner-template.yml - Production reference implementation:

  • Input validation with case statements
  • Minimal permissions (explicit read/write)
  • SHA-pinned actions with version comments
  • Pre-commit secret scanning
  • Environment isolation with cleanup

etherscan-apiv2.yml - Enhanced with:

  • API key via environment variables (not inline secrets)
  • Input validation job
  • Secret pattern scanning before commit
  • Timeout and retry logic
  • File size limits
# Before
- run: curl "${api_url}&apikey=${{ secrets.API_KEY }}"

# After
- env:
    API_KEY: ${{ secrets.API_KEY }}
  run: |
    curl "${api_url}&apikey=${API_KEY}"
    unset API_KEY

Data Protection

.gitignore expanded from 12 to 60+ patterns:

  • Runner internals (.runner, _work/, .credentials)
  • Cloud credentials (.aws/, .azure/, .gcloud/)
  • Build artifacts (ci_secrets/, deploy_keys/)
  • Keystores (*.jks, *.p12, *.keystore)

Validation Results

  • CodeQL: 0 vulnerabilities
  • Code review: 0 issues
  • secure-runner-template.yml: passes all checks

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 4 commits February 13, 2026 13:06
Co-authored-by: Kushmanmb <193178375+Kushmanmb@users.noreply.github.com>
Co-authored-by: Kushmanmb <193178375+Kushmanmb@users.noreply.github.com>
Co-authored-by: Kushmanmb <193178375+Kushmanmb@users.noreply.github.com>
Co-authored-by: Kushmanmb <193178375+Kushmanmb@users.noreply.github.com>
Copilot AI changed the title [WIP] Add functionality to verify PDF claims Add self-hosted runner security framework and private data protection Feb 13, 2026
Copy link
Member

@Kushmanmb Yaketh (Kushmanmb) left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

`kushmanmb.eth```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants