Skip to content

Commit

Permalink
Merge branch 'master' into delete
Browse files Browse the repository at this point in the history
  • Loading branch information
thulieblack authored Apr 12, 2024
2 parents 14eee67 + be76266 commit 0d6124b
Show file tree
Hide file tree
Showing 26 changed files with 627 additions and 19 deletions.
11 changes: 11 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,17 @@
"contributions": [
"doc"
]
},
{
"login": "gvensan",
"name": "Giri Venkatesan",
"avatar_url": "https://avatars.githubusercontent.com/u/4477169?v=4",
"profile": "https://github.com/gvensan",
"contributions": [
"talk",
"blog",
"promotion"
]
}
],
"commitConvention": "angular",
Expand Down
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);
}
90 changes: 90 additions & 0 deletions .github/workflows/bounty-program-commands.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# This workflow is centrally managed at https://github.com/asyncapi/.github/
# Don't make changes to this file in this repository, as they will be overwritten with
# changes made to the same file in the abovementioned repository.

# The purpose of this workflow is to allow Bounty Team members
# (https://github.com/orgs/asyncapi/teams/bounty_team) to issue commands to the
# organization's global AsyncAPI bot related to the Bounty Program, while at the
# same time preventing unauthorized users from misusing them.

name: Bounty Program commands

on:
issue_comment:
types:
- created

jobs:
guard-against-unauthorized-use:
if: >
github.actor != ('aeworxet' || 'thulieblack') &&
(
contains(github.event.comment.body, '/bounty' )
)
runs-on: ubuntu-latest

steps:
- name: ❌ @${{github.actor}} made an unauthorized attempt to use a Bounty Program's command
uses: actions/github-script@v6

with:
github-token: ${{ secrets.GH_TOKEN }}
script: |
const commentText = `❌ @${{github.actor}} is not authorized to use the Bounty Program's commands.
These commands can only be used by members of the [Bounty Team](https://github.com/orgs/asyncapi/teams/bounty_team).`;
console.log(`❌ @${{github.actor}} made an unauthorized attempt to use a Bounty Program's command.`);
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: commentText
})
add-label-bounty:
if: >
github.actor == ('aeworxet' || 'thulieblack') &&
(
contains(github.event.comment.body, '/bounty' )
)
runs-on: ubuntu-latest
env:
BOUNTY_PROGRAM_LABELS_JSON: |
[
{"name": "bounty", "color": "0e8a16", "description": "Participation in the Bounty Program"}
]
steps:
- name: Add label `bounty`
uses: actions/github-script@v6

with:
github-token: ${{ secrets.GH_TOKEN }}
script: |
const BOUNTY_PROGRAM_LABELS = JSON.parse(process.env.BOUNTY_PROGRAM_LABELS_JSON);
let LIST_OF_LABELS_FOR_REPO = await github.rest.issues.listLabelsForRepo({
owner: context.repo.owner,
repo: context.repo.repo,
});
LIST_OF_LABELS_FOR_REPO = LIST_OF_LABELS_FOR_REPO.data.map(key => key.name);
if (!LIST_OF_LABELS_FOR_REPO.includes(BOUNTY_PROGRAM_LABELS[0].name)) {
await github.rest.issues.createLabel({
owner: context.repo.owner,
repo: context.repo.repo,
name: BOUNTY_PROGRAM_LABELS[0].name,
color: BOUNTY_PROGRAM_LABELS[0].color,
description: BOUNTY_PROGRAM_LABELS[0].description
});
}
console.log('Adding label `bounty`...');
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: [BOUNTY_PROGRAM_LABELS[0].name]
})
1 change: 1 addition & 0 deletions .github/workflows/help-command.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ jobs:
At the moment the following comments are supported in pull requests:

