-
-
Notifications
You must be signed in to change notification settings - Fork 34
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
add workflow for Agenda Verification and Notifications before Monday Meetings #802
Merged
Merged
Changes from 3 commits
Commits
Show all changes
20 commits
Select commit
Hold shift + click to select a range
e0f0778
Add ocwm-pre-meeting-check.yml to workflow
nikhilkalburgi 302a673
change ocwm-pre-meeting-check.yml comment
nikhilkalburgi f8948ce
fix: update ocwm-pre-meeting-check.yml with suggested changes
nikhilkalburgi c295acf
update ocwm-pre-meeting-check.yml
nikhilkalburgi 50942a3
update ocwm-pre-meeting-check.yml for test
nikhilkalburgi 56383f9
second update ocwm-pre-meeting-check.yml for test
nikhilkalburgi 4bd44db
third update ocwm-pre-meeting-check.yml for test
nikhilkalburgi 6fff2ca
forth update ocwm-pre-meeting-check.yml for test
nikhilkalburgi 9323d93
Update ocwm-pre-meeting-check.yml
nikhilkalburgi 05f72a1
Update ocwm-pre-meeting-check.yml
nikhilkalburgi 638acae
Update ocwm-pre-meeting-check.yml
nikhilkalburgi e6928b3
Update ocwm-pre-meeting-check.yml
nikhilkalburgi 495c6f9
Update ocwm-pre-meeting-check.yml
nikhilkalburgi e091bae
Update ocwm-pre-meeting-check.yml
nikhilkalburgi 6299e1a
Update ocwm-pre-meeting-check.yml
nikhilkalburgi ef9ffbe
Update ocwm-pre-meeting-check.yml
nikhilkalburgi 86bf421
Update ocwm-pre-meeting-check.yml
nikhilkalburgi d568f57
Update ocwm-pre-meeting-check.yml
nikhilkalburgi 7e93929
fix: improve ocwm-pre-meeting-check.yml
nikhilkalburgi 93cc7e1
Update ocwm-pre-meeting-check.yml
benjagm File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,83 @@ | ||||||||||||||||||||||||||||||||||||||||||
name: OCWM Pre-Meeting Check | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
on: | ||||||||||||||||||||||||||||||||||||||||||
schedule: | ||||||||||||||||||||||||||||||||||||||||||
- cron: '50 18 15-21 * 1' # Runs at 11:50 AM PT on the 3rd Monday of the month | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
jobs: | ||||||||||||||||||||||||||||||||||||||||||
check_agenda: | ||||||||||||||||||||||||||||||||||||||||||
runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
steps: | ||||||||||||||||||||||||||||||||||||||||||
- name: Checkout Repository | ||||||||||||||||||||||||||||||||||||||||||
uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
- name: Set up Node 20 | ||||||||||||||||||||||||||||||||||||||||||
uses: actions/setup-node@v4 | ||||||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||||||
node-version: '20' | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
- name: Get GitHub Token | ||||||||||||||||||||||||||||||||||||||||||
uses: actions/create-github-app-token@v1 | ||||||||||||||||||||||||||||||||||||||||||
id: get_workflow_token | ||||||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||||||
app-id: ${{ vars.APP_ID }} | ||||||||||||||||||||||||||||||||||||||||||
private-key: ${{ secrets.PRIVATE_KEY }} | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
- name: Install Dependencies | ||||||||||||||||||||||||||||||||||||||||||
run: npm install @octokit/[email protected] | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
This new step will make sure the process only runs completely the third monday of the month. |
||||||||||||||||||||||||||||||||||||||||||
- name: Check Latest OCWM Issue | ||||||||||||||||||||||||||||||||||||||||||
id: check_issue | ||||||||||||||||||||||||||||||||||||||||||
env: | ||||||||||||||||||||||||||||||||||||||||||
MY_TOKEN: ${{ steps.get_workflow_token.outputs.token }} | ||||||||||||||||||||||||||||||||||||||||||
OWNER: ${{ vars.ORGANISATION }} | ||||||||||||||||||||||||||||||||||||||||||
REPO: 'community' | ||||||||||||||||||||||||||||||||||||||||||
OCWM_LABEL: ${{ vars.OCWM_LABEL }} | ||||||||||||||||||||||||||||||||||||||||||
TEMPLATE_PATH: '../ISSUE_TEMPLATE/open_community_working_meeting.md' | ||||||||||||||||||||||||||||||||||||||||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_GEN_NOTIF }} | ||||||||||||||||||||||||||||||||||||||||||
run: | | ||||||||||||||||||||||||||||||||||||||||||
const fs = require('fs'); | ||||||||||||||||||||||||||||||||||||||||||
const octokit = require('@octokit/core').Octokit; | ||||||||||||||||||||||||||||||||||||||||||
const mygithub = new octokit({ | ||||||||||||||||||||||||||||||||||||||||||
request: { fetch: fetch, }, | ||||||||||||||||||||||||||||||||||||||||||
auth: process.env.MY_TOKEN | ||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
// Read the template from the markdown file | ||||||||||||||||||||||||||||||||||||||||||
const templateContent = fs.readFileSync(process.env.TEMPLATE_PATH, 'utf8'); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
// Fetch the latest issue with OCWM_LABEL | ||||||||||||||||||||||||||||||||||||||||||
const { data: issues } = await mygithub.request(`GET /repos/${process.env.OWNER}/${process.env.REPO}/issues?labels=${encodeURIComponent(process.env.OCWM_LABEL)}&per_page=1`); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
if (issues.length === 0) { | ||||||||||||||||||||||||||||||||||||||||||
console.log("No open community working meeting issues found."); | ||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
const latestIssue = issues[0]; | ||||||||||||||||||||||||||||||||||||||||||
const issueBody = latestIssue.body; | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
// Check if the issue body matches the template | ||||||||||||||||||||||||||||||||||||||||||
if (issueBody.includes(templateContent)) { | ||||||||||||||||||||||||||||||||||||||||||
console.log("Template matched, cancelling the meeting."); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
// Add a comment to the issue | ||||||||||||||||||||||||||||||||||||||||||
await mygithub.request(`POST /repos/${process.env.OWNER}/${process.env.REPO}/issues/${latestIssue.number}/comments`, { | ||||||||||||||||||||||||||||||||||||||||||
body: "The meeting has been cancelled as there is no agenda for today. Thanks everyone!" | ||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
// Send a notification to Slack | ||||||||||||||||||||||||||||||||||||||||||
const slackPayload = { | ||||||||||||||||||||||||||||||||||||||||||
text: `The meeting has been cancelled as there is no agenda for today. Thanks everyone!` | ||||||||||||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
await fetch(process.env.SLACK_WEBHOOK, { | ||||||||||||||||||||||||||||||||||||||||||
method: 'POST', | ||||||||||||||||||||||||||||||||||||||||||
headers: { 'Content-Type': 'application/json' }, | ||||||||||||||||||||||||||||||||||||||||||
body: JSON.stringify(slackPayload) | ||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
} else { | ||||||||||||||||||||||||||||||||||||||||||
console.log("Agenda found. Meeting will proceed."); | ||||||||||||||||||||||||||||||||||||||||||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My apologies but the code I suggested to be added was not working as I was expecting so sorry for suggesting it. Let's return your previous change.
Make the process runs only the third monday is not possible only using cron. We'll need to add a new step the workflow. I'll suggest the change later.