Skip to content

Commit 435925d

Browse files
committed
repo: add public readiness checks
1 parent 3d48007 commit 435925d

23 files changed

Lines changed: 559 additions & 2 deletions

.editorconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
trim_trailing_whitespace = true
8+
9+
[*.md]
10+
trim_trailing_whitespace = false

.gitattributes

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
* text=auto
2+
*.py text eol=lf
3+
*.service text eol=lf
4+
*.sh text eol=lf
5+
bin/* text eol=lf

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @sumitake
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Bug report
2+
description: Report a reproducible problem with YouTube AutoEncoder.
3+
title: "[Bug]: "
4+
labels:
5+
- bug
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Do not include OAuth client secrets, refresh tokens, YouTube stream keys, camera passwords, or public broadcast management URLs.
11+
- type: textarea
12+
id: summary
13+
attributes:
14+
label: Summary
15+
description: What went wrong?
16+
validations:
17+
required: true
18+
- type: textarea
19+
id: environment
20+
attributes:
21+
label: Environment
22+
description: Include OS, Python version, FFmpeg version, hardware, and install method.
23+
placeholder: Raspberry Pi OS Bookworm, Python 3.11, FFmpeg 5.x, Raspberry Pi 5
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: config
28+
attributes:
29+
label: Relevant configuration
30+
description: Redact secrets before pasting configuration or logs.
31+
render: text
32+
validations:
33+
required: false
34+
- type: textarea
35+
id: logs
36+
attributes:
37+
label: Logs
38+
description: Include the smallest useful log excerpt with secrets redacted.
39+
render: text
40+
validations:
41+
required: false
42+
- type: textarea
43+
id: expected
44+
attributes:
45+
label: Expected behavior
46+
validations:
47+
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/sumitake/YouTube-AutoEncoder/security/advisories/new
5+
about: Please report suspected vulnerabilities privately instead of opening a public issue.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Feature request
2+
description: Propose an improvement or supported deployment path.
3+
title: "[Feature]: "
4+
labels:
5+
- enhancement
6+
body:
7+
- type: textarea
8+
id: problem
9+
attributes:
10+
label: Problem
11+
description: What operational problem would this solve?
12+
validations:
13+
required: true
14+
- type: textarea
15+
id: proposal
16+
attributes:
17+
label: Proposed behavior
18+
description: Describe the expected interface, configuration, or workflow.
19+
validations:
20+
required: true
21+
- type: textarea
22+
id: constraints
23+
attributes:
24+
label: Constraints
25+
description: Note hardware, OS, network, YouTube API, or camera constraints that shape the request.
26+
validations:
27+
required: false

.github/dependabot.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: github-actions
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
day: monday
8+
time: "09:00"
9+
timezone: America/Los_Angeles
10+
open-pull-requests-limit: 5
11+
12+
- package-ecosystem: pip
13+
directory: /
14+
schedule:
15+
interval: weekly
16+
day: monday
17+
time: "09:15"
18+
timezone: America/Los_Angeles
19+
open-pull-requests-limit: 5

.github/pull_request_template.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## Summary
2+
3+
-
4+
5+
## Validation
6+
7+
-
8+
9+
## Public-Safety Checklist
10+
11+
- [ ] No OAuth client files, refresh tokens, stream keys, camera credentials, or generated runtime state were committed.
12+
- [ ] Documentation was updated for user-facing behavior changes.
13+
- [ ] Local tests or relevant manual validation were run.

.github/workflows/ci.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
workflow_dispatch:
11+
12+
permissions:
13+
contents: read
14+
15+
jobs:
16+
python:
17+
name: Python ${{ matrix.python-version }}
18+
runs-on: ubuntu-latest
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
python-version:
23+
- "3.11"
24+
- "3.12"
25+
- "3.13"
26+
steps:
27+
- name: Check out repository
28+
uses: actions/checkout@v4
29+
30+
- name: Set up Python
31+
uses: actions/setup-python@v5
32+
with:
33+
python-version: ${{ matrix.python-version }}
34+
35+
- name: Install development tools
36+
run: |
37+
python -m pip install --upgrade pip
38+
python -m pip install -r requirements-dev.txt
39+
40+
- name: Run Ruff
41+
run: ruff check .
42+
43+
- name: Compile scripts
44+
run: python -m py_compile bin/youtube-autoencoder bin/youtube-autoencoder-api bin/youtube-autoencoder-test-pattern
45+
46+
- name: Run tests
47+
run: pytest -q
48+
49+
- name: Verify executable scripts
50+
run: |
51+
test -x bin/youtube-autoencoder
52+
test -x bin/youtube-autoencoder-api
53+
test -x bin/youtube-autoencoder-test-pattern
54+
55+
- name: Verify systemd units
56+
run: |
57+
sudo install -m 0755 bin/youtube-autoencoder /usr/local/bin/youtube-autoencoder
58+
systemd-analyze verify systemd/youtube-autoencoder@.service systemd/user/youtube-autoencoder.service
59+
60+
repository-metadata:
61+
name: Repository Metadata
62+
runs-on: ubuntu-latest
63+
steps:
64+
- name: Check out repository
65+
uses: actions/checkout@v4
66+
67+
- name: Lint Markdown
68+
uses: DavidAnson/markdownlint-cli2-action@v19
69+
with:
70+
globs: |
71+
**/*.md
72+
73+
- name: Lint GitHub Actions workflows
74+
uses: rhysd/actionlint@v1

.github/workflows/codeql.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: CodeQL
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
schedule:
11+
- cron: "17 11 * * 1"
12+
workflow_dispatch:
13+
14+
permissions:
15+
actions: read
16+
contents: read
17+
security-events: write
18+
19+
jobs:
20+
analyze:
21+
name: Analyze Python
22+
runs-on: ubuntu-latest
23+
steps:
24+
- name: Check out repository
25+
uses: actions/checkout@v4
26+
27+
- name: Initialize CodeQL
28+
uses: github/codeql-action/init@v3
29+
with:
30+
languages: python
31+
queries: security-extended,security-and-quality
32+
33+
- name: Perform CodeQL analysis
34+
uses: github/codeql-action/analyze@v3

0 commit comments

Comments
 (0)