Skip to content
play

GitHub Action

Upload File to Sharepoint

v1.2.1 Latest version

Upload File to Sharepoint

play

Upload File to Sharepoint

Upload one or more files in a directory to Sharepoint site using client ID

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Upload File to Sharepoint

uses: cringdahl/[email protected]

Learn more about this action in cringdahl/sharepoint-file-upload-action

Choose a version

Sharepoint File Upload Github Action

Uploads one or more files (via glob) to Sharepoint site.

Variables

The following environment variables & secrets must be defined.

If your full Sharepoint upload path is https://example.sharepoint.com/sites/mygreatsite/Shared%20Documents/reports/detailed, the following would be defined:

  • host_name
    • 'example.sharepoint.com'
  • site_name
    • 'mygreatsite'
  • upload_path
    • 'reports/detailed'

The following will be provided to you by your Sharepoint administrator when you ask for a client ID. A reminder: put secrets in Settings/Security/Secrets and variables/Actions

  • tenant_id
  • client_id
  • client_secret

You will also need to provide the file or files being sent:

  • file_path
    • A glob; something like file.txt or *.md

The following are optional and only needed to access sharepoint intances in different clouds (ie Soverign Clouds) The defaults provided will work for all other cases

  • login_endpoint
    • A Hostname; something like login.microsoftonline.us
  • graph_endpoint
    • A Hostname; something like graph.microsoft.us

Example action.yml

name: example-file-upload
on: workflow_dispatch
jobs:
  get_report:
    runs-on: ubuntu-latest
    steps:
      - name: Create Test File
        run: touch /tmp/foo.txt
      - name: Send to Sharepoint
        uses: cringdahl/[email protected]
        with:
          file_path: "*.txt"
          host_name: 'your.sharepoint.com'
          site_name: 'some_site'
          upload_path: 'fake_files'
          tenant_id: ${{ secrets.SHAREPOINT_TENANT_ID }}
          client_id: ${{ secrets.SHAREPOINT_CLIENT_ID }}
          client_secret: ${{ secrets.SHAREPOINT_CLIENT_SECRET }}