{"action":"created","issue":{"url":"https://api.github.com/repos/spinnaker/spinnaker/issues/3346","repository_url":"https://api.github.com/repos/spinnaker/spinnaker","labels_url":"https://api.github.com/repos/spinnaker/spinnaker/issues/3346/labels{/name}","comments_url":"https://api.github.com/repos/spinnaker/spinnaker/issues/3346/comments","events_url":"https://api.github.com/repos/spinnaker/spinnaker/issues/3346/events","html_url":"https://github.com/spinnaker/spinnaker/issues/3346","id":360963460,"node_id":"MDU6SXNzdWUzNjA5NjM0NjA=","number":3346,"title":"Pre-populate Artifact Fields Whenever Possible","user":{"login":"sbwsg","id":34253460,"node_id":"MDQ6VXNlcjM0MjUzNDYw","avatar_url":"https://avatars1.githubusercontent.com/u/34253460?v=4","gravatar_id":"","url":"https://api.github.com/users/sbwsg","html_url":"https://github.com/sbwsg","followers_url":"https://api.github.com/users/sbwsg/followers","following_url":"https://api.github.com/users/sbwsg/following{/other_user}","gists_url":"https://api.github.com/users/sbwsg/gists{/gist_id}","starred_url":"https://api.github.com/users/sbwsg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbwsg/subscriptions","organizations_url":"https://api.github.com/users/sbwsg/orgs","repos_url":"https://api.github.com/users/sbwsg/repos","events_url":"https://api.github.com/users/sbwsg/events{/privacy}","received_events_url":"https://api.github.com/users/sbwsg/received_events","type":"User","site_admin":false},"labels":[{"id":111166989,"node_id":"MDU6TGFiZWwxMTExNjY5ODk=","url":"https://api.github.com/repos/spinnaker/spinnaker/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":936546350,"node_id":"MDU6TGFiZWw5MzY1NDYzNTA=","url":"https://api.github.com/repos/spinnaker/spinnaker/labels/stale","name":"stale","color":"000000","default":false},{"id":343315243,"node_id":"MDU6TGFiZWwzNDMzMTUyNDM=","url":"https://api.github.com/repos/spinnaker/spinnaker/labels/ui","name":"ui","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-09-17T17:15:37Z","updated_at":"2018-12-16T17:20:12Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"When a user edits an Expected Artifact they are required to fill out a form with no hints whatsoever as to values that might be valid. As the user makes their edits we begin to build a model with enough information to infer what they might be referencing with a given artifact. With that information Spinnaker could begin to make suggestions of which values make sense for the different artifact fields. Following are a couple of short user journeys that might make sense:\r\n\r\n## User Defines GCS Artifact\r\n1. User sets artifact type to gcs/object and tabs to the \"name\" field where they need to enter \"gs://my-bucket/path/to/object\" but can't immediately remember the full bucket name and path\r\n2. Spinnaker uses configured GCS artifact accounts and queries for all buckets that the user has access to\r\n3. Deck presents the set of buckets to the user in a dropdown beneath the input field\r\n4. User types \"my-\" and Deck filters the set of available buckets to those starting with \"my-\"\r\n5. User clicks the bucket they want, \"my-bucket\" and Deck populates the artifact name with \"gs://my-bucket/\"\r\n6. The user now needs to enter \"path/to/object\".\r\n7. Deck has already fetched and presented the top-level objects and directories stored in \"gs://my-bucket\".\r\n8. The user continues filling out the artifact name field, typing \"pa\", and Deck filters the list of objects to those starting with \"pa\"\r\n9. The user chooses \"path\" and Deck lists the objects stored under \"gs://my-bucket/path\"\r\n10. The flow continues until the user has drilled down to the full path \"gs://my-bucket/path/to/object\"\r\n\r\nIn each step above, Spinnaker is performing the work necessary to guide the user to the object they want. The user isn't prevented from entering a path that doesn't exist in GCS but Deck has offered suggestions for the buckets and objects it discovered.\r\n\r\n## User Defines Github Artifact\r\n1. User sets artifact type to github/file\r\n2. Spinnaker uses configured GitHub trigger to query repository for git tree (file listing)\r\n3. User is provided the list of files as they begin typing in the artifact name field\r\n4. The list of files is progressively filtered as the user types, possibly using fuzzy match like github's file search feature\r\n5. The user either chooses the file they want from the list presented by deck or by completely typing the path into the text box."},"comment":{"url":"https://api.github.com/repos/spinnaker/spinnaker/issues/comments/447660209","html_url":"https://github.com/spinnaker/spinnaker/issues/3346#issuecomment-447660209","issue_url":"https://api.github.com/repos/spinnaker/spinnaker/issues/3346","id":447660209,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NzY2MDIwOQ==","user":{"login":"spinnakerbot","id":39309875,"node_id":"MDQ6VXNlcjM5MzA5ODc1","avatar_url":"https://avatars2.githubusercontent.com/u/39309875?v=4","gravatar_id":"","url":"https://api.github.com/users/spinnakerbot","html_url":"https://github.com/spinnakerbot","followers_url":"https://api.github.com/users/spinnakerbot/followers","following_url":"https://api.github.com/users/spinnakerbot/following{/other_user}","gists_url":"https://api.github.com/users/spinnakerbot/gists{/gist_id}","starred_url":"https://api.github.com/users/spinnakerbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spinnakerbot/subscriptions","organizations_url":"https://api.github.com/users/spinnakerbot/orgs","repos_url":"https://api.github.com/users/spinnakerbot/repos","events_url":"https://api.github.com/users/spinnakerbot/events{/privacy}","received_events_url":"https://api.github.com/users/spinnakerbot/received_events","type":"User","site_admin":false},"created_at":"2018-12-16T17:20:12Z","updated_at":"2018-12-16T17:20:12Z","author_association":"NONE","body":"This issue is tagged as 'stale' and hasn't been updated  in 45 days, so we are tagging it as 'to-be-closed'. It will be closed in 45 days unless updates are made. If you want to remove this label, comment:\n\n> @spinnakerbot remove-label to-be-closed"}}
{"actor":{"display_login":"spinnakerbot"}}