Copy files and artifacts via SSH using a binary, docker or Drone CI.

drone-scp

GoDoc Build Status codecov Go Report Card Docker Pulls micro badger

Copy files and artifacts via SSH using a binary, docker or Drone CI.

Feature

  • Support routines.
  • Support wildcard pattern on source list.
  • Support send files to multiple host.
  • Support send files to multiple target folder on host.
  • Support load ssh key from absolute path or raw body.
  • Support SSH ProxyCommand.
+--------+       +----------+      +-----------+
| Laptop | <-->  | Jumphost | <--> | FooServer |
+--------+       +----------+      +-----------+

                   OR

+--------+       +----------+      +-----------+
| Laptop | <-->  | Firewall | <--> | FooServer |
+--------+       +----------+      +-----------+
192.168.1.5       121.1.2.3         10.10.29.68

Breaking changes

v1.5.0: change command timeout flag to Duration. See the following setting:

  - name: scp files
    image: appleboy/drone-scp
    settings:
      host:
        - example1.com
        - example2.com
      username: ubuntu
      password:
        from_secret: ssh_password
      port: 22
-     command_timeout: 120
+     command_timeout: 2m
      target: /home/deploy/web
      source:
        - release/*.tar.gz

Build or Download a binary

The pre-compiled binaries can be downloaded from release page. Support the following OS type.

  • Windows amd64/386
  • Linux arm/amd64/386
  • Darwin amd64/386

With Go installed

export GO111MODULE=on
go get -u -v github.com/appleboy/drone-scp

or build the binary with the following command:

export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on

go test -cover ./...

go build -v -a -tags netgo -o release/linux/amd64/drone-scp .

Docker

Build the docker image with the following commands:

make docker

Usage

There are three ways to send notification.

Usage from binary

Using public key

drone-scp --host example.com \
  --port 22 \
  --username appleboy \
  --key-path "${HOME}/.ssh/id_rsa" \
  --target /home/appleboy/test \
  --source your_local_folder_path

Using password

drone-scp --host example.com \
  --port 22 \
  --username appleboy \
+ --password xxxxxxx \
  --target /home/appleboy/test \
  --source your_local_folder_path

Using ssh-agent

Start your local ssh agent:

eval `ssh-agent -s`

Import your local public key ~/.ssh/id_rsa

ssh-add

You don't need to add --password or --key-path arguments.

drone-scp --host example.com \
  --port 22 \
  --username appleboy \
  --target /home/appleboy/test \
  --source your_local_folder_path

Send multiple source or target folder and hosts

drone-scp --host example1.com \
+ --host example2.com \
  --port 22 \
  --username appleboy \
  --password  xxxxxxx
  --target /home/appleboy/test1 \
+ --target /home/appleboy/test2 \
  --source your_local_folder_path_1
+ --source your_local_folder_path_2

Usage from docker

Using public key

docker run --rm \
  -e SCP_HOST=example.com \
  -e SCP_USERNAME=xxxxxxx \
  -e SCP_PORT=22 \
  -e SCP_KEY_PATH="${HOME}/.ssh/id_rsa"
  -e SCP_SOURCE=SOURCE_FILE_LIST \
  -e SCP_TARGET=TARGET_FOLDER_PATH \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

Using password

docker run --rm \
  -e SCP_HOST=example.com \
  -e SCP_USERNAME=xxxxxxx \
  -e SCP_PORT=22 \
+ -e SCP_PASSWORD="xxxxxxx"
  -e SCP_SOURCE=SOURCE_FILE_LIST \
  -e SCP_TARGET=TARGET_FOLDER_PATH \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

Using ssh-agent, start your local ssh agent:

eval `ssh-agent -s`

Import your local public key ~/.ssh/id_rsa

ssh-add

You don't need to add SCP_PASSWORD or SCP_KEY_PATH arguments.

docker run --rm \
  -e SCP_HOST=example.com \
  -e SCP_USERNAME=xxxxxxx \
  -e SCP_PORT=22 \
  -e SCP_SOURCE=SOURCE_FILE_LIST \
  -e SCP_TARGET=TARGET_FOLDER_PATH \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

Send multiple source or target folder and hosts

docker run --rm \
  -e SCP_HOST=example1.com,example2.com \
  -e SCP_USERNAME=xxxxxxx \
  -e SCP_PASSWORD=xxxxxxx \
  -e SCP_PORT=22 \
  -e SCP_SOURCE=SOURCE_FILE_LIST_1,SOURCE_FILE_LIST_2 \
  -e SCP_TARGET=TARGET_FOLDER_PATH_1,TARGET_FOLDER_PATH_2 \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

Usage from drone ci

Execute from the working directory:

docker run --rm \
  -e PLUGIN_HOST=example.com \
  -e PLUGIN_USERNAME=xxxxxxx \
  -e PLUGIN_PASSWORD=xxxxxxx \
  -e PLUGIN_PORT=xxxxxxx \
  -e PLUGIN_SOURCE=SOURCE_FILE_LIST \
  -e PLUGIN_TARGET=TARGET_FOLDER_PATH \
  -e PLUGIN_RM=false \
  -e PLUGIN_DEBUG=true \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

You can get more information about how to use scp in drone.

Testing

Test the package with the following command:

make test
Owner
Bo-Yi Wu
I really believe committing every day on an open source project is the best practice.
Bo-Yi Wu
Comments
  • how to use with private ssh key?

    how to use with private ssh key?

    I'm trying this setup:

      deploy:
        image: appleboy/drone-scp
        host: example.com
        username: root
        port: 922
        key: $scp_key
        secrets:
          - source: DEPLOY_KEY
            target: scp_key
        source:
          - public
        target:
          - /srv/public
        when:
          branch: prod
          status: success
    

    but still habe some errors like: ERROR: Error response from daemon: invalid environment variable:.. etc...

    or drone-scp error: error copy file to dest: example.com, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain

    EDIT: I paste my private key via drone web admin: DEPLOY_KEY + and paste output of cat /.ssh/mykey | tr -d '\n'

    EDIT2: I trying this too:

    deploy:
        image: appleboy/drone-scp
        host: example.com
        username: root
        port: 922
        key: >
          -----BEGIN RSA PRIVATE KEY-----
          MI...
          -----END RSA PRIVATE KEY-----
        source:
          - public
        target:
          - /srv/public
        when:
          branch: prod
          status: success
    

    but get: error copy file to dest: example.com, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain

  • 'drone-scp error:  Process exited with status 1 0s exit code 1 notify 1'

    'drone-scp error: Process exited with status 1 0s exit code 1 notify 1'

    Hey,

    I'm trying to use this plugin but I get:

    2017/02/04 12:29:37 tar all files into /tmp/714504783/SKZYLBfixA.tar
    2017/02/04 12:29:37 myhost.com: scp file to server.
    2017/02/04 12:29:37 myhost.com: create folder /home/builds/artifacts
    Process exited with status 1
    drone-scp error:  Process exited with status 1
    

    I guess it fails to create the folder, any clue?

    Thanks

  • Weird error

    Weird error

    I am trying to download one file via SSH on my server using docker The command looks:

    - go get -u -v github.com/appleboy/drone-scp 
    - ../go/bin/drone-scp --host $IP --port 22 --username root --password $PASSWORD --target / --source ./docker-compose.yml
    

    It has been working well for quite a while but recently it shows an error:

    github.com/appleboy/drone-scp
    --
      | ../go/src/github.com/appleboy/drone-scp/main.go:25:14: cannot use []cli.Author literal (type []cli.Author) as type []*cli.Author in assignment
      | ../go/src/github.com/appleboy/drone-scp/main.go:34:22: cannot use cli.StringSliceFlag literal (type cli.StringSliceFlag) as type cli.Flag in array or slice literal:
      | cli.StringSliceFlag does not implement cli.Flag (Apply method has pointer receiver)
      | ../go/src/github.com/appleboy/drone-scp/main.go:37:10: unknown field 'EnvVar' in struct literal of type cli.StringSliceFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:39:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
      | cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
      | ../go/src/github.com/appleboy/drone-scp/main.go:43:10: unknown field 'EnvVar' in struct literal of type cli.StringFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:45:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
      | cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
      | ../go/src/github.com/appleboy/drone-scp/main.go:48:10: unknown field 'EnvVar' in struct literal of type cli.StringFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:50:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
      | cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
      | ../go/src/github.com/appleboy/drone-scp/main.go:53:10: unknown field 'EnvVar' in struct literal of type cli.StringFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:58:10: unknown field 'EnvVar' in struct literal of type cli.DurationFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:58:10: too many errors
    

    It looks like something is broken on drone-scp side Any ideas?

  • do not include source path in target destination

    do not include source path in target destination

    I have the following configuration

        target: /usr/local/bin/
        source: release/some-binary
    

    It copies release/some-binary to /usr/local/bin/release/some-binary

    If I were using scp, I would expect that it copies release/some-binary to /usr/local/bin/some-binary and does include the source path in the target destination.

  • Templates not evaluating

    Templates not evaluating

    According to DroneCI Docs on Drone-SCP its possible to use templates.

    Nevertheless, those aren't evaluated at all. For example your Plugin Drone-Telegram have those too, and they evaluate just perfectly.

    It'll be great to have them working for parameters like target, username or key.

    Example

    pipeline:
      build:
        image: node:alpine
        commands:
          - npm install
          - npm run build
    
      deploy_scp:
        image: appleboy/drone-scp
        host: deploy.host
        target: /var/www/deploy/{{repo.owner}}/{{repo.name}}
        source: ./public
        rm: true
        username: deploy
        password: deploy
    

    Will create a folder called (literally) /var/www/deploy/{{repo.owner}}/{{repo.name}}.

  • openssh 8.8 break compatibility by default

    openssh 8.8 break compatibility by default

    I recently updated my server, and with it upgraded openssh from 8.7 to 8.8. One of the incompatible changes from that release is disabling RSA signatures using SHA-1 by default 1. There is currently an open bug at https://github.com/golang/go/issues/37278 relating to this, and because drone-scp is making use of this library, it is also affected.

    The error message from drone-scp in such cases is the following:

    drone-scp error:  error copy file to dest: <destination censored>, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
    

    I do not think that there is anything to be done from drone-scp, apart from updating to the latest version once it is fixed upstream. I opened the issue so that others impacted by this change can find it more easily.

  • Doesn't work env in settings block with drone version 1

    Doesn't work env in settings block with drone version 1

    Hi there, I tried to use this block in .drone.yml from official docs http://plugins.drone.io/appleboy/drone-scp/:

    ....
      deploy:
        image: appleboy/drone-scp:1.5-linux-amd64
        settings:
          host: `MY_SERVER`
          username: `MY_USER`
          password: test
          port: 22
          command_timeout: 2m
          target: `FILE`
          source: `FILE`
    ...
    

    I got an error "Error: missing server host "

    after changing the conf to :

    ....
      deploy:
        image: appleboy/drone-scp:1.5-linux-amd64
        host: `MY_SERVER`
        username: `MY_USER`
        password: test
        port: 22
        command_timeout: 2m
        target: `FILE`
        source: `FILE`
    ...
    

    everything started to work fine. it seems the block settings does not work

  • 1.0.0-rc.1 missing ssh config (Host, Username)

    1.0.0-rc.1 missing ssh config (Host, Username)

    when I use drone 1.0.0-rc.1, the yml config is

    - name: scp
      image: appleboy/drone-scp
      host: "xxx.xxx.xxx.xxx"
      port: 22
      target: /path/to
      source: test
      username: drone
      secrets: [ ssh_password ]
    

    then I got the error

    missing ssh config (Host, Username)
    
  •  wildcard pattern of source list copy errors using drone cron

    wildcard pattern of source list copy errors using drone cron

    one pipeline, same buids 1、 test server scp conf

    - name: test
      image: appleboy/drone-scp
      settings:
        host:
          from_secret: test-host
        username:
          from_secret: test-user
        key:
          from_secret: test-ssh
        port:
          from_secret: test-port
        command_timeout: 5m
        target: 
          - /data/www/sane/
        source:
          - ./dist/*
      when:
        status: [success]
        event:
        - push
        branch:
        - test
    

    2、preview server scp conf

    - name: qa
      image: appleboy/drone-scp
      settings:
        host:
          from_secret: preview-host
        username:
          from_secret: preview-user
        key:
          from_secret: preview-ssh
        port:
          from_secret: preview-port
        command_timeout: 5m
        target: 
          - /data/www/sane/
        source:
          - ./dist/*
      when:
        status: [success]
        event:
        - cron
    

    result

    test server image

    preview server image

    crone trigger wrong?

  • Error doesn't trigger build failure (Drone 1.0.0-rc6)

    Error doesn't trigger build failure (Drone 1.0.0-rc6)

    For example, providing an incorrect key doesn't trigger failure of the drone step: image

    We shouldn't be getting a green checkmark here. Does this replicate on another system?

  • drone-scp not working with --key-path

    drone-scp not working with --key-path

    drone-scp --host 34.xxx.xxx.91 --port 22 --username ubuntu --key-path "${HOME}/.ssh/key.pem" --target /home/ubuntu --source deploy.tmpl --timeout 10s`
    2017/11/03 15:09:25 tar all files into /tmp/331781469/VBtvx7d9oB.tar
    2017/11/03 15:09:25 34.227.159.91: scp file to server.
    2017/11/03 15:09:27 34.227.159.91: create folder /home/ubuntu
    drone-scp error:  ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
    ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
    

    But when i do

    ssh-add "${HOME}/.ssh/key.pem"
    drone-scp --host 34.xxx.xxx.91 --port 22 --username ubuntu --target /home/ubuntu --source deploy.tmpl --timeout 10s
    2017/11/03 15:08:25 tar all files into /tmp/249787007/nFrDL398Mw.tar
    2017/11/03 15:08:25 34.227.159.91: scp file to server.
    2017/11/03 15:08:29 34.227.159.91: create folder /home/ubuntu
    2017/11/03 15:08:32 34.227.159.91: untar file nFrDL398Mw.tar
    2017/11/03 15:08:36 34.227.159.91: remove file nFrDL398Mw.tar
    

    It works

  • error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

    error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

    settting

    steps:
      - name: scp files
        image: appleboy/drone-scp
        pull: if-not-exists
        volumes: # 
          - name: file-scp
            path: /app/build
        settings:
          host:
            from_secret: host
          username:
            from_secret: username
          key:
            from_secret: key
          port:
            from_secret: port
          target: /app/shell/share-web
          source: build.sh
          command_timeout: 2m
          script:
            - cd /app/shell
            - chmod +x build.sh
            - sh build.sh
    volumes: 
      - name: file-scp
        host:
          path: /home/centos/app/build
    
    

    console log

    tar all files into /tmp/872159610/tJAPMyIfHx.tar
    scp file to server.
    drone-scp error:  error copy file to dest: ******, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
    
    2022/11/30 07:25:19 error copy file to dest: ******, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
    
  • When the configuration parameter rm is true, an error will be generated

    When the configuration parameter rm is true, an error will be generated

    settings.rm: true #If true : Process exited with status 1 ; If false : ✅ Successfully...

    settings:
        host: ***
        port: 22
        username: root
        password: 
          from_secret: root_password
        strip_components: 1
        overwrite: true
        rm: true #If true : Process exited with status 1
        source: ./dist/*
        target: /target
    

    console logs

    tar all files into /tmp/297369615/ZOqVuExJPx.tar
    scp file to server.
    Remove target folder: ***
    drone-scp error:  Process exited with status 1
    drone-scp rollback: remove all target tmp file
    remove file ZOqVuExJPx.tar
    2022/10/30 20:19:41 Process exited with status 1
    
  • tar: empty archive exit status 1 (Windows remote -> Linux local)

    tar: empty archive exit status 1 (Windows remote -> Linux local)

    Hi,

    I've been trying to make this work with no luck. I've seen on some other issue, that this error usually means the remote path does not exist or does not have access, so I tried with C:\Temp which should work, but the result is the same.

    drone-scp --host 10.253.18.48 --port 1126 --username usr_remote --password x9v5o5pPbHYwSQzo --source C:/Temp --target /tmp

    For the source I've tried different formats for the bar, since Windows is bit special: '//', '/', '', '\'.

    tar: empty archive exit status 1

    Any help would be appreciated.

  • the [overwrite] properties why didn't work?

    the [overwrite] properties why didn't work?

    desc:

    source file list:

    docker-compose.yml
    restart.sh
    stop.sh
    

    I try 2 ways,the problem still alive.

    • first way: i compress them to deploy.tar.gz as a one file ,then configure .drone.yaml,like this the .drone.yaml setting:
    image: appleboy/drone-scp:1.6.4  
    target: /data-test/web/${DRONE_REPO_NAME}
    source:
        ./deploy.tar.gz
    overwrite: false
    

    in target dir,the name is deploy.tar.gz is exists.but everytime overwrited by drone-scp.

    • second way: not compress them like this
    target: /data-test/web/${DRONE_REPO_NAME}
    source:
      - ./deploy/docker-compose/docker-compose.yml
      - ./deploy/docker-compose/restart.sh
      - ./deploy/docker-compose/stop.sh
    strip_components: 3
    overwrite: false
    

    in target dir,3 files is exists,but everytime overwrited by drone-scp to.

    so,is my usage is wrong or other questions?

    think you very much.

  • `error: tar: unknown option -- -`

    `error: tar: unknown option -- -`

    Closing https://github.com/appleboy/scp-action/issues/83 and reopening here, because I believe it's an issue with drone-scp expecting GNU tar on the other end, which isn't always the case (OpenBSD).

    untar file xpkHVyWJzG.tar
    error:  tar: unknown option -- -
    usage: tar {crtux}[014578befHhjLmNOoPpqsvwXZz]
               [blocking-factor | archive | replstr] [-C directory] [-I file]
               [file ...]
           tar {-crtux} [-014578eHhjLmNOoPpqvwXZz] [-b blocking-factor]
               [-C directory] [-f archive] [-I file] [-s replstr] [file ...]
    
    drone-scp error:  Process exited with status 1
    drone-scp rollback: remove all target tmp file
    remove file xpkHVyWJzG.tar
    
  • folder created but

    folder created but "Process exited with status 1"

    When trying to perform pretty basic upload I'm receiving "Process exited with status 1" However folder c:\Application\CDTEST\APK\artifacts is created.

    Config is: deploy: runs-on: ubuntu-latest strategy: matrix: dotnet-version: ['6.0.x' ] project-id: ['CIGitHubTest'] rid: ['win-x64'] server-path: ['c:\Application\CDTEST\APK'] needs: build steps: - name: echoing run: | echo "HI" - uses: actions/download-artifact@v3 with: name: dotnet-results-${{ matrix.project-id }}-${{ matrix.dotnet-version }}-${{ matrix.rid }}-test - name: Display structure of downloaded files run: ls -R - name: ssh Upload uses: appleboy/scp-action@master with: host: ${{ secrets.CI_SERVER_ADDRES }} username: ${{ secrets.CI_GIT_USER }} password: ${{ secrets.CI_GIT_PASS }} port: ${{ secrets.CI_GIT_PORT }} source: release.zip target: ${{ matrix.server-path }}\artifacts

    Action log is: /usr/bin/docker run --name f155468f200c7c9eb485a8744f4c1508862a0_e431e5 --label 6f1554 --workdir /github/workspace --rm -e INPUT_HOST -e INPUT_USERNAME -e INPUT_PASSWORD -e INPUT_PORT -e INPUT_SOURCE -e INPUT_TARGET -e INPUT_TIMEOUT -e INPUT_COMMAND_TIMEOUT -e INPUT_KEY -e INPUT_KEY_PATH -e INPUT_PASSPHRASE -e INPUT_FINGERPRINT -e INPUT_USE_INSECURE_CIPHER -e INPUT_RM -e INPUT_DEBUG -e INPUT_STRIP_COMPONENTS -e INPUT_OVERWRITE -e INPUT_TAR_TMP_PATH -e INPUT_PROXY_HOST -e INPUT_PROXY_PORT -e INPUT_PROXY_USERNAME -e INPUT_PROXY_PASSWORD -e INPUT_PROXY_PASSPHRASE -e INPUT_PROXY_TIMEOUT -e INPUT_PROXY_KEY -e INPUT_PROXY_KEY_PATH -e INPUT_PROXY_FINGERPRINT -e INPUT_PROXY_USE_INSECURE_CIPHER -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_RUN_ATTEMPT -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_REF_NAME -e GITHUB_REF_PROTECTED -e GITHUB_REF_TYPE -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e GITHUB_STEP_SUMMARY -e RUNNER_OS -e RUNNER_ARCH -e RUNNER_NAME -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/ci-test-net/ci-test-net":"/github/workspace" 6f1554:68f200c7c9eb485a8744f4c1508862a0 tar all files into /tmp/884981472/ICnuQaBwiK.tar scp file to server. create folder c:\Application\CDTEST\APK\artifacts drone-scp error: Process exited with status 1 drone-scp rollback: remove all target tmp file remove file ICnuQaBwiK.tar 20***/06/05 20:37:50 Process exited with status 1

