Not really Will, Though I like the key per user idea. (positive feedback doesn't count does it?)
On Wed, Mar 9, 2016 at 5:21 PM, Will Stevens <wstev...@cloudops.com> wrote: > Anyone have any feedback on this? I would like to get this ticket opened > this week. > > *Will STEVENS* > Lead Developer > > *CloudOps* *| *Cloud Solutions Experts > 420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6 > w cloudops.com *|* tw @CloudOps_ > > On Tue, Mar 8, 2016 at 12:46 PM, Will Stevens <wstev...@cloudops.com> > wrote: > > > I am going to open a ticket with the infra team to request access tokens > > for each of the organizations who are putting up hardware for the CI > cause. > > > > The reason I am planning to request a token for each organization > > individually is because I want to make a point about our need for CI and > > the need for many groups to be doing CI in order for us to get full > > hardware coverage of the different features we support. The token is > > needed in order for the different CI implementations to be able to simply > > post back a 'red light', 'green light' status of the pull request in > > github. More details can be added in comments using an implementation > like > > what Bharat is working on, but the focus of this request will be to > enable > > us to have the ability for the different CI environments to get at least > > 'red light', 'green light' functionality for pull requests. > > > > I will be requesting a token with the following basic permissions: > > - public_repo - the same as an anonymous user > > - repo:status - this allows for the status of a PR to be changed to one > > of the following 4 states; pending, success, failure, error, with some > > additional information such as; context, description, and a public url > for > > more details of the status. > > > > I am going to associate people with each token request and ask that each > > person be sent their own token since they are providing infrastructure to > > operate a CI environment and the community would like visibility into > their > > results. > > > > The people I am going to ask for a token for are as follows: > > > > Will Stevens <wstev...@cloudops.com> > > Paul Angus <paul.an...@shapeblue.com> > > Bharat Kumar <bharat.ku...@accelerite.com> > > Remi Bergsma <rberg...@schubergphilis.com> > > > > If you would also like to be included in this request and get your own > > token in order to be able to contribute back the status of your CI runs, > > please let me know so I can request a token for you as well. Ilya, you > had > > shown some interest in this as well, would you like me to include you? > If > > so which email address should I use? > > > > Anyone else who is planning to contribute an environment to the CI > process > > in the near to medium future? > > > > Cheers, > > > > *Will STEVENS* > > Lead Developer > > > > *CloudOps* *| *Cloud Solutions Experts > > 420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6 > > w cloudops.com *|* tw @CloudOps_ > > > > On Mon, Mar 7, 2016 at 6:36 PM, Erik Weber <terbol...@gmail.com> wrote: > > > >> I guess the appropriate channel would be to create a jira ticket for > >> INFRA: > >> https://issues.apache.org/jira/browse/INFRA > >> > >> -- > >> Erik > >> > >> On Mon, Mar 7, 2016 at 11:18 PM, Will Stevens <wstev...@cloudops.com> > >> wrote: > >> > >> > This is kind of what I was expecting. Do you know who I would be > >> > contacting? The permissions required are VERY minimal AND they have > >> > already given the 'TravisCI' application the same permissions as we > need > >> > for this. > >> > > >> > How did we get the TravisCI application enabled and the permissions > >> > accepted for that integration? > >> > > >> > I have been trying to thinking of ways to potentially work the system > >> from > >> > that side. The main issue I have with this approach is that it is > not a > >> > single application that we want to give permission to. Ideally, we > >> would > >> > give each individual/organization who is contributing a CI environment > >> > their own token. In that case, we would have to register the CI of > each > >> > party as their own CI integration. > >> > > >> > Here are some ideas I have as a 'work around' to the problem: > >> > > >> > 1) Register a single upr CI application with Github and have the > apache > >> > guys enable the integration. This will give the application a single > >> > access token. I can then compile upr with the access token embedded > >> into > >> > the binary. I don't like this approach and I feel we would probably > be > >> > violating some ToS somewhere. > >> > > >> > 2) Provide a web server implementation that each CI party can use to > >> > register their own CI endpoint as a Github application integration. > >> Then > >> > we have the apache guys enable each of them (which will be a harder > >> sell to > >> > them), but then each CI party will get their own token and will be > able > >> to > >> > post back as themselves. This is also nice because if someone is not > a > >> > good community member and misbehaves, their integration can be revoked > >> > without it affecting everyone else who has a CI integration. > >> > > >> > 3) Provide a single web server implementation that is registered as a > >> > Github Application Integration. This implementation is then approved > by > >> > the apache guys for the cloudstack repo. This web server > implementation > >> > (let's call it upr_server) keeps our one and only access token. I > then > >> > modify the upr command line tool to take a token that is provided by > the > >> > upr_server when a CI party registers on the upr_server website. The > >> > upr command > >> > will actually target the upr_server box when posting statuses, etc, > >> which > >> > will essentially proxy the calls on to Github using the token that was > >> > approved for the integration. > >> > > >> > I think that 3) is probably the cleanest solution and would reduce our > >> > chances of getting banned by someone for being too cheeky. It is a > >> whole > >> > lot of trouble for nothing, but if they are going to be a stick in the > >> mud > >> > about this and not allow access tokens to anything other than official > >> > github supported integrations, then I will have to make that work... > >> > > >> > Ideas? Thoughts? Rants? :P > >> > > >> > *Will STEVENS* > >> > Lead Developer > >> > > >> > *CloudOps* *| *Cloud Solutions Experts > >> > 420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6 > >> > w cloudops.com *|* tw @CloudOps_ > >> > > >> > On Mon, Mar 7, 2016 at 4:12 PM, Remi Bergsma < > >> rberg...@schubergphilis.com> > >> > wrote: > >> > > >> > > Hi Will, > >> > > > >> > > This is the main problem: there’s no one except Apache Infra with > >> access > >> > > to the Github CloudStack repo. Even committers have to push to > Apache > >> > git, > >> > > which is mirrored to Github. We can’t close a PR, set a label, > change > >> a > >> > > title or whatever basic operation. You can ask them for a token. > When > >> I > >> > (as > >> > > the release manager) asked for any more permission than an anonymous > >> user > >> > > has it was kindly refused. I really hope you’ll have more luck but I > >> > > wouldn’t count on it. > >> > > > >> > > > >> > > > >> > > Regards, > >> > > Remi > >> > > > >> > > > >> > > On 07/03/16 19:10, "williamstev...@gmail.com on behalf of Will > >> Stevens" > >> > < > >> > > williamstev...@gmail.com on behalf of wstev...@cloudops.com> wrote: > >> > > > >> > > >The main thing we have to sort out with this type of integration > (as > >> it > >> > is > >> > > >today) is the distribution of access tokens with the correct > >> permissions > >> > > on > >> > > >the apache/cloudstack github repo. The required permissions are > very > >> > > >limited, but I don't know if we have access to create new tokens. > >> If we > >> > > >don't then I will have to develop an application integration > >> workaround > >> > to > >> > > >make it easier for the people with access to the apache/cloudstack > >> repo > >> > to > >> > > >give the people running CI integrations access to update statuses > >> (like > >> > > the > >> > > >current travis integration). > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > >If you have questions or feedback, please don't be shy. > >> > > > > >> > > >*Will STEVENS* > >> > > >Lead Developer > >> > > > > >> > > >*CloudOps* *| *Cloud Solutions Experts > >> > > >420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6 > >> > > >w cloudops.com *|* tw @CloudOps_ > >> > > > > >> > > >On Mon, Mar 7, 2016 at 12:36 PM, Bharat Kumar < > >> > > bharat.ku...@accelerite.com> > >> > > >wrote: > >> > > > > >> > > >> Hi guys, > >> > > >> > >> > > >> I am also working on the similar reporting problem, here is what > i > >> did > >> > > >> > >> > > >> link to the report > https://github.com/bvbharatk/cloud-stack/pull/1 > >> > > >> > >> > > >> I am thinking this is good enough for now, I want to start > posting > >> the > >> > > >> results on each pr as shown in the above link. > >> > > >> please give me your comments or suggestions. > >> > > >> > >> > > >> Thanks, > >> > > >> Bharat > >> > > >> On 05-Mar-2016, at 7:02 PM, Will Stevens <wstev...@cloudops.com > >> > <mailto: > >> > > >> wstev...@cloudops.com>> wrote: > >> > > >> > >> > > >> Daan > >> > > >> > >> > > >> Regarding the obligatory provider id. I agree, but I am still > >> trying > >> > to > >> > > >> figure out the details. Creating distinct runs that have their > own > >> > > status > >> > > >> is done by setting the 'context'. I think we would need to have > >> two > >> > > pieces > >> > > >> to this. A provider id and an environment id. > >> > > >> > >> > > >> So for example. Lets assume that my provider id is 'CloudOps' > and > >> I > >> > > have > >> > > >> two different environments, one for 'KVM' and one for 'Xen' (for > >> > > example). > >> > > >> I would then the tool would produce the following two independent > >> CI > >> > > >> statuses. > >> > > >> 'CloudOps - KVM' : with a basic description of the environment. > >> > > >> 'CloudOps - Xen' : again with a basic description of the env. > >> > > >> ... and so on ... > >> > > >> > >> > > >> I am still sorting out the details here as well as making it easy > >> for > >> > > us to > >> > > >> integrate this into the apache/cloudstack repo with the access we > >> > > currently > >> > > >> have. Adding this is 'no biggy' for me because I am building > this > >> > tool > >> > > as > >> > > >> we speak, and trying to tailor it to our (ACS) needs, so this > type > >> of > >> > > >> feedback is perfect as it allows me to adapt the tool before I > get > >> too > >> > > >> deep. > >> > > >> > >> > > >> *Will STEVENS* > >> > > >> Lead Developer > >> > > >> > >> > > >> *CloudOps* *| *Cloud Solutions Experts > >> > > >> 420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6 > >> > > >> w cloudops.com<http://cloudops.com> *|* tw @CloudOps_ > >> > > >> > >> > > >> On Sat, Mar 5, 2016 at 4:17 AM, Daan Hoogland < > >> > daan.hoogl...@gmail.com > >> > > >> <mailto:daan.hoogl...@gmail.com>> > >> > > >> wrote: > >> > > >> > >> > > >> Will > >> > > >> > >> > > >> Gret work, especially the thing you are showing in link [4], I > >> would > >> > > like > >> > > >> to make an enhancement request and that is a obligatory provider > >> id. > >> > > Only > >> > > >> if it is no biggy for you! > >> > > >> Several people may decide to do a XVM on ChildrensOS for instance > >> and > >> > > so we > >> > > >> may be aware of an obscurity that is different. If one fails and > >> the > >> > > other > >> > > >> succeeds it is easily identified. > >> > > >> > >> > > >> Ilya, > >> > > >> > >> > > >> I have been playing with go and it is a very nice language for > >> such a > >> > > >> simple script, though it wasn't exactly designed for it. So don't > >> read > >> > > my > >> > > >> comment/question as an objection. But we do have > >> > > >> bash,python,c#,java,javascript,xslt,sql at least. That is not > >> counting > >> > > the > >> > > >> build system and I am sure the hyperv has some extra windows > >> specific > >> > > >> stuff. > >> > > >> To me it is inherent to the nature of across platform > orchestration > >> > and > >> > > >> provisioning system so it is fine. It is something to consider. > On > >> the > >> > > >> other hand when bringing in new tools we don't make the choice > >> so.... > >> > I > >> > > am > >> > > >> ranting, I guess. > >> > > >> > >> > > >> > >> > > >> > >> > > >> On Sat, Mar 5, 2016 at 7:38 AM, ilya < > ilya.mailing.li...@gmail.com > >> > > <mailto: > >> > > >> ilya.mailing.li...@gmail.com>> wrote: > >> > > >> > >> > > >> I see where Daan is coming from :) I thought this would be 4th, > >> not > >> > > >> exactly 7ths. > >> > > >> > >> > > >> I'm not against golang by any means (if anything - its my next > >> "go" to > >> > > >> language these days). > >> > > >> > >> > > >> Things to consider: > >> > > >> > >> > > >> Would notify-pr support proxy? I've been thinking on ways of > >> > > >> contributing test runs, there would have to be few things i'd > need > >> to > >> > > do. > >> > > >> > >> > > >> 1) massage the log content - such that no environment details are > >> > > >> exposed, i can probably handle this with sed/awk.. > >> > > >> > >> > > >> 2) i'm behind multiple firewalls with no internet access. > however, > >> > some > >> > > >> lab environments might have a proxy, so it would be nice to have > a > >> > > >> support for it. > >> > > >> > >> > > >> Thanks > >> > > >> ilya > >> > > >> > >> > > >> > >> > > >> > >> > > >> On 3/4/16 6:56 AM, Will Stevens wrote: > >> > > >> Yes, I have most of it already built and will be releasing it > later > >> > > >> today > >> > > >> or over the weekend. The reason I chose Golang is because it can > >> be > >> > > >> cross > >> > > >> compiled to be run on any system and distributed as a single > binary > >> > > >> with > >> > > >> no > >> > > >> dependencies. This means that no one will have to worry about > >> > building > >> > > >> it > >> > > >> or having to change their environment at all in order to use it. > >> I am > >> > > >> trying to lower the barrier to entry and make it as easy as > >> possible > >> > > >> for > >> > > >> people to contribute back their CI execution details. > >> > > >> > >> > > >> *Will STEVENS* > >> > > >> Lead Developer > >> > > >> > >> > > >> *CloudOps* *| *Cloud Solutions Experts > >> > > >> 420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6 > >> > > >> w cloudops.com<http://cloudops.com> *|* tw @CloudOps_ > >> > > >> > >> > > >> On Fri, Mar 4, 2016 at 8:53 AM, Daan Hoogland < > >> > daan.hoogl...@gmail.com > >> > > >> <mailto:daan.hoogl...@gmail.com> > >> > > >> > >> > > >> wrote: > >> > > >> > >> > > >> Will, Do you have an implementation of notify-pr? I am asking as > >> you > >> > > >> specify it will be implemented in golang which seems odd. It is > not > >> > > >> amongst > >> > > >> the 7 or so languages already in use. > >> > > >> > >> > > >> On Fri, Mar 4, 2016 at 1:54 AM, Will Stevens < > >> > > >> williamstev...@gmail.com<mailto:williamstev...@gmail.com>> > >> > > >> wrote: > >> > > >> > >> > > >> Hey Everyone, > >> > > >> As I am sure most of you are aware, I have been focusing a lot on > >> > > >> ways > >> > > >> to > >> > > >> get CI integrated back into the community. > >> > > >> > >> > > >> Today I build a little POC to validate some ideas and get a feel > >> for > >> > > >> a > >> > > >> potential approach for getting CI integrated into the Github pull > >> > > >> request > >> > > >> workflow. > >> > > >> > >> > > >> There are multiple individuals/companies focusing on CI right now > >> > > >> (which > >> > > >> is a good thing), but there has not really been much discussion > >> > > >> (that I > >> > > >> am > >> > > >> aware of) for how these different CI runs will push back results > to > >> > > >> the > >> > > >> community. I want to make sure that nobody's work on this topic > >> goes > >> > > >> to > >> > > >> waste, so my goal is to provide a simple and consistent way for > >> > > >> everyone > >> > > >> to > >> > > >> push their results back to the community. > >> > > >> > >> > > >> Here is the basic idea (please give feedback): > >> > > >> - A simple cross platform command line tool with zero > dependencies > >> > > >> will > >> > > >> be > >> > > >> provided (and open sourced) which will handle the submission of > the > >> > > >> CI > >> > > >> results back to the community. It is written in Golang and is > >> > > >> currently > >> > > >> called 'notify_pr'. > >> > > >> - At the end of a CI execution, the CI should automate the > >> execution > >> > > >> of > >> > > >> this tool to handle updating the appropriate PR with the results. > >> > > >> > >> > > >> Configuration can be done via the command line or through an INI > >> > > >> file. > >> > > >> Here is an example of the configuration details. The commit is > the > >> > > >> commit that the CI just executed against. > >> > > >> > >> > > >> token = <your github token> > >> > > >> owner = apache > >> > > >> repo = cloudstack > >> > > >> commit = c8443496d3fad78a4b1a48a0992ce545bde299e8 > >> > > >> > >> > > >> summary_file = <a text file summary of the run> > >> > > >> full_detail_dir = <a directory structure to be recursively > uploaded > >> > > >> to > >> > > >> object store> > >> > > >> full_detail_files = <a comma separated list of files to upload to > >> > > >> object > >> > > >> store> > >> > > >> store_api = <swift or s3> > >> > > >> store_endpoint = <url endpoint> > >> > > >> store_identity = <keystone identity or aws access key> > >> > > >> store_secret = <keystone password or aws secret key> > >> > > >> > >> > > >> I have not yet implemented the object storage endpoints, but I > have > >> > > >> code > >> > > >> to do it from a different project, so I just need to add it. I > >> will > >> > > >> be > >> > > >> able to host my CI output in a swift object store, but others may > >> > > >> need > >> > > >> to > >> > > >> use AWS S3. Maybe we can get sponsorship for this storage. We > >> will > >> > > >> only > >> > > >> keep the logs for a window of like a week or so on the object > store > >> > > >> so > >> > > >> the > >> > > >> storage usage will not be ever growing. > >> > > >> > >> > > >> Basically, the tool takes the details of the repository you are > >> > > >> validating > >> > > >> a Pull Request for and the commit you are building. It also > takes > >> > > >> the > >> > > >> files you would like to push to the pull request. The summary > file > >> > > >> will > >> > > >> be > >> > > >> shown as text in the pull request comment and the other files > will > >> be > >> > > >> uploaded to an object store and will be publically available for > a > >> > > >> period > >> > > >> of time (probably about a week and then get cleaned up, details > >> TBD). > >> > > >> The > >> > > >> files to be uploaded to object store could be either specified as > >> > > >> individual files, OR a target directory and all the files in that > >> > > >> directory > >> > > >> will be recursively uploaded to the object store. > >> > > >> > >> > > >> When the tool is run, it will scan through all the open pull > >> requests > >> > > >> in > >> > > >> the target repository and when it finds the pull request > >> > > >> corresponding > >> > > >> to > >> > > >> the commit in question, it will post the details as a comment to > >> that > >> > > >> pull > >> > > >> request. This functionality is currently working (see the > attached > >> > > >> screenshot). I can change the formatting and such, this is just > an > >> > > >> example. > >> > > >> > >> > > >> This is still a very rough concept that I have only worked on > for a > >> > > >> day, > >> > > >> but hopefully you guys agree that it is a good start towards a > >> > > >> consistent > >> > > >> feedback mechanism for the community to take advantage of the > >> > > >> different > >> > > >> distributed CI installations. > >> > > >> > >> > > >> Please voice your feedback and concerns. I am sure I have not > >> > > >> thought > >> > > >> of > >> > > >> everything and we may still want to make fundamental changes to > the > >> > > >> approach, but I think the concept is solid. > >> > > >> > >> > > >> Cheers, > >> > > >> > >> > > >> Will > >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> -- > >> > > >> Daan > >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> -- > >> > > >> Daan > >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> DISCLAIMER > >> > > >> ========== > >> > > >> This e-mail may contain privileged and confidential information > >> which > >> > is > >> > > >> the property of Accelerite, a Persistent Systems business. It is > >> > > intended > >> > > >> only for the use of the individual or entity to which it is > >> addressed. > >> > > If > >> > > >> you are not the intended recipient, you are not authorized to > read, > >> > > retain, > >> > > >> copy, print, distribute or use this message. If you have received > >> this > >> > > >> communication in error, please notify the sender and delete all > >> copies > >> > > of > >> > > >> this message. Accelerite, a Persistent Systems business does not > >> > accept > >> > > any > >> > > >> liability for virus infected mails. > >> > > >> > >> > > > >> > > >> > > > > > -- Daan