Commit Graph
37 Commits
Author SHA1 Message Date
Brad WarrenandGitHub e9050f1a3c dynamically determine base branch name in mattermost notifications (#10496)
previously, if we merged a PR into one of our point release branches,
the mattermost notification would still say it was merged into main.
this PR fixes that

you can see me testing this change on my fork with this [workflow
file](https://github.com/bmw/letsencrypt/actions/runs/19588662936/workflow#L30)
and this
[output](https://github.com/bmw/letsencrypt/actions/runs/19588662936/job/56102625766#step:2:4)

if this PR is merged, i'll do the same thing in our josepy repo
2025-11-24 13:42:14 -08:00
Brad WarrenandGitHub b02deb339a update actions in response to pull_request_target concerns (#10490)
this pr is in response to https://words.filippo.io/compromise-survey/.
ohemorange and i read this late on a friday to (speaking for myself at
least) much panic as it has some very strong words to say about the
github actions trigger pull_request_target which we use. looking into
the issue more, i also found that the popular static analysis tool
[zizmor](https://github.com/zizmorcore/zizmor) flags any github actions
workflow that uses the pull_request_target trigger with the message:

```
error[dangerous-triggers]: use of fundamentally insecure workflow trigger
pull_request_target is almost always used insecurely
```

this only added to my concern

the general problem with pull_request_target is that it runs with
additional privileges (e.g. potential write access, access to secrets)
in an environment containing values that can be set by an attacker.
these values include things such as references to the arbitrary code
contained in the triggering pr and pr titles which have been used to
perform shell injection attacks. not carefully treating these values
like the untrusted data it is while executing code in the privileged
environment given to pull_request_target has resulted in many supply
chain attacks

that's not to say that pull_request_target CAN'T be used securely.
zizmor even has [an
issue](https://github.com/zizmorcore/zizmor/issues/1168) brainstorming
how to not warn about all uses of the trigger as some are clearly fine
and the only way to accomplish what the user wants. i'm going to argue
that our uses of the trigger are ok

looking through the links provided by filippo's blog and [zizmor's
docs](https://docs.zizmor.sh/audits/#dangerous-triggers), i think we can
break down attacks used against pull_request_target into roughly 2
categories:

1. shell injection: "Nx S1ingularity" and "Ultralytics" from filippo's
blog
2. checking out and running a PR's code: "Kong Ingress Controller" and
"Rspack" from filippo's blog and https://ptrpa.ws/nixpkgs-actions-abuse
from zizmor docs

i think none of our pull_request_target workflows have these problems.
none of them use a shell (the [zizmor
issue](https://github.com/zizmorcore/zizmor/issues/1168) i linked
earlier suggests that any pull_request_target workflow that uses a run
block should always be flagged as insecure). instead, our workflows just
call action-mattermost-notify which can be [pretty easily
audited](https://github.com/mattermost/action-mattermost-notify/blob/2.0.0/src/main.js)
(as all the other files in the repo are boilerplate). passing possible
attacker controlled values directly to an action written in another
language is one of the approaches for mitigating script injection
[recommended by
github](https://docs.github.com/en/actions/reference/security/secure-use#use-an-action-instead-of-an-inline-script).
our workflows also do not check out the triggering pr's code

despite all that, i took this opportunity to cleanup and harden things a
bit. i reduced the permissions for each workflow and confirmed they each
still work on my fork. i also pinned the mattermost action to an exact
version and added some inline documentation

with these changes, our github workflows trigger few to no
warnings/errors when checked with zizmor,
[octoscan](https://github.com/synacktiv/octoscan), and [openssf
scorecard](https://github.com/ossf/scorecard)

if this pr is approved, i'll make similar changes to our josepy repo
2025-11-20 15:09:06 -08:00
6ee19bac55 Allow notification of two reviewers being assigned to a PR and two issue assignees (#10345)
Fixes https://github.com/certbot/certbot/issues/10344

You can see this working in the mattermost "Test" channel, where I ran
this code from my test repo.

The documentation for the PR reviewer syntax is here:
https://docs.github.com/en/webhooks/webhook-events-and-payloads?actionType=review_requested#pull_request

We now no longer notify on PR assignees. But I think that is the correct
behavior.

This PR also fixes a bug in the issue assigned notification code, and
now lets you see when two different people were assigned. That
documentation is here:
https://docs.github.com/en/webhooks/webhook-events-and-payloads#

After this is in, I'll make the same changes to the josepy repo.

You can see the `if` syntax here:
https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows

```
on:
  pull_request:
    types: [review_requested]
jobs:
  specific_review_requested:
    runs-on: ubuntu-latest
    if: ${{ github.event.requested_team.name == 'octo-team'}}
    steps:
      - run: echo 'A review from octo-team was requested'
```

---------

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2025-06-23 17:08:21 +00:00
Brad WarrenandGitHub 4cffcbffaa use-pr-target 2025-03-05 08:19:10 -08:00
d3aceba188 [TOOLING] Add Automation for When a PR or Issue is Assigned (#10191)
Adding automation for team triage meetings for when PRs or Issues are
assigned. You can see an example in the "Test" channel.

---------

Co-authored-by: ohemorange <erica@eff.org>
2025-02-14 14:58:00 -08:00
AlexisandGitHub 2ae7f83e2a [REPO] Modify Stalebot Labels for Better Filters (#10171)
- Better labels upon an issue going stale will help triage better. There
other PRs with "needs update" that are manually put and therefore we
can't explicitly filter for stalebot.
- For management purposes, being able to view how many issues are
auto-closed helps as well.
2025-01-31 15:23:10 -08:00
Brad WarrenandGitHub 94dcf25f6e notify about PRs from forks (#10101) 2025-01-15 17:19:25 -08:00
86694397a6 Update notify_weekly.yaml (#10118)
Making the weekly message a little more useful.

---------

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2025-01-13 07:46:12 -08:00
Brad WarrenandGitHub c54f99e35b mattermost/action-mattermost-notify still uses master (#10021) 2024-10-04 14:08:25 -07:00
Will Greenberg 84c8dbc52a Migrate master branch to main
We're a few years behind the curve on this one, but using "master" as a
programming term is a callous practice that explicitly uses the
historical institution of slavery as a cheap, racist metaphor. Switch to
using "main", as it's the new default in git and GitHub.
2024-09-26 14:48:10 -07:00
ohemorangeandGitHub 018800c5cc specify channel in weekly mm message (#10013) 2024-09-16 12:31:52 -07:00
Brad WarrenandGitHub 2eb4154169 allow manually triggering GH actions (#10015) 2024-09-16 12:16:51 -07:00
ohemorangeandGitHub 6975e32998 Fix weekly mattermost notifier (#10009) 2024-09-11 11:11:47 -07:00
Brad WarrenandGitHub 62962357c5 add parenthesis (#10008) 2024-09-10 13:06:48 -07:00
ohemorangeandGitHub 343b540970 Use new mattermost action workflow (#10007) 2024-09-10 12:53:21 -07:00
ohemorangeandGitHub 089b7efacd Update syntax for mattermost webhooks (#10006) 2024-09-10 12:16:53 -07:00
AlexisandGitHub 2cb2cb0575 Update merged.yaml 2023-07-24 12:11:40 -07:00
Brad WarrenandGitHub 35209d921d bump stale limit (#9691) 2023-05-09 17:06:47 -07:00
Brad WarrenandGitHub dc05b4da7a Increase stale operations per run (#9668)
* increase operations per run

* update comment
2023-04-13 09:18:24 +10:00
Brad Warren 6a666b0323 increase stale frequency 2023-03-23 10:11:20 -07:00
Will GreenbergandGitHub 7a6752a68e Merge pull request #9601 from certbot/yaml/merge-notifications
Create Workflow for Merge Notifications
2023-03-08 14:07:53 -08:00
AlexisandGitHub 40486f3ab4 Fix indentation error 2023-03-08 09:22:17 -08:00
AlexisandGitHub 6c22e29875 Update to include sanitization for JSON file 2023-03-07 12:42:39 -08:00
AlexisandGitHub 9f5e666702 Add a space for link selection 2023-03-03 11:09:56 -08:00
AlexisandGitHub 077cfb7861 Update .github/workflows/merged.yaml
Escape any double quotes in the Title that may come in
2023-03-03 11:06:27 -08:00
AlexisandGitHub 87f8eca033 Update .github/workflows/notify_weekly.yaml
Remove trailing char
2023-02-28 17:39:17 -08:00
AlexisandGitHub 10b0fb6da0 Update .github/workflows/notify_weekly.yaml 2023-02-28 17:38:43 -08:00
AlexisandGitHub 44be66eed9 Update .github/workflows/notify_weekly.yaml 2023-02-28 17:38:23 -08:00
AlexisandGitHub bd3e3d1af1 Update .github/workflows/merged.yaml 2023-02-28 17:35:56 -08:00
AlexisandGitHub 97dd95329d Update merged.yaml 2023-02-28 13:31:06 -08:00
AlexisandGitHub 676863760a Create Workflow for Merge Notifications
Sent to Mattermost Channel for Certbot Team to check and be generally aware of more granular merge events.
2023-02-28 13:15:41 -08:00
AlexisandGitHub 173b832a8f Create Weekly Notification Message for Certbot Team
Composes Mattermost message to team channel
2023-02-28 12:38:53 -08:00
Will GreenbergandGitHub 1b904b62c9 Enable stale issue tracker (#9580) 2023-02-14 15:13:13 -08:00
Brad Warren 1da113d7d6 tweak comment 2023-02-14 08:55:07 -08:00
Brad Warren 64800c2b1f disable stale for PRs 2023-02-14 08:51:17 -08:00
Will GreenbergandGitHub 8226d30af0 Bump up the number of operations to 30 (#9554)
This is the default value, which is sensible since an "operation"
basically corresponds to a GH API call, and 1 won't really let us
do anything.
2023-01-28 08:16:15 +11:00
Will GreenbergandGitHub b0748b69e7 Replace probot/stale app with a Github Action (#9466)
* Replace probot/stale app with a Github Action

This creates a Github Actions workflow which seems to be the supported
way of automarking issues as stale. Adds a dry-run flag to test it out.

* small fixups

* cron typo

* disable unnecessary permissions

* use friendlier name
2023-01-25 15:59:22 -08:00