Docker for Your ML/DL Models Based on OCI Artifacts
Docker for Your ML/DL Models Based on OCI Artifacts

English | 中文 ORMB is an open-source model registry to manage machine learning model. ORMB helps you manage your Machine Learning/Deep Learning models

Dec 30, 2022
BuildKit - A toolkit for converting source code to build artifacts in an efficient, expressive and repeatable manner
BuildKit - A toolkit for converting source code to build artifacts in an efficient, expressive and repeatable manner

BuildKit BuildKit is a toolkit for converting source code to build artifacts in an efficient, expressive and repeatable manner. Key features: Automati

Feb 19, 2022
Drone plugin to skip pipelines based on changed files

drone-skip-pipeline Drone plugin to skip pipelines based on changed files. Build Build the binary with the following command: export GOOS=linux export

Aug 7, 2022
Web gateway for OCI artifacts
Web gateway for OCI artifacts

Containerbay Web gateway for OCI artifacts Container images gateway browser and indexer Website static server - Reverse Container image browser Contai

Jan 10, 2022
Tool to convert docker-compose files to set of simple docker commands

docker-decompose Tool to convert docker-compose files to set of simple docker commands. Install Use go get to install the latest version of the librar

Apr 12, 2022
Drone plugin to create comment and label in PR to Gitee
Drone plugin to create comment and label in PR to Gitee

