44 push :
55 branches : [master, main]
66 schedule :
7- - cron : ' 0 0 1 * *' # First day of every month at midnight UTC
8- workflow_dispatch : # Allow manual trigger
7+ - cron : ' 0 0 1 * *' # First day of every month at midnight UTC
8+ workflow_dispatch :
9+
10+ permissions :
11+ contents : read
12+ issues : write
913
1014jobs :
1115 noop_on_push :
@@ -19,38 +23,43 @@ jobs:
1923 if : ${{ github.event_name != 'push' }}
2024 runs-on : ubuntu-latest
2125 steps :
22- - name : Create Issue
26+ - name : Create issue reminder
2327 uses : actions/github-script@v7
2428 with :
2529 script : |
26- const today = new Date().toISOString().split('T')[0];
27- const nextMonth = new Date(Date.now() + 30*24*60*60*1000).toISOString().split('T')[0];
30+ const today = new Date().toISOString().slice(0, 10);
31+ const nextMonth = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString().slice(0, 10);
32+
33+ const title = `🔐 Update Warrant Canary - ${today}`;
34+ const body = [
35+ '## Monthly Warrant Canary Update',
36+ '',
37+ '**Action Required:** Update and sign the warrant canary.',
38+ '',
39+ '### Steps:',
40+ '1. Run: `./scripts/sign-canary.sh`',
41+ '2. Review `public/canary.txt`',
42+ '3. Commit: `git add public/canary.txt public/pgp-key.asc`',
43+ `4. Push: \`git commit -m "Update warrant canary ${today}" && git push\``,
44+ '5. Deploy: `npm run deploy`',
45+ '6. Close this issue',
46+ '',
47+ '### Checklist:',
48+ '- [ ] No warrants received',
49+ '- [ ] No subpoenas received',
50+ '- [ ] No NSLs received',
51+ '- [ ] No government requests',
52+ '- [ ] No forced time manipulation',
53+ '- [ ] Infrastructure under control',
54+ '- [ ] No backdoors or compromises',
55+ '',
56+ `**Next update:** ${nextMonth}`,
57+ ].join('\n');
2858
2959 await github.rest.issues.create({
3060 owner: context.repo.owner,
3161 repo: context.repo.repo,
32- title: `🔐 Update Warrant Canary - ${today}`,
33- body: `## Monthly Warrant Canary Update
34-
35- **Action Required:** Update and sign the warrant canary.
36-
37- # ## Steps:
38- 1. Run : \`./scripts/sign-canary.sh\`
39- 2. Review \`public/canary.txt\`
40- 3. Commit : \`git add public/canary.txt public/pgp-key.asc\`
41- 4. Push : \`git commit -m "Update warrant canary ${today}" && git push\`
42- 5. Deploy : \`npm run deploy\`
43- 6. Close this issue
44-
45- # ## Checklist:
46- - [ ] No warrants received
47- - [ ] No subpoenas received
48- - [ ] No NSLs received
49- - [ ] No government requests
50- - [ ] No forced time manipulation
51- - [ ] Infrastructure under control
52- - [ ] No backdoors or compromises
53-
54- **Next update:** ${nextMonth}`,
55- labels : ['security', 'canary', 'monthly']
62+ title,
63+ body,
64+ labels: ['security', 'canary', 'monthly'],
5665 });
0 commit comments