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

ci: add workflow to enable voting #1120

Merged
merged 27 commits into from
Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5b0c743
Add workflow to enable voting
AayushSaini101 Mar 24, 2024
04c7047
Added required changes
AayushSaini101 Mar 28, 2024
2aa27ae
update'
AayushSaini101 Mar 28, 2024
b5b28f6
update author variable
AayushSaini101 Mar 28, 2024
d35401b
remove variable
AayushSaini101 Mar 28, 2024
603a058
update message name
AayushSaini101 Mar 28, 2024
75a665f
Merge branch 'master' into Issue-1093
AayushSaini101 Mar 28, 2024
bca1c04
Merge branch 'master' into Issue-1093
AayushSaini101 Apr 3, 2024
d7e79fd
Update suggestion
AayushSaini101 Apr 4, 2024
1be2132
improve suggestion
AayushSaini101 Apr 4, 2024
bb074f5
Improve description
AayushSaini101 Apr 4, 2024
eba881f
update suggestion
AayushSaini101 Apr 5, 2024
bc617e2
Merge branch 'master' into Issue-1093
AayushSaini101 Apr 5, 2024
7c94980
Merge branch 'master' into Issue-1093
AayushSaini101 Apr 7, 2024
369ac9a
Update .github/workflows/vote-verifcation.yml
AayushSaini101 Apr 8, 2024
ea9aeb8
Update .github/workflows/vote-verifcation.yml
AayushSaini101 Apr 8, 2024
e8443d0
Update voting.md
AayushSaini101 Apr 8, 2024
b1ab7da
Update .gitvote.yml
AayushSaini101 Apr 8, 2024
dd1fd13
Merge branch 'master' into Issue-1093
AayushSaini101 Apr 8, 2024
8102647
Merge branch 'master' into Issue-1093
AayushSaini101 Apr 8, 2024
ba2a965
Improve vote-verification.yml
AayushSaini101 Apr 8, 2024
3c618ba
Update voting.md
AayushSaini101 Apr 8, 2024
7543ccc
Update .gitvote.yml
AayushSaini101 Apr 8, 2024
28a66fe
Update voting.md
AayushSaini101 Apr 8, 2024
494ac73
Update voting.md
AayushSaini101 Apr 8, 2024
e93b988
Update voting.md
AayushSaini101 Apr 8, 2024
c859699
Remove voting
AayushSaini101 Apr 9, 2024
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
46 changes: 46 additions & 0 deletions .github/actions/verifyTSCMember/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Verify Member
outputs:
isTSCMember:
description: 'Check whether the person is TSCMember or not'
value: ${{steps.verify_member.outputs.isTSCMember}}
inputs:
authorName:
description: 'Name of the commentor'
required: true

runs:
using: "composite"
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install the dependencies
run: npm install [email protected]
shell: bash

- name: Verify TSC Member
id: verify_member
uses: actions/github-script@v6
with:
script: |
const yaml = require('js-yaml');
const fs = require('fs');
const commenterName = '${{ inputs.authorName }}';
let isTSCMember = false;
try {
// Load YAML file
const data = yaml.load(fs.readFileSync('MAINTAINERS.yaml', 'utf8'));

// Filter persons who are TSC members and whose GitHub username matches commenterName
const isTscMember = data.find(person => {
return (person.isTscMember === true || person.isTscMember === "true") && person.github === commenterName;
});
// Check if a TSC member was found
if (isTscMember) {
isTSCMember = true;
}

core.setOutput('isTSCMember', isTSCMember);
} catch (e) {
console.log(e);
}
63 changes: 63 additions & 0 deletions .github/workflows/vote-verifcation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Verification of the Vote

on:
issue_comment:
types: [created]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Verify the person
id: verify_member
uses: ./.github/actions/verifyTSCMember
with:
authorName: "${{github.event.comment.user.login}}"

- name: Checking the person authenticity.
if: contains(github.event.comment.body, '/vote') || contains(github.event.comment.body, '/cancel-vote')
uses: actions/github-script@v6
with:
script : |
const isTSCMember = ${{ steps.verify_member.outputs.isTSCMember}}
if(!isTSCMember) {
const commentText = `User ❌ @${{ github.actor }} is not a [TSC Member](https://www.asyncapi.com/community/tsc). Learn more from [guidelines to become a TSC Member](https://github.com/asyncapi/community/blob/master/TSC_MEMBERSHIP.md)`;
console.log(`User ❌ @${{ github.actor }} is not a TSC Member`);
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: commentText
});
} else if('${{github.actor}}' != 'git-vote[bot]') {
console.log(`User ✅ @${{ github.actor }} is a TSC Member`);
}

- name: Add the label
run: |
if [ "${{steps.verify_member.outputs.isTSCMember}}" == "true" ]; then
if [ "${{ github.event.comment.body }}" == "/vote" ]; then
if [ "${{ github.event_name }}" != "pull_request" ]; then
gh issue edit ${{ github.event.issue.number }} --add-label "vote"
else
gh pr edit ${{ github.event.issue.number }} --add-label "vote"
fi
fi
fi
env:
GH_TOKEN: ${{ github.token }}
- name: Remove the label
run: |
if [ "${{steps.verify_member.outputs.isTSCMember}}" == "true" ]; then
if [ "${{ github.event.comment.body }}" == "/cancel-vote" ]; then
if [ "${{ github.event_name }}" != "pull_request" ]; then
gh issue edit ${{ github.event.issue.number }} --remove-label "vote"
else
gh pr edit ${{ github.event.issue.number }} --remove-label "vote"
fi
fi
fi
env:
GH_TOKEN: ${{ github.token }}
9 changes: 9 additions & 0 deletions .gitvote.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
profiles:
derberg marked this conversation as resolved.
Show resolved Hide resolved
default:
duration: 4w
pass_threshold: 51
periodic_status_check: "1 week"
AayushSaini101 marked this conversation as resolved.
Show resolved Hide resolved
close_on_passing: true
allowed_voters:
teams:
- tsc_members
Loading