Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/add_bugs_to_project.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Add bugs to project board

on:
issues:
types:
- opened
- labeled

jobs:
add-to-project:
name: Add bug to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v1.0.2
with:
project-url: https://github.com/orgs/IQSS/projects/34
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
labeled: "Type: Bug"
Comment on lines +11 to +18

Check warning

Code 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: {}

Copilot Autofix

AI 2 months ago

To fix the problem, add an explicit permissions block that restricts the default GITHUB_TOKEN to the minimal required scope. Since this workflow’s only step uses a custom PAT (secrets.ADD_TO_PROJECT_PAT) and does not rely on GITHUB_TOKEN, it is safe and preferable to set permissions: contents: read (or even permissions: {}) to minimize privileges. Using contents: read aligns with GitHub’s recommended minimal baseline and avoids surprises for tools expecting at least read access.

The best fix with minimal functional impact is to add a workflow‑level permissions block near the top of .github/workflows/add_bugs_to_project.yml, after the name: field and before on:. This will apply to all jobs in the workflow (there is only add-to-project), and the job definition itself does not need to change. No imports or additional methods are required, as this is purely a YAML configuration change.

Concretely:

  • Edit .github/workflows/add_bugs_to_project.yml.
  • Insert:
permissions:
  contents: read

between line 2 (the blank line after name) and line 3 (on:). This keeps existing behavior intact and satisfies the CodeQL requirement for explicit permissions.

Suggested changeset 1
.github/workflows/add_bugs_to_project.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/add_bugs_to_project.yml b/.github/workflows/add_bugs_to_project.yml
--- a/.github/workflows/add_bugs_to_project.yml
+++ b/.github/workflows/add_bugs_to_project.yml
@@ -1,5 +1,8 @@
 name: Add bugs to project board
 
+permissions:
+  contents: read
+
 on:
   issues:
     types:
EOF
@@ -1,5 +1,8 @@
name: Add bugs to project board

permissions:
contents: read

on:
issues:
types:
Copilot is powered by AI and may make mistakes. Always verify output.
4 changes: 2 additions & 2 deletions .github/workflows/container_maintenance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,9 @@ jobs:
with:
platforms: ${{ env.PLATFORMS }}
- name: Setup Trivy binary for vulnerability scanning
uses: aquasecurity/setup-trivy@v0.2.5
uses: aquasecurity/setup-trivy@v0.2.6
with:
version: v0.63.0
version: v0.69.3

# Execute matrix build for the discovered branches
- name: Execute build matrix script
Expand Down
53 changes: 53 additions & 0 deletions doc/release-notes/6.10.1-release-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Dataverse 6.10.1

This is a bug fix release for Dataverse 6.10 that fixes download bug #12251 that was fixed in pull request #12252. The bug caused single-file downloads (as opposed to multi-file zip download) to silently fail from the web interface (the API was unaffected).

## Complete List of Changes

