Преглед изворни кода

switch to pull request target

Signed-off-by: Alex Meijer <alexander.meijer@ibm.com>
Alex Meijer пре 1 година
родитељ
комит
96ebff872b
1 измењених фајлова са 7 додато и 50 уклоњено
  1. 7 50
      .github/workflows/build-test-image.yml

+ 7 - 50
.github/workflows/build-test-image.yml

@@ -3,7 +3,7 @@ name: Build and Publish Test Image
 on:
   merge_group:
     types: [checks_requested]
-  pull_request:
+  pull_request_target:
     branches:
       - develop
 
@@ -15,58 +15,15 @@ jobs:
   check_actor_permissions:
         runs-on: ubuntu-latest
         outputs:
-            ismaintainer: ${{ steps.check_permissions.outputs.ismaintainer }}
+            ismaintainer: ${{ steps.teamAffiliation.outputs.isTeamMember }}
         steps:
           - name: Check if actor is a maintainer
-            id: check_permissions
-            uses: actions/github-script@v7
+            uses: tspascoal/get-user-teams-membership@v2
+            id: teamAffiliation
             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'
-                });
-                
-                // List all teams to find the correct slug
-                const { data: teams } = await github.rest.teams.list({
-                  org: 'opencost'
-                });
-                
-                console.log('Available teams:');
-                teams.forEach(team => {
-                  console.log(`- ${team.name} (slug: ${team.slug})`);
-                });
-                
-                // Try to get team members, but don't fail if team doesn't exist
-                let teamMembers = [];
-                try {
-                  const { data: members } = await github.rest.teams.listMembersInOrg({
-                    org: 'opencost',
-                    team_slug: 'opencost-maintainers'
-                  });
-                  teamMembers = members;
-                } catch (error) {
-                  console.log('Error fetching team members:', error.message);
-                  console.log('Continuing with empty team members list');
-                }
-                
-                const writers = collaborators.map(collaborator => collaborator.login);
-                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());
+              GITHUB_TOKEN: ${{ secrets.ORG_READER_PAT }}
+              username: ${{ github.actor }}
+              team: opencost-maintainers
   build-and-publish-test-image:
     runs-on: ubuntu-latest
     needs: check_actor_permissions