drone-plugin-gitee-pulls 中文文档 Drone plugin to create comment and label in PR to

Sep 6, 2022
Go-http-server-docker - Simple sample server using docker and go

go-http-server-docker Simple sample webserver using docker and go.

Jan 8, 2022
Drone plugin for trigger Jenkins jobs.
Drone plugin for trigger Jenkins jobs.

drone-jenkins Drone plugin for trigger Jenkins jobs. Setup the Jenkins Server Setup the Jenkins server using the docker command: $ docker run \ --na

Sep 27, 2022
Woodpecker is a community fork of the Drone CI system.
Woodpecker is a community fork of the Drone CI system.

Woodpecker is a community fork of the Drone CI system.

Jan 5, 2023
Drone conversion for platform values

drocopla A drone.io conversion extension to set host platform as drone pipeline platform. Default drone.io behaviour: If os/arch is not set in .drone.

Dec 1, 2021
This is a SSH CA that allows you to retrieve a signed SSH certificate by authenticating to Duo.

github-duo-ssh-ca Authenticate to GitHub Enterprise in a secure way by requiring users to go through a Duo flow to get a short-lived SSH certificate t

Jan 7, 2022
Integrated ssh-agent for windows. (pageant compatible. openSSH ssh-agent etc ..)
Integrated ssh-agent for windows. (pageant compatible. openSSH ssh-agent etc ..)