- \`/please-take-a-look\` or \`/ptal\` - This comment will add a comment to the PR asking for attention from the reviewrs who have not reviewed the PR yet.
- \`/ready-to-merge\` or \`/rtm\` - This comment will trigger automerge of PR in case all required checks are green, approvals in place and do-not-merge label is not added
- \`/do-not-merge\` or \`/dnm\` - This comment will block automerging even if all conditions are met and ready-to-merge label is added
- \`/autoupdate\` or \`/au\` - This comment will add \`autoupdate\` label to the PR and keeps your PR up-to-date to the target branch's future changes. Unless there is a merge conflict or it is a draft PR.`
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/please-take-a-look-command.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# This action is centrally managed in https://github.com/asyncapi/.github/
# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in above mentioned repo

# It uses Github actions to listen for comments on issues and pull requests and
# if the comment contains /please-take-a-look or /ptal it will add a comment pinging
# the code-owners who are reviewers for PR

name: Please take a Look

on:
issue_comment:
types: [created]

jobs:
ping-for-attention:
if: >
github.event.issue.pull_request &&
github.event.issue.state != 'closed' &&
github.actor != 'asyncapi-bot' &&
(
contains(github.event.comment.body, '/please-take-a-look') ||
contains(github.event.comment.body, '/ptal') ||
contains(github.event.comment.body, '/PTAL')
)
runs-on: ubuntu-latest
steps:
- name: Check for Please Take a Look Command
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GH_TOKEN }}
script: |
const prDetailsUrl = context.payload.issue.pull_request.url;
const { data: pull } = await github.request(prDetailsUrl);
const reviewers = pull.requested_reviewers.map(reviewer => reviewer.login);
const { data: reviews } = await github.rest.pulls.listReviews({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number
});
const reviewersWhoHaveReviewed = reviews.map(review => review.user.login);
const reviewersWhoHaveNotReviewed = reviewers.filter(reviewer => !reviewersWhoHaveReviewed.includes(reviewer));
if (reviewersWhoHaveNotReviewed.length > 0) {
const comment = reviewersWhoHaveNotReviewed.filter(reviewer => reviewer !== 'asyncapi-bot-eve' ).map(reviewer => `@${reviewer}`).join(' ');
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `${comment} Please take a look at this PR. Thanks! :wave:`
});
}
64 changes: 64 additions & 0 deletions .github/workflows/vote-verifcation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
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:
github-token: ${{ secrets.GH_TOKEN_BOT_EVE }}
script : |
const isTSCMember = ${{ steps.verify_member.outputs.isTSCMember}}
if(!isTSCMember) {
const commentText = `Hi @${{ github.actor }}, since you are not a [TSC Member](https://www.asyncapi.com/community/tsc), you cannot start or stop voting. Please [read more about voting process](https://github.com/asyncapi/community/blob/master/voting.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: ${{ secrets.GH_TOKEN_BOT_EVE }}
- 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: ${{ secrets.GH_TOKEN_BOT_EVE }}
2 changes: 1 addition & 1 deletion .github/workflows/youtube-to-spotify-for-podcasters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
# Verify the content was written successfully
cat episode.json
- name: Upload Episode from YouTube To Anchor.Fm
uses: Schrodinger-Hat/youtube-to-anchorfm@c722f3edeee94f3173dad36c5a959247973c5253 #commit related to https://github.com/Schrodinger-Hat/youtube-to-anchorfm/commit/c722f3edeee94f3173dad36c5a959247973c5253 || The latest commit which is of Nov 14, 2023
uses: Schrodinger-Hat/youtube-to-anchorfm@b02b82f809d24db88472a78c51ffa627f46a6dc3 #commit related to https://github.com/Schrodinger-Hat/youtube-to-anchorfm/commit/b02b82f809d24db88472a78c51ffa627f46a6dc3 || The latest commit which refers to v2.4.0 of the action
env:
ANCHOR_EMAIL: ${{ secrets.ANCHOR_EMAIL }}
ANCHOR_PASSWORD: ${{ secrets.ANCHOR_PASSWORD }}
Expand Down
9 changes: 9 additions & 0 deletions .gitvote.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
profiles:
default:
duration: 4w
pass_threshold: 51
periodic_status_check: "1 week"
close_on_passing: true
allowed_voters:
teams:
- tsc_members
49 changes: 49 additions & 0 deletions AMBASSADORS_MEMBERS.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,55 @@
}
]
},
{
"name": "Giri Venkatesan",
"github": "gvensan",
"twitter": "giri_venkatesan",
"country": "🇮🇳",
"bio": "Giri Venkatesan, a follower and proponent of AsyncAPI and teams up with companies & SIs to design event-driven architecture and asynchronous APIs. To guide those discussions, I draw upon years of integration and implementation experience, particularly with Solace platforms. I've been a follower of AsyncAPI since 2022, and written blogs and delivered talks at conferences and AsyncAPI confrence tours.",
"linkedin": "girivenkatesan",
"company": "Solace",
"title": "Developer Advocate, Office of the CTO at Solace",
"img": "https://avatars.githubusercontent.com/u/4477169?s=96&v=4",
"contributions": [
{
"type": "article",
"title": "Bridging Design and Runtime Gaps: AsyncAPI in Event-Driven Architecture",
"date": {
"year": 2024,
"month": "February"
},
"link": "https://www.linux.com/news/bridging-design-and-runtime-gaps-asyncapi-in-event-driven-architecture/"
},
{
"type": "talk",
"title": "Bridging the Gap between Design and Runtime in EDA with AsyncAPI and CI/CD",
"date": {
"year": 2023,
"month": "November"
},
"link": "https://www.youtube.com/watch?v=CXt-fy82PCk"
},
{
"type": "talk",
"title": "Bridging the Gap between Design and Runtime in EDA with AsyncAPI",
"date": {
"year": 2023,
"month": "August"
},
"link": "https://www.youtube.com/watch?v=ewpADLeLNE4"
},
{
"type": "article",
"title": "AsyncAPI + Spring Cloud Stream = Event-Driven Microservices Made Easy",
"date": {
"year": 2021,
"month": "November"
},
"link": "https://www.youtube.com/watch?v=3EeMHhbwyOQ&t=4142s"
}
]
},
{
"name": "Hugo Guerrero",
"img": "https://avatars.githubusercontent.com/u/1001939?v=4",
Expand Down
16 changes: 9 additions & 7 deletions MAINTAINERS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -314,16 +314,18 @@
company: Postman
isTscMember: true
repos:
- spec
- spec-json-schemas
- bindings
- converter-go
- event-gateway
- go-watermill-template
- infra
- parser-api
- parser-go
- parser-js
- avro-schema-parser
- openapi-schema-parser
- raml-dt-schema-parser
- server-api
- spec
- spec-json-schemas
- parser-go
- converter-go
- go-watermill-template
- template-for-go-projects
- name: Souvik De
github: souvikns
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/akkshitgupta"><img src="https://avatars.githubusercontent.com/u/96991785?v=4?s=100" width="100px;" alt="Akshit Gupta"/><br /><sub><b>Akshit Gupta</b></sub></a><br /><a href="https://github.com/asyncapi/community/commits?author=akkshitgupta" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nikhilkalburgi"><img src="https://avatars.githubusercontent.com/u/70331875?v=4?s=100" width="100px;" alt="nikhilkalburgi"/><br /><sub><b>nikhilkalburgi</b></sub></a><br /><a href="https://github.com/asyncapi/community/commits?author=nikhilkalburgi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/gvensan"><img src="https://avatars.githubusercontent.com/u/4477169?v=4?s=100" width="100px;" alt="Giri Venkatesan"/><br /><sub><b>Giri Venkatesan</b></sub></a><br /><a href="#talk-gvensan" title="Talks">📢</a> <a href="#blog-gvensan" title="Blogposts">📝</a> <a href="#promotion-gvensan" title="Promotion">📣</a></td>
</tr>
</tbody>
</table>
Expand Down
Loading

0 comments on commit 0d6124b

Please sign in to comment.