{"id":23279172,"url":"https://github.com/fourdollars/lp-api-resource","last_synced_at":"2025-07-19T04:33:46.668Z","repository":{"id":178638531,"uuid":"662166417","full_name":"fourdollars/lp-api-resource","owner":"fourdollars","description":"Interact with https://api.launchpad.net/ by using https://github.com/fourdollars/lp-api.","archived":false,"fork":false,"pushed_at":"2024-08-16T02:56:26.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-16T23:44:25.443Z","etag":null,"topics":["concourse","concourse-ci","concourse-ci-resource","concourse-resource","launchpad-api"],"latest_commit_sha":null,"homepage":"https://fourdollars.github.io/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fourdollars.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-04T13:51:24.000Z","updated_at":"2024-08-16T02:56:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"c6bc3a0f-9eaa-406d-a7b6-d129d90a1161","html_url":"https://github.com/fourdollars/lp-api-resource","commit_stats":null,"previous_names":["fourdollars/lp-api-resource"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fourdollars/lp-api-resource","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourdollars%2Flp-api-resource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourdollars%2Flp-api-resource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourdollars%2Flp-api-resource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourdollars%2Flp-api-resource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fourdollars","download_url":"https://codeload.github.com/fourdollars/lp-api-resource/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fourdollars%2Flp-api-resource/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265888943,"owners_count":23844533,"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":["concourse","concourse-ci","concourse-ci-resource","concourse-resource","launchpad-api"],"created_at":"2024-12-19T22:39:49.360Z","updated_at":"2025-07-19T04:33:46.642Z","avatar_url":"https://github.com/fourdollars.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":" [![GitHub: fourdollars/lp-api-resource](https://img.shields.io/badge/GitHub-fourdollars%2Flp%E2%80%90api%E2%80%90resource-darkgreen.svg)](https://github.com/fourdollars/lp-api-resource/) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![Bash](https://img.shields.io/badge/Language-Bash-red.svg)](https://www.gnu.org/software/bash/) ![Docker](https://github.com/fourdollars/lp-api-resource/workflows/Docker/badge.svg) [![Docker Pulls](https://img.shields.io/docker/pulls/fourdollars/lp-api-resource.svg)](https://hub.docker.com/r/fourdollars/lp-api-resource/)\n# lp-api-resource\n[concourse-ci](https://concourse-ci.org/)'s lp-api-resource to interact with https://api.launchpad.net/ by using https://github.com/fourdollars/lp-api.\n\n## Config \n\n### Resource Type\n\n```yaml\nresource_types:\n- name: lp-api\n  type: registry-image\n  source:\n    repository: fourdollars/lp-api-resource\n  defaults:\n    oauth_consumer_key: test\n    oauth_token: csjrGznX4Jq59CB8941N\n    oauth_token_secret: wxDNqsCLxzrmhb2K27FRGjc7hdp3zQk0b4N8cnfRzVHnJfCFlHgkGHxDk5qMPTSdQFSsllS4dwGBD18Q\n```\n\nor\n\n```yaml\nresource_types:\n- name: lp-api\n  type: registry-image\n  source:\n    repository: ghcr.io/fourdollars/lp-api-resource\n  defaults:\n    oauth_consumer_key: test\n    oauth_token: csjrGznX4Jq59CB8941N\n    oauth_token_secret: wxDNqsCLxzrmhb2K27FRGjc7hdp3zQk0b4N8cnfRzVHnJfCFlHgkGHxDk5qMPTSdQFSsllS4dwGBD18Q\n```\n\n### Resource\n\n* oauth_consumer_key: **optional**, choose what you like.\n* oauth_token: **optional**, run `lp-api -key oauth_consumer_key` to get it in ~/.config/lp-api.toml.\n* oauth_token_secret: **optional**, run `lp-api -key oauth_consumer_key` to get it in ~/.config/lp-api.toml.\n\nYou need to export the proper payload content variable to make it work. https://concourse-ci.org/implementing-resource-types.html\n\n### check step\n\n* check: inline script (via source)\n\n```yaml\nresources:\n- name: bug\n  icon: bug-outline\n  type: lp-api\n  source:\n    check: |\n      #!/bin/bash\n      set -exuo pipefail\n      IFS=$'\\n\\t'\n      lp-api get bugs/123 \u003e payload.json\n      digest=$(jq -S -M \u003c payload.json | sha256sum | awk '{print $1}')\n      payload=$(cat \u003c\u003cENDLINE\n        [\n          {\n            \"digest\": \"sha256:${digest}\"\n          }\n        ]\n      ENDLINE\n      )\n      export payload\n```\n\n### get step\n\n* get: inline script (via source or params)\n\n```yaml\nresources:\n- name: bug\n  icon: bug-outline\n  type: lp-api\n  check_every: 10m\n  source:\n    get: |\n      #!/bin/bash\n      set -exuo pipefail\n      IFS=$'\\n\\t'\n      lp-api get bugs/123 \u003e payload.json\n      digest=$(jq -S -M \u003c payload.json | sha256sum | awk '{print $1}')\n      payload=$(cat \u003c\u003cENDLINE\n      {\n        \"version\": {\n          \"digest\": \"sha256:${digest}\"\n        },\n        \"metadata\": [\n          {\n            \"name\": \"Bug #$(jq -r .id \u003c payload.json)\",\n            \"value\": \"$(jq -r .title \u003c payload.json | sed 's/\\\\/\\\\\\\\/g' | sed 's/\"/\\\\\"/g')\"\n          }\n        ]\n      }\n      ENDLINE\n      )\n      export payload\n```\n\n### put step\n\nYou need to provide one of them at least.\n\n* put: inline script (via source or params)\n* script: script file (via params)\n\n```yaml\nresources:\n- name: bug\n  icon: bug-outline\n  type: lp-api\n  check_every: 10m\n  source:\n    put: |\n      #!/bin/bash\n      set -exuo pipefail\n      IFS=$'\\n\\t'\n      lp-api post bugs/123 ws.op=newMessage content=\"New comment\"\n      lp-api get bugs/123 \u003e payload.json\n      digest=$(jq -S -M \u003c payload.json | sha256sum | awk '{print $1}')\n      payload=$(cat \u003c\u003cENDLINE\n      {\n        \"version\": {\n          \"digest\": \"sha256:${digest}\"\n        },\n        \"metadata\": [\n          {\n            \"name\": \"Bug #$(jq -r .id \u003c payload.json)\",\n            \"value\": \"$(jq -r .title \u003c payload.json | sed 's/\\\\/\\\\\\\\/g' | sed 's/\"/\\\\\"/g')\"\n          }\n        ]\n      }\n      ENDLINE\n      )\n      export payload\n```\n\nor\n\n```yaml\njobs:\n- name: check-bug\n  plan:\n  - get: bug\n    timeout: 1m\n  - task: check\n    timeout: 1m\n    config:\n      platform: linux\n      image_resource:\n        type: registry-image\n        source:\n          repository: fourdollars/lp-api-resource\n      outputs:\n        - name: comment\n      run:\n        path: bash\n        args:\n        - -exc\n        - |\n          mkdir -p comment\n          echo \"Another comment\" \u003e comment/comment.log\n  - put: bug\n    timeout: 1m\n    params:\n      put: |\n        #!/bin/bash\n        set -exuo pipefail\n        IFS=$'\\n\\t'\n        COMMENT=$(cat comment/comment.log)\n        lp-api post bugs/123 ws.op=newMessage content=\"$COMMENT\"\n        lp-api get bugs/123 \u003e payload.json\n        digest=$(jq -S -M \u003c payload.json | sha256sum | awk '{print $1}')\n        payload=$(cat \u003c\u003cENDLINE\n        {\n          \"version\": {\n            \"digest\": \"sha256:${digest}\"\n          },\n          \"metadata\": [\n            {\n              \"name\": \"Bug #$(jq -r .id \u003c payload.json)\",\n              \"value\": \"$(jq -r .title \u003c payload.json | sed 's/\\\\/\\\\\\\\/g' | sed 's/\"/\\\\\"/g')\"\n            }\n          ]\n        }\n        ENDLINE\n        )\n        export payload\n```\n\nor\n\n```yaml\njobs:\n- name: check-bug\n  plan:\n  - get: bug\n    timeout: 1m\n  - task: check\n    timeout: 1m\n    config:\n      platform: linux\n      image_resource:\n        type: registry-image\n        source:\n          repository: fourdollars/lp-api-resource\n      outputs:\n        - name: comment\n      run:\n        path: bash\n        args:\n        - -exc\n        - |\n          mkdir -p comment\n          echo \"Another comment\" \u003e comment/comment.log\n  - get: some-script-repo\n  - put: bug\n    timeout: 1m\n    params:\n      script: some-script-repo/comment.sh\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffourdollars%2Flp-api-resource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffourdollars%2Flp-api-resource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffourdollars%2Flp-api-resource/lists"}