{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":760379681,"defaultBranch":"master","name":"dkp","ownerLogin":"reddec","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-02-20T10:05:20.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6597086?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1714825447.0","currentOid":""},"activityList":{"items":[{"before":"b55a11b9a2ede67e564645a209a1b9418f60a933","after":"96b45eab18bc2d4effcfa19bf499f73c148abea5","ref":"refs/heads/master","pushedAt":"2024-05-04T12:23:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"Fix copying env files not in the project root directory (#3)\n\nPreviously env file copying worked only when the following three\r\ndirectories were the same:\r\n\r\n* current directory;\r\n* project root directory;\r\n* the env file's parent directory.\r\n\r\nThe previous commit wanted to solve this, but it contained a bug. This\r\nalso made the automatic tests fail.\r\n\r\nThis commit fixes that bug.","shortMessageHtmlLink":"Fix copying env files not in the project root directory (#3)"}},{"before":"b7d7224c8ddc5c6e3614d5a6a214383555db2476","after":"b55a11b9a2ede67e564645a209a1b9418f60a933","ref":"refs/heads/master","pushedAt":"2024-05-03T01:48:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"Multiple env files (and other improvements) (#2)\n\n* fix typos\r\n\r\n* Use precise match when finding the project name\r\n\r\nPreviously, the \"docker compose ls ... Name={project_name}\" filter found\r\nprojects whose name contained {project_name} as a substring. For\r\nexample, if the project name was \"my_project\", it also found\r\n\"this_is_my_project\".\r\n\r\nThe Docker documentation mentions that \"You can also filter for a\r\nsubstring in a name\"\r\n(https://docs.docker.com/reference/cli/docker/container/ls/), but for\r\nsome reason it's not documented that the specified \"name\" is actually\r\nused as a regular expression\r\n(https://github.com/docker/docs/issues/11767).\r\n\r\nThis commit modifies dkp to find (and archive) only the specified\r\nproject.\r\n\r\nAccording to\r\nhttps://docs.docker.com/compose/project-name/#set-a-project-name,\r\n\"project names must contain only lowercase letters, decimal digits,\r\ndashes, and underscores\", so we can safely use the project name as a\r\nregular expression.\r\n\r\n* Fix copying multiple env files\r\n\r\nPreviously the env file copying worked properly only when there was one\r\nenv file and it was called \".env\".\r\n\r\n* If there were multiple env files, including .env, dkp copied the\r\n content of .env into all of them (because \"info.env_file\" always\r\n pointed to \".env\").\r\n\r\n* If there were multiple env files, but no \".env\", dkp crashed:\r\n\r\n FileNotFoundError: [Errno 2] No such file or directory:\r\n '.../test-data/.env'\r\n\r\nNow dkp copies every .env and *.env file with its own content.\r\n\r\n* Fix: Pass project name to \"docker compose\"\r\n\r\nPreviously dkp did not export the volumes of the project if the\r\nproject's directory was not the same as the project's name. This was\r\nbecause \"docker compose config\" assumed that the project's name is the\r\ndirectory, and created the volume names based on that.\r\n\r\nFor example, if I have a directory called \"my-dir\", but I always call\r\n\"docker compose\" with \"-p my-project\" (or I set\r\nCOMPOSE_PROJECT_NAME=my-project), and I have volume called \"my-volume\",\r\nthen the volume's real name will be \"my-project_my-volume\". However,\r\nwhen I issued \"dkp my-project\" (without setting COMPOSE_PROJECT_NAME),\r\nit didn't pass \"-p my-project\" to docker compose, so docker compose\r\nprinted a config that used \"my-dir_my-volume\" as the volume name, and\r\ndkp tried to export that volume.\r\n\r\nAfter this commit, we pass the project name to docker compose, so it\r\nwill print the volumes with the correct names, so dkp can export them.\r\n\r\n* Support multiple env files\r\n\r\nPreviously dkp assumed that:\r\n\r\n* The .env and *.env files next to the first compose file were the env\r\n files shall be copied into the archive.\r\n\r\n* The \"docker compose\" commands don't require \"--env-file \"\r\n options to work.\r\n\r\nAfter this commit, the users can specify a list of env files with the\r\noption \"--env-file ...\".\r\n\r\n* These (and only these) env files are copied into the archive.\r\n\r\n* These env files are passed to the \"docker compose\" commands.\r\n\r\nIf no \"--env-file\" option is specified, dkp works the same way as\r\nbefore.\r\n\r\n* Export non-prebuilt images\r\n\r\nLet's say that we use the following compose file for the test-data\r\nproject:\r\n\r\n services:\r\n dummy:\r\n image: busybox\r\n web:\r\n build:\r\n context: .\r\n dockerfile_inline: |\r\n FROM nginx:alpine\r\n\r\nWhen the user starts the project, Compose builds and stores the nginx\r\nimage as \"test-data_web:latest\".\r\n\r\nBefore this commit, dkp exported only the busybox image.\r\n\r\nAfter this commit, the default behavior stays the same, but if the user\r\npasses the \"--all-images\" option to dkp, it will also export the\r\n\"test-data_web:latest\" image.\r\n\r\n* Fix typing problems\r\n\r\nBefore:\r\n\r\n $ mypy dkp.py\r\n dkp.py:226: error: Need type annotation for \"args\" (hint: \"args: List[] = ...\") [var-annotated]\r\n dkp.py:359: error: Incompatible types in assignment (expression has type \"Path\", variable has type \"str\") [assignment]\r\n dkp.py:364: error: Unsupported left operand type for / (\"str\") [operator]\r\n dkp.py:372: error: Unsupported left operand type for / (\"str\") [operator]\r\n dkp.py:377: error: Unsupported left operand type for / (\"str\") [operator]\r\n dkp.py:423: error: Argument 1 to \"gen_scripts\" has incompatible type \"str\"; expected \"Path\" [arg-type]\r\n dkp.py:431: error: Argument 3 to \"encrypt\" has incompatible type \"Optional[str]\"; expected \"str\" [arg-type]\r\n Found 7 errors in 1 file (checked 1 source file)\r\n\r\nAfter:\r\n\r\n $ mypy dkp.py\r\n Success: no issues found in 1 source file\r\n\r\n* Improve copying env files\r\n\r\n1. Previously when the user passed the `--env-file` option to dkp, and\r\n the compose file used `*.env` files with the `env_file` attribute,\r\n dkp did not copy these `*.env` files.\r\n\r\n Now dkp copies the `*.env` files in this case.\r\n\r\n This is still not perfect because dkp's heuristic is that it copies\r\n all `*.env` files that it finds in the project root directory.\r\n Sometimes a file is copied unnecessarily (when it is not used), and\r\n sometimes a file is not copied that should be (when an env file does\r\n not have a *.env filename, or it is located in a subdirectory).\r\n\r\n A more comprehensive solution would be to collect the env file names\r\n from the `env_file` attributes of the composed files.\r\n\r\n2. Previously dkp copied all env files into the target root directory\r\n (`work_dir`). This was fine for those env files are are in the\r\n project root directory, but this was not fine for other env files.\r\n\r\n Now:\r\n\r\n * dkp skips the env files that are outside the project directory.\r\n dkp could not restore this files on the target machine, so the\r\n user should take care about them. That's why now dkp prints\r\n messages about skipping these files.\r\n\r\n * dkp re-creates the directory structure for those env files that\r\n are in subdirectories inside the project directory.\r\n\r\n* Make passphrase optional\r\n\r\nPreviously specifying a passphrase for the pack was mandatory. This\r\ncould be done either by using the \"--passphrase\"/\"-p\" option, or by\r\nusing the PASSPHRASE environment variable.\r\n\r\nThis commit makes the passphrase optional. This way the users can create\r\nunencrypted packages, and they don't need GPG to be installed.","shortMessageHtmlLink":"Multiple env files (and other improvements) (#2)"}},{"before":"0508025f2682257394919121de50fb17f64cec4c","after":"b7d7224c8ddc5c6e3614d5a6a214383555db2476","ref":"refs/heads/master","pushedAt":"2024-02-20T14:14:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"add docs","shortMessageHtmlLink":"add docs"}},{"before":"4954f4f48b011e09da88c4559343076119f19564","after":"0508025f2682257394919121de50fb17f64cec4c","ref":"refs/heads/master","pushedAt":"2024-02-20T13:49:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"use notes from tag","shortMessageHtmlLink":"use notes from tag"}},{"before":"b801047e96dfba2c8687a6d107f1f63dccd0fc16","after":"4954f4f48b011e09da88c4559343076119f19564","ref":"refs/heads/master","pushedAt":"2024-02-20T13:41:48.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"release v0.2.0","shortMessageHtmlLink":"release v0.2.0"}},{"before":"b7ee4aeeb3a60c02732a6b42ec3a3408db22f8f2","after":"b801047e96dfba2c8687a6d107f1f63dccd0fc16","ref":"refs/heads/master","pushedAt":"2024-02-20T13:40:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"fix permission to create release","shortMessageHtmlLink":"fix permission to create release"}},{"before":"1daac5f90fd9fc13cecfc4a0276cf01557e68c8b","after":"b7ee4aeeb3a60c02732a6b42ec3a3408db22f8f2","ref":"refs/heads/master","pushedAt":"2024-02-20T13:39:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"docs: update link to pypi","shortMessageHtmlLink":"docs: update link to pypi"}},{"before":"cb30e659be4c75b43c64dfa0364f4c73dbe20f6c","after":"1daac5f90fd9fc13cecfc4a0276cf01557e68c8b","ref":"refs/heads/master","pushedAt":"2024-02-20T13:37:08.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"release v0.1.2","shortMessageHtmlLink":"release v0.1.2"}},{"before":"4af0466ae61c3c38cb586df7e2d4fb6eded5dafe","after":"cb30e659be4c75b43c64dfa0364f4c73dbe20f6c","ref":"refs/heads/master","pushedAt":"2024-02-20T13:23:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"release v0.1.1","shortMessageHtmlLink":"release v0.1.1"}},{"before":"97949c35f77daaf9e6ea0949ecfb37251dcde653","after":"4af0466ae61c3c38cb586df7e2d4fb6eded5dafe","ref":"refs/heads/master","pushedAt":"2024-02-20T13:23:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"fix badge in docs","shortMessageHtmlLink":"fix badge in docs"}},{"before":"0988253b4c28316a400cf55f7cb5e53fa23522d2","after":"97949c35f77daaf9e6ea0949ecfb37251dcde653","ref":"refs/heads/master","pushedAt":"2024-02-20T13:20:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"add github release","shortMessageHtmlLink":"add github release"}},{"before":"7967c40752d89f9b527e7ec1102ab2c18d7fceb9","after":"0988253b4c28316a400cf55f7cb5e53fa23522d2","ref":"refs/heads/master","pushedAt":"2024-02-20T13:16:24.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"release v0.1.0","shortMessageHtmlLink":"release v0.1.0"}},{"before":"9d05c9c1e51532ae40ca6dab79da7985c36e0acd","after":"7967c40752d89f9b527e7ec1102ab2c18d7fceb9","ref":"refs/heads/master","pushedAt":"2024-02-20T13:06:53.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"release v0.0.7","shortMessageHtmlLink":"release v0.0.7"}},{"before":"93ab00d90d99d9b4a77a4f40570b3a1ea0930dd5","after":"9d05c9c1e51532ae40ca6dab79da7985c36e0acd","ref":"refs/heads/master","pushedAt":"2024-02-20T13:05:18.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"update docs, remove docker","shortMessageHtmlLink":"update docs, remove docker"}},{"before":"c68e6553fab37f56c283e9d2e79445639b7bf8db","after":"93ab00d90d99d9b4a77a4f40570b3a1ea0930dd5","ref":"refs/heads/master","pushedAt":"2024-02-20T10:57:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"disable build docker","shortMessageHtmlLink":"disable build docker"}},{"before":"2552306ed6b8490400878db6392db6af56f36985","after":"c68e6553fab37f56c283e9d2e79445639b7bf8db","ref":"refs/heads/master","pushedAt":"2024-02-20T10:54:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"remove doc about docker due to unstablity","shortMessageHtmlLink":"remove doc about docker due to unstablity"}},{"before":"e3db1b5de333a3b29d05e7fa76d08b51a50951d6","after":"2552306ed6b8490400878db6392db6af56f36985","ref":"refs/heads/master","pushedAt":"2024-02-20T10:35:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"update build workflow","shortMessageHtmlLink":"update build workflow"}},{"before":"13cbb490e2130f4d75e9b15aa22a6f533cd3ffb8","after":"e3db1b5de333a3b29d05e7fa76d08b51a50951d6","ref":"refs/heads/master","pushedAt":"2024-02-20T10:31:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"update minimal version in poetry","shortMessageHtmlLink":"update minimal version in poetry"}},{"before":"83558bea1f7deeac7705004952e74d256390fb6f","after":"13cbb490e2130f4d75e9b15aa22a6f533cd3ffb8","ref":"refs/heads/master","pushedAt":"2024-02-20T10:30:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"bump minimal python version to 3.9","shortMessageHtmlLink":"bump minimal python version to 3.9"}},{"before":"8db6462662124f2c09796f8bba8f411529272983","after":"83558bea1f7deeac7705004952e74d256390fb6f","ref":"refs/heads/master","pushedAt":"2024-02-20T10:28:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"disable union for the sake of supporting python 3.8","shortMessageHtmlLink":"disable union for the sake of supporting python 3.8"}},{"before":"30672634cd6d501d4308137d9755e82edaf1614d","after":"8db6462662124f2c09796f8bba8f411529272983","ref":"refs/heads/master","pushedAt":"2024-02-20T10:26:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"downgrade typing union","shortMessageHtmlLink":"downgrade typing union"}},{"before":"7025a31a6d250bbb26caa087ff7ddbbde2eaf304","after":"30672634cd6d501d4308137d9755e82edaf1614d","ref":"refs/heads/master","pushedAt":"2024-02-20T10:25:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"downgrade typing","shortMessageHtmlLink":"downgrade typing"}},{"before":"74aa0a0a590e0c9801617f1fc7a0985af6c0016e","after":"7025a31a6d250bbb26caa087ff7ddbbde2eaf304","ref":"refs/heads/master","pushedAt":"2024-02-20T10:24:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"fix workflow tests","shortMessageHtmlLink":"fix workflow tests"}},{"before":"74aa0a0a590e0c9801617f1fc7a0985af6c0016e","after":null,"ref":"refs/tags/v1.0.0","pushedAt":"2024-02-20T10:23:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"}},{"before":null,"after":"74aa0a0a590e0c9801617f1fc7a0985af6c0016e","ref":"refs/heads/master","pushedAt":"2024-02-20T10:05:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"reddec","name":"Aleksandr Baryshnikov","path":"/reddec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6597086?s=80&v=4"},"commit":{"message":"initial commit","shortMessageHtmlLink":"initial commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQWiS6wA","startCursor":null,"endCursor":null}},"title":"Activity ยท reddec/dkp"}