Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added monitor for release jenkins agents #262

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
45 changes: 45 additions & 0 deletions .github/workflows/release-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: "⚙️ Monitor Jenkins Release CI"
on:
schedule:
# Run every hour
- cron: "21 * * * *"

workflow_dispatch:

permissions:
contents: write
pull-requests: none
issues: write
packages: none

jobs:
security-scoring:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Jenkins Alert and Reporting
uses: UlisesGascon/[email protected]
id: jenkins-status-alerts-and-reporting
with:
database: monitor-release/database.json
jenkins-domain: 'ci-release.nodejs.org'
jenkins-username: ${{ secrets.JENKINS_RELEASE_USERNAME }}
jenkins-token: ${{ secrets.JENKINS_RELEASE_TOKEN }}
# Issues
generate-issue: true
issue-assignees: 'UlisesGascon'
Copy link
Member Author

Choose a reason for hiding this comment

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

@richardlau not sure if makes sense to assign the issues to me, as I can't access to that Jenkins.

Copy link
Member

Choose a reason for hiding this comment

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

I'm hoping that won't be the case for long 🙂.

Copy link
Member

Choose a reason for hiding this comment

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

What level of access does the token give to the release jenkins instance? Just want to understand what the potential security impact might be.

Copy link
Member

Choose a reason for hiding this comment

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

@mhdawson AFAIK we currently do not have a token with access to the release Jenkins instance.

Copy link
Member

Choose a reason for hiding this comment

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

@richardlau right, but I think this would require one. I'm trying to understand what the risk of having a token with access to the release Jenkins in a public GitHub repo is.

Copy link
Member Author

@UlisesGascon UlisesGascon Jul 12, 2023

Choose a reason for hiding this comment

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

I think that we can limit the surface if we use read-only tokens. Not sure how much granularity (limit to compute) Jenkins offers currently for this.

Copy link
Member

Choose a reason for hiding this comment

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

Depending on how we can limit the tokens we might also want to have the actions run in a private repo?

issue-labels: 'potential-incident,release-ci'
create-issues-for-new-offline-nodes: false
auto-close-issue: true
disk-alert-level: 90
# Report
report: monitor-release/jenkins-report.md
report-tags-enabled: false
# Git changes
auto-commit: true
auto-push: true
github-token: ${{ secrets.GITHUB_TOKEN }}

# - name: Print the Computers
# run: |
# echo '${{ steps.jenkins-status-alerts-and-reporting.outputs.computers }}'
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@ This is a experimental Repository that uses [Jenkins status alerts and reporting

- [Report](monitor/jenkins-report.md)
- [Database](monitor/database.json)


### Release

- [Report](monitor-release/jenkins-report.md)
- [Database](monitor-release/database.json)
Empty file added monitor-release/database.json
Empty file.
Empty file.