-
Notifications
You must be signed in to change notification settings - Fork 0
🔄 Synced file(s) with ottrproject/OTTR_Template_Website #48
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
| Original file line number | Diff line number | Diff line change | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,117 @@ | |||||||||||||||||||||||
| name: Periodic URL Check | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| on: | |||||||||||||||||||||||
| workflow_dispatch: | |||||||||||||||||||||||
| schedule: | |||||||||||||||||||||||
| - cron: '0 0 1 * *' | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| jobs: | |||||||||||||||||||||||
| set-up: | |||||||||||||||||||||||
| name: Load user automation choices | |||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||
| steps: | |||||||||||||||||||||||
| - name: Checkout | |||||||||||||||||||||||
| uses: actions/checkout@v3 | |||||||||||||||||||||||
| with: | |||||||||||||||||||||||
| fetch-depth: 0 | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| # Use the yaml-env-action action. | |||||||||||||||||||||||
| - name: Load environment from YAML | |||||||||||||||||||||||
| uses: doughepi/yaml-env-action@v1.0.0 | |||||||||||||||||||||||
| with: | |||||||||||||||||||||||
| files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence. | |||||||||||||||||||||||
| outputs: | |||||||||||||||||||||||
| toggle_url_check_periodically: "${{ env.URL_CHECK_PERIODICALLY }}" | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| url-check: | |||||||||||||||||||||||
| name: Check URLs | |||||||||||||||||||||||
| needs: set-up | |||||||||||||||||||||||
| if: ${{needs.set-up.outputs.toggle_url_check_periodically == 'true'}} | |||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||
| container: | |||||||||||||||||||||||
| image: jhudsl/base_ottr:main | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| steps: | |||||||||||||||||||||||
| - name: Checkout | |||||||||||||||||||||||
| uses: actions/checkout@v3 | |||||||||||||||||||||||
| with: | |||||||||||||||||||||||
| fetch-depth: 0 | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| # Delete the branch if this has been run before | |||||||||||||||||||||||
| - name: Delete branch locally and remotely | |||||||||||||||||||||||
| run: git push origin --delete preview-spell-error || echo "No branch to delete" | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| # Make the branch fresh | |||||||||||||||||||||||
| - name: Make the branch fresh | |||||||||||||||||||||||
| run: | | |||||||||||||||||||||||
| git config --global --add safe.directory $GITHUB_WORKSPACE | |||||||||||||||||||||||
| git config --global user.name 'github-actions[bot]' | |||||||||||||||||||||||
| git config --global user.email 'github-actions[bot]@users.noreply.github.com' | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| echo branch doesnt exist | |||||||||||||||||||||||
| git checkout -b preview-spell-error || echo branch exists | |||||||||||||||||||||||
| git push --set-upstream origin preview-spell-error || echo echo branch exists remotely | |||||||||||||||||||||||
| shell: bash | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| - name: Run the check | |||||||||||||||||||||||
| uses: ottrproject/ottr-reports@main | |||||||||||||||||||||||
| id: check_results | |||||||||||||||||||||||
| continue-on-error: true | |||||||||||||||||||||||
| with: | |||||||||||||||||||||||
| check_type: urls | |||||||||||||||||||||||
| error_min: 1 | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| - name: Declare file path and time | |||||||||||||||||||||||
| id: check-report | |||||||||||||||||||||||
| run: | | |||||||||||||||||||||||
| error_num=$(cat check_reports/url_checks.tsv | wc -l) | |||||||||||||||||||||||
| error_num="$((error_num-1))" | |||||||||||||||||||||||
| echo "error_num=$error_num" >> $GITHUB_OUTPUT | |||||||||||||||||||||||
| echo "error_url=https://github.com/${GITHUB_REPOSITORY}/blob/preview-spell-error/check_reports/url_checks.tsv" >> $GITHUB_OUTPUT | |||||||||||||||||||||||
| shell: bash | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| - name: Stop if failure | |||||||||||||||||||||||
| if: steps.check_results.outcome == 'failure' | |||||||||||||||||||||||
| run: exit 1 | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| - name: Print out error variables | |||||||||||||||||||||||
| run: | | |||||||||||||||||||||||
| echo ${{ steps.check-report.outputs.error_url }} | |||||||||||||||||||||||
| echo ${{ steps.check-report.outputs.error_num }} | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| # Commit file | |||||||||||||||||||||||
| - name: Commit spell check file | |||||||||||||||||||||||
| if: ${{ steps.check-report.outputs.error_num >= 1 }} | |||||||||||||||||||||||
| env: | |||||||||||||||||||||||
| GH_PAT: ${{ secrets.GH_PAT }} | |||||||||||||||||||||||
| run: | | |||||||||||||||||||||||
| git add --force check_reports/url_checks.tsv | |||||||||||||||||||||||
| git commit -m 'Add spell check file' || echo "No changes to commit" | |||||||||||||||||||||||
| git push --set-upstream origin preview-spell-error || echo echo branch exists remotely | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| - name: Find issues | |||||||||||||||||||||||
| id: find-issue | |||||||||||||||||||||||
| env: | |||||||||||||||||||||||
| GH_PAT: ${{ secrets.GH_PAT }} | |||||||||||||||||||||||
| run: | | |||||||||||||||||||||||
| echo "$GITHUB_REPOSITORY" | |||||||||||||||||||||||
| curl -o find_issue.R https://raw.githubusercontent.com/ottrproject/ottr-reports/main/scripts/find_issue.R | |||||||||||||||||||||||
| issue_exists=$(Rscript --vanilla find_issue.R --repo $GITHUB_REPOSITORY --git_pat $GH_PAT) | |||||||||||||||||||||||
| echo URL issue exists: $issue_exists | |||||||||||||||||||||||
| echo "issue_existence=$issue_exists" >> $GITHUB_OUTPUT | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| - name: If too many URL errors, then make an issue | |||||||||||||||||||||||
| if: ${{ steps.check-report.outputs.error_num >= 1 && steps.find-issue.outputs.issue_existence == 0}} | |||||||||||||||||||||||
| uses: JasonEtco/create-an-issue@v2 | |||||||||||||||||||||||
| with: | |||||||||||||||||||||||
| filename: .github/ISSUE_TEMPLATE/url-error.md | |||||||||||||||||||||||
| env: | |||||||||||||||||||||||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |||||||||||||||||||||||
| FILE_URL: ${{ steps.check-report.outputs.error_url }} | |||||||||||||||||||||||
| ERROR_NUM: ${{ steps.check-report.outputs.error_num }} | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||
| - name: If no URL errors than delete the branch we made | |||||||||||||||||||||||
| if: ${{ steps.check-report.outputs.error_num < 1 }} | |||||||||||||||||||||||
| run: | | |||||||||||||||||||||||
| git config --system --add safe.directory "$GITHUB_WORKSPACE" | |||||||||||||||||||||||
| git push origin --delete preview-spell-error || echo "No branch to delete" | |||||||||||||||||||||||
|
Comment on lines
+27
to
+117
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 7 months ago To fix the issue, we need to explicitly define the permissions required for the workflow. Since the workflow performs actions like checking out the repository, committing files, pushing branches, and creating issues, we should grant the minimal necessary permissions. Specifically:
The
Suggested changeset
1
.github/workflows/check-url.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Refresh and try again.
|
|||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,90 @@ | |||||||||||||||||
|
|
|||||||||||||||||
| # Candace Savonen Apr 2022 | |||||||||||||||||
|
|
|||||||||||||||||
| name: Build Docker Image | |||||||||||||||||
|
|
|||||||||||||||||
| on: | |||||||||||||||||
| workflow_dispatch: | |||||||||||||||||
| inputs: | |||||||||||||||||
| directory: | |||||||||||||||||
| required: true | |||||||||||||||||
| type: string | |||||||||||||||||
| tag: | |||||||||||||||||
| required: true | |||||||||||||||||
| type: string | |||||||||||||||||
| dockerhubpush: | |||||||||||||||||
| description: 'Push to Dockerhub?' | |||||||||||||||||
| required: false | |||||||||||||||||
| default: 'false' | |||||||||||||||||
| type: string | |||||||||||||||||
| secrets: | |||||||||||||||||
| GH_PAT: | |||||||||||||||||
| required: true | |||||||||||||||||
| DOCKERHUB_USERNAME: | |||||||||||||||||
| required: false | |||||||||||||||||
| DOCKERHUB_TOKEN: | |||||||||||||||||
| required: false | |||||||||||||||||
|
|
|||||||||||||||||
| jobs: | |||||||||||||||||
|
|
|||||||||||||||||
| build-docker: | |||||||||||||||||
| name: Build Docker image | |||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||
|
|
|||||||||||||||||
| steps: | |||||||||||||||||
| - name: checkout repo | |||||||||||||||||
| uses: actions/checkout@v4 | |||||||||||||||||
|
|
|||||||||||||||||
| - name: Verify Dockerfiles changed? | |||||||||||||||||
| uses: tj-actions/verify-changed-files@v17 | |||||||||||||||||
| id: verify-changed-files | |||||||||||||||||
| with: | |||||||||||||||||
| files: | | |||||||||||||||||
| ${{ inputs.directory }}/Dockerfile | |||||||||||||||||
| ${{ inputs.directory }}/github_package_list.tsv | |||||||||||||||||
|
|
|||||||||||||||||
| - name: Login as jhudsl-robot | |||||||||||||||||
| run: | | |||||||||||||||||
| git config --local user.email "itcrtrainingnetwork@gmail.com" | |||||||||||||||||
| git config --local user.name "jhudsl-robot" | |||||||||||||||||
|
|
|||||||||||||||||
| # Set up Docker build | |||||||||||||||||
| - name: Set up Docker Buildx | |||||||||||||||||
| uses: docker/setup-buildx-action@v1 | |||||||||||||||||
|
|
|||||||||||||||||
| # Setup layer cache | |||||||||||||||||
| - name: Cache Docker layers | |||||||||||||||||
| uses: actions/cache@v2 | |||||||||||||||||
| with: | |||||||||||||||||
| path: /tmp/.buildx-cache | |||||||||||||||||
| key: ${{ runner.os }}-buildx-${{ github.sha }} | |||||||||||||||||
| restore-keys: | | |||||||||||||||||
| ${{ runner.os }}-buildx- | |||||||||||||||||
|
|
|||||||||||||||||
| - name: Set up Docker Build | |||||||||||||||||
| uses: docker/setup-buildx-action@v1 | |||||||||||||||||
|
|
|||||||||||||||||
| - name: Get token | |||||||||||||||||
| run: echo ${{ secrets.GH_PAT }} > ${{ inputs.directory }}/git_token.txt | |||||||||||||||||
|
|
|||||||||||||||||
| - name: Build Docker image | |||||||||||||||||
| uses: docker/build-push-action@v2 | |||||||||||||||||
| with: | |||||||||||||||||
| push: false | |||||||||||||||||
| load: true | |||||||||||||||||
| context: ${{ inputs.directory }} | |||||||||||||||||
| file: ${{ inputs.directory }}/Dockerfile | |||||||||||||||||
| tags: ${{ inputs.tag }} | |||||||||||||||||
|
|
|||||||||||||||||
| # Login to Dockerhub | |||||||||||||||||
| - name: Login to DockerHub | |||||||||||||||||
| if: ${{ inputs.dockerhubpush != 'false' }} | |||||||||||||||||
| uses: docker/login-action@v1 | |||||||||||||||||
| with: | |||||||||||||||||
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |||||||||||||||||
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |||||||||||||||||
|
|
|||||||||||||||||
| # Push the Docker image if set to true from a manual trigger | |||||||||||||||||
| - name: Push Docker image if manual trigger set to true | |||||||||||||||||
| if: ${{ inputs.dockerhubpush != 'false' }} | |||||||||||||||||
| run: docker push ${{ inputs.tag }} | |||||||||||||||||
|
Comment on lines
+31
to
+90
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 7 months ago To fix the issue, we need to add a
Suggested changeset
1
.github/workflows/docker-test.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Refresh and try again.
|
|||||||||||||||||
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Copilot Autofix
AI 7 months ago
To fix the issue, we will add a
permissionsblock at the root level of the workflow to define the minimum required permissions for theGITHUB_TOKEN. Based on the operations in the workflow, the following permissions are needed:contents: writefor committing and pushing changes to the repository.pull-requests: writeif the workflow interacts with pull requests (e.g., adding labels or comments).actions: readfor accessing workflow artifacts or listing workflows.We will add these permissions to the workflow file, ensuring that no unnecessary permissions are granted.