{"action":"created","issue":{"url":"https://api.github.com/repos/saltstack/salt/issues/32245","repository_url":"https://api.github.com/repos/saltstack/salt","labels_url":"https://api.github.com/repos/saltstack/salt/issues/32245/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt/issues/32245/comments","events_url":"https://api.github.com/repos/saltstack/salt/issues/32245/events","html_url":"https://github.com/saltstack/salt/issues/32245","id":144644564,"number":32245,"title":"git_pillar should permit automatic mapping of environment to branch a-la gitfs ","user":{"login":"tkwilliams","id":6216055,"avatar_url":"https://avatars2.githubusercontent.com/u/6216055?v=4","gravatar_id":"","url":"https://api.github.com/users/tkwilliams","html_url":"https://github.com/tkwilliams","followers_url":"https://api.github.com/users/tkwilliams/followers","following_url":"https://api.github.com/users/tkwilliams/following{/other_user}","gists_url":"https://api.github.com/users/tkwilliams/gists{/gist_id}","starred_url":"https://api.github.com/users/tkwilliams/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkwilliams/subscriptions","organizations_url":"https://api.github.com/users/tkwilliams/orgs","repos_url":"https://api.github.com/users/tkwilliams/repos","events_url":"https://api.github.com/users/tkwilliams/events{/privacy}","received_events_url":"https://api.github.com/users/tkwilliams/received_events","type":"User","site_admin":false},"labels":[{"id":204655,"url":"https://api.github.com/repos/saltstack/salt/labels/Feature","name":"Feature","color":"009800","default":false},{"id":194768197,"url":"https://api.github.com/repos/saltstack/salt/labels/Pillar","name":"Pillar","color":"006b75","default":false},{"id":194768064,"url":"https://api.github.com/repos/saltstack/salt/labels/Platform","name":"Platform","color":"fef2c0","default":false}],"state":"open","locked":false,"assignee":{"login":"terminalmage","id":328598,"avatar_url":"https://avatars1.githubusercontent.com/u/328598?v=4","gravatar_id":"","url":"https://api.github.com/users/terminalmage","html_url":"https://github.com/terminalmage","followers_url":"https://api.github.com/users/terminalmage/followers","following_url":"https://api.github.com/users/terminalmage/following{/other_user}","gists_url":"https://api.github.com/users/terminalmage/gists{/gist_id}","starred_url":"https://api.github.com/users/terminalmage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/terminalmage/subscriptions","organizations_url":"https://api.github.com/users/terminalmage/orgs","repos_url":"https://api.github.com/users/terminalmage/repos","events_url":"https://api.github.com/users/terminalmage/events{/privacy}","received_events_url":"https://api.github.com/users/terminalmage/received_events","type":"User","site_admin":false},"assignees":[{"login":"terminalmage","id":328598,"avatar_url":"https://avatars1.githubusercontent.com/u/328598?v=4","gravatar_id":"","url":"https://api.github.com/users/terminalmage","html_url":"https://github.com/terminalmage","followers_url":"https://api.github.com/users/terminalmage/followers","following_url":"https://api.github.com/users/terminalmage/following{/other_user}","gists_url":"https://api.github.com/users/terminalmage/gists{/gist_id}","starred_url":"https://api.github.com/users/terminalmage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/terminalmage/subscriptions","organizations_url":"https://api.github.com/users/terminalmage/orgs","repos_url":"https://api.github.com/users/terminalmage/repos","events_url":"https://api.github.com/users/terminalmage/events{/privacy}","received_events_url":"https://api.github.com/users/terminalmage/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/saltstack/salt/milestones/13","html_url":"https://github.com/saltstack/salt/milestone/13","labels_url":"https://api.github.com/repos/saltstack/salt/milestones/13/labels","id":9265,"number":13,"title":"Approved","description":"All issues that are ready to be worked on, both bugs and features.","creator":{"login":"thatch45","id":507599,"avatar_url":"https://avatars0.githubusercontent.com/u/507599?v=4","gravatar_id":"","url":"https://api.github.com/users/thatch45","html_url":"https://github.com/thatch45","followers_url":"https://api.github.com/users/thatch45/followers","following_url":"https://api.github.com/users/thatch45/following{/other_user}","gists_url":"https://api.github.com/users/thatch45/gists{/gist_id}","starred_url":"https://api.github.com/users/thatch45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thatch45/subscriptions","organizations_url":"https://api.github.com/users/thatch45/orgs","repos_url":"https://api.github.com/users/thatch45/repos","events_url":"https://api.github.com/users/thatch45/events{/privacy}","received_events_url":"https://api.github.com/users/thatch45/received_events","type":"User","site_admin":false},"open_issues":2521,"closed_issues":6798,"state":"open","created_at":"2011-05-14T04:00:56Z","updated_at":"2018-03-18T14:54:18Z","due_on":null,"closed_at":null},"comments":18,"created_at":"2016-03-30T16:25:41Z","updated_at":"2018-03-18T19:32:41Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"Gitfs (for the salt side of things) can be configured to dynamically map git branches to environments, which is stunningly useful for scenarios where development takes place in numerous, transient, \"feature branches\"; which are then merged into \"well-known\" branches such as dev, qa and prd as the code promotion process.\n\ngit_pillar, contrariwise, must be configured in the master conf with explicit, exhaustive,  mappings of environments to branches.  Since, at least in our case, good data/code separation has led to about 90% of changes taking place in pillar rather than state files, we're finding the actual USEFULNESS of dynamic branch mapping to be almost completely nullified by the lack of such functionality in pillar.\n\nWe've tried a large assortment of things to work around this lack (stupid Jinja tricks, strange combinations of git_pillar_\\* config options and so on) but the basic lack of a way to do anything but statically map predefined environments to branches seems a hard limit on our workflow.\n\nIf the above is not detailed enough I can certainly give some examples of our desired workflow, but I think the basic usefulness of such a feature is pretty evident :)\n\nThanks!\n"},"comment":{"url":"https://api.github.com/repos/saltstack/salt/issues/comments/374037646","html_url":"https://github.com/saltstack/salt/issues/32245#issuecomment-374037646","issue_url":"https://api.github.com/repos/saltstack/salt/issues/32245","id":374037646,"user":{"login":"terminalmage","id":328598,"avatar_url":"https://avatars1.githubusercontent.com/u/328598?v=4","gravatar_id":"","url":"https://api.github.com/users/terminalmage","html_url":"https://github.com/terminalmage","followers_url":"https://api.github.com/users/terminalmage/followers","following_url":"https://api.github.com/users/terminalmage/following{/other_user}","gists_url":"https://api.github.com/users/terminalmage/gists{/gist_id}","starred_url":"https://api.github.com/users/terminalmage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/terminalmage/subscriptions","organizations_url":"https://api.github.com/users/terminalmage/orgs","repos_url":"https://api.github.com/users/terminalmage/repos","events_url":"https://api.github.com/users/terminalmage/events{/privacy}","received_events_url":"https://api.github.com/users/terminalmage/received_events","type":"User","site_admin":false},"created_at":"2018-03-18T19:32:41Z","updated_at":"2018-03-18T19:32:41Z","author_association":"MEMBER","body":"@tkwilliams Assuming this feature gets into pygit2 0.26.4, that would be the minimum supported version for pygit2. GitPython would be able to support worktrees sooner as it has ways to allow for arbitrary git commands to be run, so any version of GitPython would work. As far as I know, git 2.5+ would be required since that is when worktree support was added, so that rules out older LTS releases like Ubuntu 14.04 LTS and CentOS 7 even, unless newer git were to be compiled and installed on those releases.\r\n\r\nWhat distros/versions are used in your infrastructure?"}}
{"actor":{"display_login":"terminalmage"}}