Sfoglia il codice sorgente

check team membership

Signed-off-by: Alex Meijer <alexander.meijer@ibm.com>
Alex Meijer 1 anno fa
parent
commit
b730018acc
1 ha cambiato i file con 15 aggiunte e 1 eliminazioni
  1. 15 1
      .github/workflows/build-test-image.yml

+ 15 - 1
.github/workflows/build-test-image.yml

@@ -22,17 +22,31 @@ jobs:
             uses: actions/github-script@v7
             with:
               script: |
+                // Get repository collaborators with push access
                 const { data: collaborators } = await github.rest.repos.listCollaborators({
                   owner: context.repo.owner,
                   repo: context.repo.repo,
                   permission: 'push'
                 });
                 
+                // Get team members
+                const { data: teamMembers } = await github.rest.teams.listMembersInOrg({
+                  org: 'opencost',
+                  team_slug: 'opencost-maintainers'
+                });
+                
                 const writers = collaborators.map(collaborator => collaborator.login);
-                const isActorMaintainer = writers.includes(context.actor);
+                const maintainers = teamMembers.map(member => member.login);
+                
+                const isWriter = writers.includes(context.actor);
+                const isTeamMember = maintainers.includes(context.actor);
+                const isActorMaintainer = isWriter || isTeamMember;
                 
                 console.log(`Actor: ${context.actor}`);
                 console.log(`Repository writers: ${writers.join(', ')}`);
+                console.log(`Team maintainers: ${maintainers.join(', ')}`);
+                console.log(`Is actor a writer? ${isWriter}`);
+                console.log(`Is actor a team member? ${isTeamMember}`);
                 console.log(`Is actor a maintainer? ${isActorMaintainer}`);
                 
                 core.setOutput('ismaintainer', isActorMaintainer.toString());