Skip to content

Build a prototype of new rule based optimizer #824

Build a prototype of new rule based optimizer

Build a prototype of new rule based optimizer #824

name: Label issue from external users
on:
issues:
types: [opened]
jobs:
label-external-issues:
name: Label issue from external user
runs-on: ubuntu-latest
steps:
- name: add external label
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
script: |
const issueAuthor = context.payload.issue.user.login
if (context.repo.owner == issueAuthor) {
console.log("Issue author is here");
return
}
const org = context.repo.owner;
const isOrgMember = async function () {
try {
const response = await github.rest.orgs.checkMembershipForUser({
org,
username: issueAuthor,
});
return response.status == 204;
} catch (error) {
if (error.status && error.status == 404) {
return false;
}
throw error;
}
}
console.log(`Checking membership for user: ${issueAuthor} in organization: ${org}`);
if (!await isOrgMember()) {
console.log(`User ${issueAuthor} is not a member of the organization.`)
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['external']
})
} else {
console.log(`User ${issueAuthor} is a member of the organization.`)
}