{"id":21313955,"url":"https://github.com/octopusdeploy/login","last_synced_at":"2026-04-02T22:30:01.679Z","repository":{"id":196148296,"uuid":"676341442","full_name":"OctopusDeploy/login","owner":"OctopusDeploy","description":"GitHub action to login to your Octopus Server","archived":false,"fork":false,"pushed_at":"2025-07-05T00:27:53.000Z","size":2080,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-05T01:31:58.287Z","etag":null,"topics":["deployment","github-actions","octopus-deploy","public"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OctopusDeploy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-09T01:50:10.000Z","updated_at":"2025-07-05T00:27:55.000Z","dependencies_parsed_at":"2024-03-08T01:29:09.870Z","dependency_job_id":"7bd59261-38f7-4eba-915e-b2311dd1ef66","html_url":"https://github.com/OctopusDeploy/login","commit_stats":null,"previous_names":["octopusdeploy/login"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/OctopusDeploy/login","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OctopusDeploy%2Flogin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OctopusDeploy%2Flogin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OctopusDeploy%2Flogin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OctopusDeploy%2Flogin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OctopusDeploy","download_url":"https://codeload.github.com/OctopusDeploy/login/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OctopusDeploy%2Flogin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264806660,"owners_count":23666673,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deployment","github-actions","octopus-deploy","public"],"created_at":"2024-11-21T18:09:27.394Z","updated_at":"2026-04-02T22:30:01.674Z","avatar_url":"https://github.com/OctopusDeploy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# login\n\nA GitHub action to login to your [Octopus Deploy](https://octopus.com/) server.\n\nAfter successful login, the GitHub Actions environment will be configured so that credentials do not need to be supplied to later Octopus actions (e.g. [`create-release-action`](https://github.com/OctopusDeploy/create-release-action)) or the [Octopus CLI](https://github.com/OctopusDeploy/cli).\n\nThis action supports two ways of logging in:\n\n## OpenID Connect (OIDC)\n\n\u003e Support for OpenID Connect is currently being rolled out to Octopus Cloud and may not be available in your Octopus version just yet.\n\nUsing OpenID Connect (OIDC) is the recommended way to login to Octopus from GitHub Actions. It allows the granting of short-lived access tokens for a service account in Octopus that can be used during your GitHub Actions workflow run, without needing to provision or store an API key.\n\nFor more information about using OpenID Connect in GitHub Actions see [about security hardening with OpenID Connect](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect).\n\nTo login using OIDC:\n\n-   Create a [service account](https://oc.to/ServiceAccount) in Octopus with the permissions required. Note that OIDC is only support for service accounts, not user accounts.\n-   Configure an OIDC identity for the service account that matches the GitHub Actions subject claim for your repository and workflow. See the [Octopus OIDC documentation](https://oc.to/ServiceAccountOidcIdentities) for more information.\n    -   See [example subject claims](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#example-subject-claims) for more information on the way that subject strings are generated by GitHub Actions.\n-   Copy the `Service Account Id` value from the Octopus service account. This will be a GUID.\n-   Configure your workflow job to have the `id-token: write` permissions. This allows the `OctopusDeploy/login` action to request an ID token from GitHub as part of the OIDC login process.\n-   Add the `OctopusDeploy/login` action to your workflow, specifying the `server` and `service_account_id` inputs.\n\n### Inputs\n\n| Name                 | Description                                                                                        |\n| -------------------- | -------------------------------------------------------------------------------------------------- |\n| `server`             | The URL of your Octopus server. This input is required.                                            |\n| `service_account_id` | The id of the service account you wish to login as. This input is required if using OIDC to login. |\n\n### Outputs\n\n| Name           | Description                                                                                                                                                 |\n| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `server`       | The URL of your Octopus server that has been logged into. The environment variable `OCTOPUS_URL` will also be set with this value.                          |\n| `access_token` | An access token that can be use to authenticate when making API requests. The environment variable `OCTOPUS_ACCESS_TOKEN` will also be set with this value. |\n\n### Example\n\n```yaml\njobs:\n  create_release_in_octopus:\n    runs-on: ubuntu-latest\n    name: Create a release in Octopus\n    permissions:\n      # You might need to add other permissions here like `contents: read` depending on what else your job needs to do\n      id-token: write # This is required to obtain an ID token from GitHub Actions for the job\n    steps:\n      - name: Login to Octopus\n        id: login_to_octopus\n        uses: OctopusDeploy/login@v1\n        with:\n          server: https://my.octopus.app\n          service_account_id: 5be4ac10-2679-4041-a8b0-7b05b445e19e\n\n      - name: Create a release in Octopus\n        id: create_a_release_in_octopus\n        uses: OctopusDeploy/create-release-action@v3\n        with:\n          space: Default\n          project: My Octopus Project\n```\n\n### Support in other GitHub Actions\n\nUsing OIDC with other Octopus supplied GitHub Actions is supported in all `v3` versions of actions that connect to Octopus Server, including:\n\n-   [`OctopusDeploy/await-task-action`](https://github.com/OctopusDeploy/await-task-action)\n-   [`OctopusDeploy/create-release-action`](https://github.com/OctopusDeploy/create-release-action)\n-   [`OctopusDeploy/deploy-release-action`](https://github.com/OctopusDeploy/deploy-release-action)\n-   [`OctopusDeploy/deploy-release-tenanted-action`](https://github.com/OctopusDeploy/deploy-release-tenanted-action)\n-   [`OctopusDeploy/push-build-information-action`](https://github.com/OctopusDeploy/push-build-information-action)\n-   [`OctopusDeploy/push-package-action`](https://github.com/OctopusDeploy/push-package-action)\n-   [`OctopusDeploy/run-runbook-action`](https://github.com/OctopusDeploy/run-runbook-action)\n\nUsing OIDC with the [Octopus CLI](https://github.com/OctopusDeploy/cli) is also supported from version `1.6.0` onwards. The CLI can be installed in a workflow using the [`OctopusDeploy/install-octopus-cli-action`](https://github.com/OctopusDeploy/install-octopus-cli-action)\n\n## API Key\n\nTo login using an API Key:\n\n-   Provision an API key in Octopus. See [How to create an API key](https://octopus.com/docs/octopus-rest-api/how-to-create-an-api-key) for more information. It is recommended that a service account is used instead of a user account.\n-   Add the `OctopusDeploy/login` action to your workflow, specifying the `server` and `api_key` inputs.\n\n### Inputs\n\n| Name      | Description                                                                                                                                                          |\n| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `server`  | The URL of your Octopus server. This input is required.                                                                                                              |\n| `api_key` | The API key you wish to login in with. It is **strongly recommended** to store this as a secret in GitHub Actions. This input is required if using API Key to login. |\n\n### Outputs\n\n| Name      | Description                                                                                                                        |\n| --------- | ---------------------------------------------------------------------------------------------------------------------------------- |\n| `server`  | The URL of your Octopus server that has been logged into. The environment variable `OCTOPUS_URL` will also be set with this value. |\n| `api_key` | The API key that was used to login in with. The environment variable `OCTOPUS_API_KEY` will also be set with this value.           |\n\n### Example\n\n```yaml\njobs:\n  create_release_in_octopus:\n    runs-on: ubuntu-latest\n    name: Create a release in Octopus\n    steps:\n      - name: Login to Octopus\n        id: login_to_octopus\n        uses: OctopusDeploy/login@v1\n        with:\n          server: https://my.octopus.app\n          api_key: ${{ secrets.OCTOPUS_API_KEY }}\n\n      - name: Create a release in Octopus\n        id: create_a_release_in_octopus\n        uses: OctopusDeploy/create-release-action@v3\n        with:\n          space: Default\n          project: My Octopus Project\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctopusdeploy%2Flogin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctopusdeploy%2Flogin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctopusdeploy%2Flogin/lists"}