For the complete list of code changes in this release, see the [6.10.1 milestone](https://github.com/IQSS/dataverse/issues?q=milestone%3A6.10.1+is%3Aclosed) in GitHub.

## Getting Help

For help with upgrading, installing, or general questions please see [getting help](https://guides.dataverse.org/en/latest/installation/intro.html#getting-help) in the Installation Guide.

## Installation

If this is a new installation, please follow our [Installation Guide](https://guides.dataverse.org/en/latest/installation/). Please don't be shy about [asking for help](https://guides.dataverse.org/en/latest/installation/intro.html#getting-help) if you need it!

Once you are in production, we would be delighted to update our [map of Dataverse installations around the world](https://dataverse.org/installations) to include yours! Please [create an issue](https://github.com/IQSS/dataverse-installations/issues) or email us at support@dataverse.org to join the club!

You are also very welcome to join the [Global Dataverse Community Consortium](https://www.gdcc.io/) (GDCC).

## Upgrade Instructions

Upgrading requires a maintenance window and downtime. Please plan accordingly, create backups of your database, etc.

Note: These instructions assume that you are upgrading from the immediate previous version. That is to say, you've already upgraded through all the 6.x releases and are now running Dataverse 6.10. See [tags on GitHub](https://github.com/IQSS/dataverse/tags) for a list of versions. If you are running an earlier version, the only supported way to upgrade is to progress through the upgrades to all the releases in between before attempting the upgrade to this version.

If you are running Payara as a non-root user (and you should be!), **remember not to execute the commands below as root**. By default, Payara runs as the `dataverse` user. In the commands below, we use sudo to run the commands as a non-root user.

Also, we assume that Payara is installed in `/usr/local/payara7`. If not, adjust as needed.

1. Undeploy Dataverse, if deployed, using the unprivileged service account ("dataverse", by default).

`sudo -u dataverse /usr/local/payara7/bin/asadmin list-applications`

`sudo -u dataverse /usr/local/payara7/bin/asadmin undeploy dataverse-6.10`

1. Deploy the Dataverse 6.10.1 war file.

`wget https://github.com/IQSS/dataverse/releases/download/v6.10.1/dataverse-6.10.1.war`

`sudo -u dataverse /usr/local/payara7/bin/asadmin deploy dataverse-6.10.1.war`

1. Check that you get a version number from Dataverse.

This is just a sanity check that Dataverse has been deployed properly.

`curl http://localhost:8080/api/info/version`

1. For installations with internationalization or text customizations:

Please remember to update translations via [Dataverse language packs](https://github.com/GlobalDataverseCommunityConsortium/dataverse-language-packs).

If you have text customizations you can get the latest English files from <https://github.com/IQSS/dataverse/tree/v6.10/src/main/java/propertyFiles>.
2 changes: 1 addition & 1 deletion doc/sphinx-guides/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
# built documents.
#
# The short X.Y version.
version = '6.10'
version = '6.10.1'
# The full version, including alpha/beta/rc tags.
release = version

Expand Down
1 change: 1 addition & 0 deletions doc/sphinx-guides/source/versions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ This list provides a way to refer to the documentation for previous and future v

- pre-release `HTML (not final!) <http://preview.guides.gdcc.io/en/develop/>`__ and `PDF (experimental!) <http://preview.guides.gdcc.io/_/downloads/en/develop/pdf/>`__ built from the :doc:`develop </developers/version-control>` branch :doc:`(how to contribute!) </contributor/documentation>`
- |version|
- `6.10 </en/6.10/>`__
- `6.9 </en/6.9/>`__
- `6.8 </en/6.8/>`__
- `6.7.1 </en/6.7.1/>`__
Expand Down
2 changes: 1 addition & 1 deletion modules/dataverse-parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@

<properties>
<!-- This is a special Maven property name, do not change! -->
<revision>6.10</revision>
<revision>6.10.1</revision>

<target.java.version>21</target.java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down
14 changes: 7 additions & 7 deletions src/main/webapp/file-download-button-fragment.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
styleClass="btn-download"
process="@this"
disabled="#{(fileMetadata.dataFile.ingestInProgress or lockedFromDownload) ? 'disabled' : ''}"
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'GlobusTransfer')}">
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'GlobusTransfer', null)}">
<!-- non-tabular data file: -->
<!-- no guest book/terms of use/etc. - straight to the download API url: -->
<span class="globus-btn ui-icon" title="#{bundle['file.globus.transfer']}"/> #{bundle['file.globus.of']} #{fileMetadata.dataFile.friendlyType == 'Unknown' ? bundle['file.download.filetype.unknown'] : fileMetadata.dataFile.friendlyType}
Expand Down Expand Up @@ -118,7 +118,7 @@
styleClass="btn-download"
process="@this"
disabled="#{(fileMetadata.dataFile.ingestInProgress or lockedFromDownload) ? 'disabled' : ''}"
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'Download')}">
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'Download', null)}">
<!-- non-tabular data file: -->
<!-- no guest book/terms of use/etc. - straight to the download API url: -->
#{fileMetadata.dataFile.friendlyType == 'Unknown' ? bundle['file.download.filetype.unknown'] : fileMetadata.dataFile.friendlyType}
Expand All @@ -142,7 +142,7 @@
<li>
<p:commandLink styleClass="highlightBold btn-download" rendered="#{!(guestbookAndTermsPopupRequired)}"
process="@this"
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'bundle')}">
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'bundle', null)}">
#{bundle['file.downloadBtn.format.all']}
</p:commandLink>
<p:commandLink styleClass="highlightBold btn-download" rendered="#{guestbookAndTermsPopupRequired}"
Expand All @@ -160,7 +160,7 @@
<p:commandLink styleClass="btn-download" rendered="#{!guestbookAndTermsPopupRequired and !(fileMetadata.dataFile.originalFormatLabel == 'UNKNOWN')}"
process="@this"
disabled="#{(fileMetadata.dataFile.ingestInProgress or lockedFromDownload) ? 'disabled' : ''}"
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'original')}">
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'original', null)}">
<h:outputFormat value="#{bundle['file.downloadBtn.format.original']}">
<f:param value="#{fileMetadata.dataFile.originalFormatLabel}"/>
</h:outputFormat>
Expand All @@ -182,7 +182,7 @@
<p:commandLink styleClass="btn-download" rendered="#{!guestbookAndTermsPopupRequired}"
process="@this"
disabled="#{(fileMetadata.dataFile.ingestInProgress or lockedFromDownload) ? 'disabled' : ''}"
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'tab')}">
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'tab', null)}">
#{bundle['file.downloadBtn.format.tab']}
</p:commandLink>
<p:commandLink styleClass="btn-download" rendered="#{guestbookAndTermsPopupRequired}"
Expand All @@ -200,7 +200,7 @@
<p:commandLink styleClass="btn-download" rendered="#{!guestbookAndTermsPopupRequired}"
process="@this"
disabled="#{(fileMetadata.dataFile.ingestInProgress or lockedFromDownload) ? 'disabled' : ''}"
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'RData')}">
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'RData', null)}">
#{bundle['file.downloadBtn.format.rdata']}
</p:commandLink>
<p:commandLink styleClass="btn-download" rendered="#{guestbookAndTermsPopupRequired}"
Expand Down Expand Up @@ -228,7 +228,7 @@
<p:commandLink styleClass="btn-download" rendered="#{!guestbookAndTermsPopupRequired}"
process="@this"
disabled="#{(fileMetadata.dataFile.ingestInProgress or lockedFromDownload) ? 'disabled' : ''}"
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'var')}">
actionListener="#{fileDownloadService.writeGuestbookAndStartFileDownload(guestbookResponse, fileMetadata, 'var', null)}">
#{bundle['file.downloadBtn.format.var']}
</p:commandLink>
<p:commandLink styleClass="btn-download" rendered="#{guestbookAndTermsPopupRequired}"
Expand Down
Loading