OmniSSHAgent About The chaotic windows ssh-agent has been integrated into one program. Chaos Map of SSH-Agent on Windows There are several different c

Dec 19, 2022
A binary to control the Z-Cam line of cameras via API

The Z-Cam flagship line has an API of sorts. This can be used to control the camera--via a StreamDeck, say. This seems like a good enough reason to me

Nov 12, 2022
Binary program to restart unhealthy Docker containers

DeUnhealth Restart your unhealthy containers safely Features Restart unhealthy containers marked with deunhealth.restart.on.unhealthy=true label Recei

Dec 22, 2022
Running Go binary into Docker

This go file make a get into an API, that API provides a JSON with a cat information

Feb 7, 2022
Google Compute Engine (GCE) VM takeover via DHCP flood - gain root access by getting SSH keys added by google_guest_agent

Abstract This is an advisory about an unpatched vulnerability (at time of publishing this repo, 2021-06-25) affecting virtual machines in Google's Com

Nov 9, 2022
Explore Docker registries and manipulate Docker images!
Explore Docker registries and manipulate Docker images!

L/S tags Utility and API to manipulate (analyze, synchronize and aggregate) images across different Docker registries. Example invocation $ lstags alp

Nov 25, 2022
Dotnet-appsettings-env - Convert .NET appsettings.json file to Kubernetes, Docker and Docker-Compose environment variables

dotnet-appsettings-env Convert .NET appsettings.json file to Kubernetes, Docker

Dec 30, 2022
Dotnet-appsettings-env - Convert .NET appsettings.json file to Kubernetes, Docker and Docker-Compose environment variables

dotnet-appsettings-env Convert .NET appsettings.json file to Kubernetes, Docker

Feb 16, 2022