{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":801966813,"defaultBranch":"main","name":"jos_01","ownerLogin":"teragrep","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-05-17T08:59:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/71876378?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1724406616.0","currentOid":""},"activityList":{"items":[{"before":"1300b365cd72ddbb5ae393204c6f24cc7b67486c","after":"cc026ed179ded1d3a1cf1c907f96347678f67aad","ref":"refs/heads/main","pushedAt":"2024-08-23T09:43:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"use parameters for coverity url instead of env variables (#15)","shortMessageHtmlLink":"use parameters for coverity url instead of env variables (#15)"}},{"before":null,"after":"b16210173a1d8141c1e2fb8d704bc93d472710f7","ref":"refs/heads/kortemik-coverity-vars","pushedAt":"2024-08-23T09:43:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"use parameters for coverity url instead of env variables","shortMessageHtmlLink":"use parameters for coverity url instead of env variables"}},{"before":"85318f9ac7e33d7f1b4243f39846ba8c54367bfb","after":"1300b365cd72ddbb5ae393204c6f24cc7b67486c","ref":"refs/heads/main","pushedAt":"2024-08-23T09:38:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"parametrize-coverity-project-url-name (#14)","shortMessageHtmlLink":"parametrize-coverity-project-url-name (#14)"}},{"before":null,"after":"ad5c78c8d47cf232bc8686d774d653efccefd93a","ref":"refs/heads/kortemik-parametrize-coverity-project-url-name","pushedAt":"2024-08-23T09:38:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"parametrize-coverity-project-url-name","shortMessageHtmlLink":"parametrize-coverity-project-url-name"}},{"before":"2f11fec322eda7edc00e387a6035a00a0bc0b286","after":"85318f9ac7e33d7f1b4243f39846ba8c54367bfb","ref":"refs/heads/main","pushedAt":"2024-08-23T09:21:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"Update coverity url (#13)","shortMessageHtmlLink":"Update coverity url (#13)"}},{"before":null,"after":"16850b48a9ec0ea37af209aeeec17b538bfbb6c7","ref":"refs/heads/kortemik-coverity-url","pushedAt":"2024-08-23T09:18:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"Update coverity url","shortMessageHtmlLink":"Update coverity url"}},{"before":"f9d457234226c1b637cff80f6834d66f4f030e08","after":"2f11fec322eda7edc00e387a6035a00a0bc0b286","ref":"refs/heads/main","pushedAt":"2024-08-23T09:15:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"10 fix test failures (#12)\n\n* Refactored Cpuinfo to use a Map object instead of an ArrayList when parsing file contents.\r\nIt will now populate every statistic fielld of the Cpuinfo object with either the value present in the proc file or a default empty string value, if that statistic was not present in the file.\r\n\r\n* Added a short Thread.sleep() between calls to proc objects in timeStampTest().\r\nThis should fix test failures in the CI pipeline where timestamps at different times are equal.","shortMessageHtmlLink":"10 fix test failures (#12)"}},{"before":"937e978b8f52f5e067484f5316b17a127b395310","after":"f9d457234226c1b637cff80f6834d66f4f030e08","ref":"refs/heads/main","pushedAt":"2024-08-22T11:15:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"Refactored Cpuinfo to use a Map object instead of an ArrayList when parsing file contents. (#11)\n\nIt will now populate every statistic fielld of the Cpuinfo object with either the value present in the proc file or a default empty string value, if that statistic was not present in the file.","shortMessageHtmlLink":"Refactored Cpuinfo to use a Map object instead of an ArrayList when p…"}},{"before":"b93aa100ebb52df78147c498561474d056c4381c","after":"937e978b8f52f5e067484f5316b17a127b395310","ref":"refs/heads/main","pushedAt":"2024-08-21T12:17:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"downgrade spotless to 2.30.0 so it builds on java 8 (#9)","shortMessageHtmlLink":"downgrade spotless to 2.30.0 so it builds on java 8 (#9)"}},{"before":null,"after":"5deba180a1768064edef9b02f2e074011203f92d","ref":"refs/heads/kortemik-spotless-2.30.0","pushedAt":"2024-08-21T12:15:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"downgrade spotless to 2.30.0 so it builds on java 8","shortMessageHtmlLink":"downgrade spotless to 2.30.0 so it builds on java 8"}},{"before":"f22b5a1150306b499e66d7dc9526cdfd64fa1436","after":"b93aa100ebb52df78147c498561474d056c4381c","ref":"refs/heads/main","pushedAt":"2024-08-20T11:00:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"Issue#5 ci instructions namefix (#8)\n\n* Removed incorrectly named workflow-folder","shortMessageHtmlLink":"Issue#5 ci instructions namefix (#8)"}},{"before":"f22b5a1150306b499e66d7dc9526cdfd64fa1436","after":null,"ref":"refs/tags/1.0.0","pushedAt":"2024-08-20T08:40:10.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"}},{"before":"98ad66bc48fde7098b4f6e7c97eed00d0a5587a7","after":null,"ref":"refs/tags/1.0.0","pushedAt":"2024-08-20T08:39:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"}},{"before":"98ad66bc48fde7098b4f6e7c97eed00d0a5587a7","after":"f22b5a1150306b499e66d7dc9526cdfd64fa1436","ref":"refs/heads/main","pushedAt":"2024-08-20T08:38:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"Added CI instructions (#7)\n\nUpdated pom.xml with necessary plugins for release\r\nAdded licence headers for C code to satisfy licence audit","shortMessageHtmlLink":"Added CI instructions (#7)"}},{"before":"7c718e512432feecf67d7e8cc3f60b2f9f3c3c6d","after":"98ad66bc48fde7098b4f6e7c97eed00d0a5587a7","ref":"refs/heads/main","pushedAt":"2024-08-20T06:54:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?s=80&v=4"},"commit":{"message":"Initial prototype (#2)\n\n* Initial commit\r\n\r\nPrototype version\r\nMain class serves as a demo for the prototype.\r\n\r\nFeatures added:\r\nCan create Process objects based on process IDs\r\nCan check if Process is alive or not\r\nCan get any file within the Process' /proc directory and return its contents in a List or a Map format\r\nSpecial object for a Process' stat-files which includes named keys for each value contained in the file.\r\nSpecial object for an OS's stat-file which includes named keys for each value contained in the file.\r\nProcesses can list their Threads, which are also capable of providing information from their /proc files.\r\n\r\n* Fixed package names to conform to Maven file structure\r\n\r\n* Fixed package names to conform to Maven file structure.\r\nMade some fields final\r\n\r\n* OS: Added new primary constructor to LinuxOS allowing for configuration of /proc directory\r\nOS: Renamed OS to LinuxOS as we only support Linux for now\r\nGenericStatus: Removed GenericStatus as its only function is to read rows.\r\nProcFile: Renamed ProcFile to RowFile to better represent what the class does\r\nTask: Replaced NullPointerException try-catch with a null check\r\nProcess: Added primary constructor to Process to make proc directory path configurable\r\nOSStat: Added enum for OS stat fields\r\nOSStatFields: Moved enum to OsStat class\r\nProcessStatFields: Moved enum to ProcessStat class\r\nProcessStat:Added enum for process stat fields\r\nProcessStat:Replaced regex pattern to use Named capture groups\r\n\r\n* Removed proc-file specific \"StatField\" Enum classes, keys moved to the class rerpesenting the proc file.\r\n\r\n* Added Statm object to represent a /proc/pid/statm file.\r\n\r\n* Made Process.residentSetSize() use newly added Statm object instead of parsing the data itslef\r\n\r\n* Added Meminfo and Vmstat objects to represent those OS-specific proc files.\r\n\r\nEdited pageSize() to use these new files when calculating page size\r\n\r\n* Added cpuTime() and cpuUsage() methods to Process\r\nAdded totalRam() and cpuCount() methods to LinuxOS\r\n\r\n* Sysconf: JNA (Java Native Access) implementation of a very simple C program that uses sysconf(SC_CLK_TCK) to return the clock tick rate of the system.\r\nThis information is used to turn cpu-related information (reported in ticks) into seconds.\r\n\r\n* Code formatting changes only\r\n\r\n* Added CPUInfo and methods to get number of CPUs, Physical cores and Threads.\r\n\r\nRenamed \"statFields\" to just \"fields\" within OSStat, Vmstat ProcessStat and Statm\r\n\r\n* Added Uptime object to represent OS /proc/uptime file\r\n\r\n* Removed generic proc() method from LinuxOS, Process and Task. Use file-specific methods to access these files instead.\r\n\r\n* Added unit tests for OS status objects\r\n\r\n* Whitespace and code formatting changes only\r\n\r\n* Updated tests to use Junit5 instead of Junit4\r\n\r\n* Added assertions to constructorTest to verify that objects have been initialized properly.\r\n\r\n* Moved Pattern matching outside of a loop to improve performance.\r\n\r\n* Fixed Meminfo not matching keys with parentheses properly\r\n\r\n* Spotless formatting changes\r\n\r\n* Updated Readme with Java version\r\nRemoved mentions of junit 4 from pom\r\nAdded error message to LinuxOS.cpuTicksPerSecond\r\nRemoved unnecessary file.fileList() call in Process\r\nRemoved unnecessary {} block from RowFile\r\nRowFile now re-throws an exception instead of returning an empty list when a file read fails or a file is not found. Added Exception signatures to all related methods\r\nAdded exception to Sysconf in case sysconf.so file has not been generated and changed exception types to be more descriptive\r\nAdded a Statistics.clear() call to cpuInfo in case the number of logical cpus change\r\nRemoved unnecessary loop from MemInfo and VMstat\r\nRemoved unnecessary {} block from OSStat\r\n\r\n* Replaced prints to stdout with a Logger\r\n\r\n* Added test for process.isAlive()\r\n\r\n* Added SysconfInterface which includes a Fake object for testing. SysconfInterface.Fake does not call the native C code, just returns a hardcoded \"100\". Should not be used in normal operation\r\n\r\n* Made Process.cpuUsage support SysconfInterface.Fake()\r\n\r\n* Added tests to ProcessTest, should cover all current methods.\r\n\r\n* Added tests to LinuxOSTest, should cover all current methods. Edited tests to be system-independent\r\n\r\n* Added tests to LinuxOSTest, should cover all current methods. Edited tests to be system-independent\r\n\r\n* Fixed LinuxOSTest.statTest to be system independent\r\n\r\n* Formatting changes\r\n\r\n* Changed CPU usage tests to be more reliable\r\n\r\n* Added version numbers to dependencies\r\n\r\n* Removed unnecessary argument from C compilation script\r\n\r\n* Process.java: Secondary constructor of Process uses longs instead of ints\r\n\r\n* Added check for nulls from File.listFiles() within tasks() and replaced use of Loggers with Exceptions\r\n\r\n* Removed the required argument from cpuTime() and cpuUsage() by associating a LinuxOS object with each Process object.\r\nLinuxOS is now associated with a Sysconf object, which can be a fake for tests.\r\n\r\n* Removed the required argument from cpuTime() and cpuUsage() by associating a LinuxOS object with each Process object.\r\nProcess is now associated with a LinuxOS object, removing calls to new LinuxOS() from residentSetSize(), cpuTime() and cpuUsage()\r\nLinuxOS is now associated with a Sysconf object, which can be a fake for tests.\r\n\r\n* Removed readProcFile() methods from LinuxOS, Task and Process as they are redundant and edited Status object constructors to accept RowFiles instead, cutting out the unnecessary call to readProcFile()\r\n\r\n* Removed new keywords from outside of secondary constructors in RowFile\r\n\r\n* Refactored different status objects to contain specific methods for each piece of information available for them.\r\n\r\nCreated Composable Decorators for parsing RowFiles in different ways. You can delimit the text by character, filter out non-digits, trim, etc by using the relevant decorator.\r\n\r\nCreated constructors for Status objects so you can make them with composable decorators\r\n\r\nEdited tests accordingly.\r\n\r\n* Removed AvailableProcFiles() as there is no use case for them anymore.\r\n\r\n* Spotless formatting changes\r\n\r\n* Refactored \"new\" keyword into secondary consturctors in Status objects.\r\n\r\n* Refactored \"new\" keyword into secondary consturctors in Status objects.\r\n\r\n* Refactored all calls from main() class into tests and removed main class.\r\n\r\n* Removed \"Throws\" keywords from tests and replaced with an additional Assertion that tests do not throw any exception\r\n\r\n* Addded pre-generated compiled C files so that SysconfTest can be run with no preparation.\r\nThese files can be generated into /target folder via command \"mvn install\"\r\n\r\n* Spotless formatting changes\r\n\r\n* Added a check that makes sure that \"ps\" is installed when getting a process ID\r\nChanged readSystemdFileTest to read the proc files of the JVM instead, as systemd might not exist within containers.\r\nSplit some tests into two to make tests more granular\r\nMade some tests more readable\r\n\r\n* Removed the \"kill\" command from isAliveTest, as there could be other \"sleep\" processes active at the time when the test is run. Instead the test will simply wait until enough time has elapsed so that the sleep process is not running anymore.\r\nAdded a check to isAliveTest() that makes sure that no other sleep processes are active while test is being run to avoid false positives.\r\n\r\n* CpuTimeTest: Reduced the number of iterations when doing \"work\" by factor of 10 to reduce memory usage\r\n\r\n* Fixed a bug where Process.cpuUsage() was rounding down processes' cpu usage when process time on cpu was short\r\n\r\n* Updated readme with more detailed installation instructions\r\n\r\n* Updated gitignore\r\n\r\n* Removed old gitignore\r\n\r\n* Added memoryPercentage() to Process, which will return the percentage of system memory being used by the process.\r\n\r\n* Formatting changes for memoryPercentage()\r\n\r\n* Made SysconfInterface.Fake() have a configurable tickrate instead of hardcoded 100\r\n\r\n* Updated Readme\r\n\r\n* Updated Readme\r\n\r\n* Added a constructor to LinuxOS accepting only a proc directory path for ease of use\r\n\r\n* Applied Exception chaining pattern to objects throwing Exceptions\r\n\r\n* Updated Readme\r\n\r\n* Updated Readme\r\n\r\n* Updated Readme\r\n\r\n* Updated Readme\r\n\r\n* Updated Readme\r\n\r\n* Refactored timestamps to use Instants instead of LocalDateTime objects.\r\n\r\n* Spotless formatting changes\r\n\r\n* Renamed Sysconf library directory from 'Fail-Safe' to 'teragrep'\r\n\r\n* Renamed PlainText to TimeaddedText as the primary responsibility of the object is to represent text that has been instantiated at a certain time\r\n\r\n* Moved SysconfInterface.Fake into its' own class file within /test directory so that it will not be included in the final build.\r\n\r\n* Spotless formatting changes\r\n\r\n* printTimestamp() now uses ISO8601 format for timestamps\r\n\r\n* Removed code from constructors by calling origin in timestamp() methods\r\n\r\n* Removed C output files from test/resources and configured maven to get them from target instead\r\n\r\n* Fixed a bug where instantiating a Process object without specifying a /proc directory would use hardcoded \"/proc\" path instead of using the same directory as the OS object by default\r\nAdded a unit test for this case\r\n\r\n* Removed unused method procFileNames()\r\n\r\n* Removed unnecessary call to System.out.println() from test","shortMessageHtmlLink":"Initial prototype (#2)"}},{"before":"7986f2e1426d08d4aaddeb77ee5303f91f96bf05","after":"7c718e512432feecf67d7e8cc3f60b2f9f3c3c6d","ref":"refs/heads/main","pushedAt":"2024-05-24T06:22:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ronja-ui","name":"Ronja ","path":"/ronja-ui","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/79447937?s=80&v=4"},"commit":{"message":"Update config.yml\n\nupdated discussion link","shortMessageHtmlLink":"Update config.yml"}},{"before":null,"after":"7986f2e1426d08d4aaddeb77ee5303f91f96bf05","ref":"refs/heads/main","pushedAt":"2024-05-17T08:59:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kortemik","name":"Mikko Kortelainen","path":"/kortemik","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/884026?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":"djE6ks8AAAAEoi-WeQA","startCursor":null,"endCursor":null}},"title":"Activity · teragrep/jos_01"}