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

Can't get PR evaluation to run in dry-run mode (run via GitHub actions) #739

Open
sumokadet opened this issue Jan 10, 2025 · 3 comments
Open
Labels
bug Something isn't working

Comments

@sumokadet
Copy link

Problem Description

We can't get safe-settings to run in dry-run (nop?) mode when evaluating pull requests on topic branch, run via GitHub actions. It always enforces the rules for both github triggers pull_request and push from main branch even though on topic branch.

Are we missing a setting?

We are on rc version 2.1.15-rc.1, feel free to discard this issue if we are reporting it premature. We are ready to wait for future versions, I just wanted to report this back. Great work by the way! 👍

What is actually happening

We see that the settings evaluated are not from the topic branch (they are from main branch) and that the debug statements display that it is not run in nop mode. Any changes are enforced from main branch even though it's evaluation intended.

It's as if it doesn't recognize that it should be run in dry-run (nop) mode and picks up the topic branch name.

What is the expected behavior

That when run with event trigger is pull_request that the settings evaluated will be from the topic branch (not main branch) and that the changes on topic branch ARE NOT enforced, just gets output on the PR.

Error output, if available

The log from full-sync.js when evaluating a pull request with LOG_LEVEL: debug displays that

a) The GET statement doesn't invoke the GitHub api for topic branch, but just main branch. I would expect that it tried to look the file from ?ref=topic-branch or something like that

DEBUG (github): GitHub request: GET https://api.github.com/repos/OurOrg/our-repo/contents/safe-settings%2Frepos%test-repo.yml - 200

b) The output from probat displays it's not run in nop:

DEBUG (probot): Not run in nop

Context

Running on GitHub Enterprise. Running safe-settings via GitHub Action. Run with pull_request trigger.

on:
  # PR - Pull request trigger
  pull_request:

Run with settings mentioned in example file. Almost as example. The admin repo has a custom name.

    SAFE_SETTINGS_VERSION: 2.1.15-rc.1

...

      - run: npm run full-sync
        working-directory: ${{env.SAFE_SETTINGS_CODE_DIR}}
        env:
          # Configuration files placed in safe-settings-folder in the ADMIN_REPO
          ADMIN_REPO: our-admin-repo
          CONFIG_PATH: safe-settings
          SETTINGS_PATH: ${{github.workspace}}/safe-settings/settings.yml
          DEPLOYMENT_CONFIG_FILE: ${{github.workspace}}/safe-settings/deployment-settings.yml

          # GitHub App settings
          GH_ORG: ${{vars.SAFE_SETTINGS_GH_ORG}}
          APP_ID: ${{vars.SAFE_SETTINGS_APP_ID}}
          PRIVATE_KEY: ${{secrets.SAFE_SETTINGS_PRIVATE_KEY}}
          GITHUB_CLIENT_ID: ${{vars.SAFE_SETTINGS_GITHUB_CLIENT_ID}}
          GITHUB_CLIENT_SECRET: ${{secrets.SAFE_SETTINGS_GITHUB_CLIENT_SECRET}}
          
          # Logging
          LOG_LEVEL: debug # info, trace, debug
@sumokadet sumokadet added the bug Something isn't working label Jan 10, 2025
@sumokadet
Copy link
Author

I can't share own run since it's in a private organization, but it's identical to what we see here (PR evaluation on branch), 2.1.14:

@PendaGTP
Copy link
Contributor

PendaGTP commented Jan 10, 2025

@sumokadet

Regarding the issue where safe-settings doesn't execute in nop (dry-run) mode (when running full-sync), you can track the progress through these links:

@PendaGTP
Copy link
Contributor

PendaGTP commented Jan 10, 2025

@decyjphr - Regarding the issue with the full-sync script always evaluating settings from the default branch:

I'd be happy to contribute to fixing this. We can we start by creating a dedicated issue to discuss the implementation details, since we currently can't retrieve the context in the same way as with event handlers.
My initial proposal would be to add a new environment variable called FULL_SYNC_GIT_REF (defaulting to the default branch). This could be easily configured in CI environments.

@sumokadet - Would adding an environment variable to specify which ref to use for settings meet your needs?

Note: This change would also require addressing the nop mode in full-sync (related to #733).

Please let me know your thoughts on this approach.

P.S. @decyjphr - I realize I might be tagging you too frequently. Please let me know if this is bothersome - I'm still learning how best to collaborate in open source and want to be respectful of everyone's notifications.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants